diff --git a/@types/params.d.ts b/@types/params.d.ts index a8f0271..4afe7c8 100644 --- a/@types/params.d.ts +++ b/@types/params.d.ts @@ -161,7 +161,7 @@ export interface UpdateWatchList { symbols?: string[]; } export interface GetNews { - symbols?: string[]; + symbols?: string[] | string; start?: Date; end?: Date; limit?: number; diff --git a/dist/alpaca.browser.js b/dist/alpaca.browser.js index 7ef311e..804401c 100644 --- a/dist/alpaca.browser.js +++ b/dist/alpaca.browser.js @@ -4818,7 +4818,7 @@ trail_price: number(rawOrder.trail_price), trail_percent: number(rawOrder.trail_percent), hwm: number(rawOrder.hwm), - order_class: rawOrder.order_class + order_class: rawOrder.order_class, }; } catch (err) { @@ -4861,7 +4861,7 @@ trail_price: number(order.trail_price), trail_percent: number(order.trail_percent), hwm: number(order.hwm), - order_class: order.order_class + order_class: order.order_class, }, }; } @@ -5082,12 +5082,18 @@ event: rawTradeUpdate.event, execution_id: rawTradeUpdate.execution_id, order: order(rawTradeUpdate.order), - ...rawTradeUpdate.event_id && { event_id: number(rawTradeUpdate.event_id) }, - ...rawTradeUpdate.at && { at: new Date(rawTradeUpdate.at) }, - ...rawTradeUpdate.timestamp && { timestamp: new Date(rawTradeUpdate.timestamp) }, - ...rawTradeUpdate.position_qty && { position_qty: number(rawTradeUpdate.position_qty) }, - ...rawTradeUpdate.price && { price: number(rawTradeUpdate.price) }, - ...rawTradeUpdate.qty && { qty: number(rawTradeUpdate.qty) } + ...(rawTradeUpdate.event_id && { + event_id: number(rawTradeUpdate.event_id), + }), + ...(rawTradeUpdate.at && { at: new Date(rawTradeUpdate.at) }), + ...(rawTradeUpdate.timestamp && { + timestamp: new Date(rawTradeUpdate.timestamp), + }), + ...(rawTradeUpdate.position_qty && { + position_qty: number(rawTradeUpdate.position_qty), + }), + ...(rawTradeUpdate.price && { price: number(rawTradeUpdate.price) }), + ...(rawTradeUpdate.qty && { qty: number(rawTradeUpdate.qty) }), }; } var parse = { @@ -5106,7 +5112,7 @@ pageOfBars, snapshot, snapshots, - trade_update + trade_update, }; const unifetch = typeof fetch !== 'undefined' ? fetch : browser$1; @@ -5280,6 +5286,9 @@ }); } getNews(params) { + if ('symbols' in params && Array.isArray(params.symbols)) { + params.symbols = params.symbols.join(','); + } return this.request({ method: 'GET', url: `${urls.rest.beta}/news`, diff --git a/dist/alpaca.browser.js.map b/dist/alpaca.browser.js.map index e302d1e..2103f7d 100644 --- a/dist/alpaca.browser.js.map +++ b/dist/alpaca.browser.js.map @@ -1 +1 @@ -{"version":3,"file":"alpaca.browser.js","sources":["../node_modules/bottleneck/lib/parser.js","../node_modules/bottleneck/lib/DLList.js","../node_modules/bottleneck/lib/Events.js","../node_modules/bottleneck/lib/Queues.js","../node_modules/bottleneck/lib/BottleneckError.js","../node_modules/bottleneck/lib/Job.js","../node_modules/bottleneck/lib/LocalDatastore.js","../node_modules/bottleneck/lib/Scripts.js","../node_modules/bottleneck/lib/RedisConnection.js","../node_modules/bottleneck/lib/IORedisConnection.js","../node_modules/bottleneck/lib/RedisDatastore.js","../node_modules/bottleneck/lib/States.js","../node_modules/bottleneck/lib/Sync.js","../node_modules/bottleneck/lib/Group.js","../node_modules/bottleneck/lib/Batcher.js","../node_modules/bottleneck/lib/Bottleneck.js","../node_modules/bottleneck/lib/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-symbols/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/has/src/index.js","../node_modules/get-intrinsic/index.js","../node_modules/call-bind/index.js","../node_modules/call-bind/callBound.js","../node_modules/object-inspect/util.inspect.js","../node_modules/object-inspect/index.js","../node_modules/side-channel/index.js","../node_modules/qs/lib/formats.js","../node_modules/qs/lib/utils.js","../node_modules/qs/lib/stringify.js","../node_modules/qs/lib/parse.js","../node_modules/qs/lib/index.js","../node_modules/unfetch/dist/unfetch.module.js","../node_modules/isomorphic-unfetch/browser.js","../src/urls.ts","../src/parse.ts","../src/client.ts","../node_modules/isomorphic-ws/browser.js","../node_modules/eventemitter3/index.js","../node_modules/is-blob/index.js","../src/stream.ts","../src/index.ts"],"sourcesContent":["\"use strict\";\n\nexports.load = function (received, defaults, onto = {}) {\n var k, ref, v;\n\n for (k in defaults) {\n v = defaults[k];\n onto[k] = (ref = received[k]) != null ? ref : v;\n }\n\n return onto;\n};\n\nexports.overwrite = function (received, defaults, onto = {}) {\n var k, v;\n\n for (k in received) {\n v = received[k];\n\n if (defaults[k] !== void 0) {\n onto[k] = v;\n }\n }\n\n return onto;\n};","\"use strict\";\n\nvar DLList;\nDLList = class DLList {\n constructor(incr, decr) {\n this.incr = incr;\n this.decr = decr;\n this._first = null;\n this._last = null;\n this.length = 0;\n }\n\n push(value) {\n var node;\n this.length++;\n\n if (typeof this.incr === \"function\") {\n this.incr();\n }\n\n node = {\n value,\n prev: this._last,\n next: null\n };\n\n if (this._last != null) {\n this._last.next = node;\n this._last = node;\n } else {\n this._first = this._last = node;\n }\n\n return void 0;\n }\n\n shift() {\n var value;\n\n if (this._first == null) {\n return;\n } else {\n this.length--;\n\n if (typeof this.decr === \"function\") {\n this.decr();\n }\n }\n\n value = this._first.value;\n\n if ((this._first = this._first.next) != null) {\n this._first.prev = null;\n } else {\n this._last = null;\n }\n\n return value;\n }\n\n first() {\n if (this._first != null) {\n return this._first.value;\n }\n }\n\n getArray() {\n var node, ref, results;\n node = this._first;\n results = [];\n\n while (node != null) {\n results.push((ref = node, node = node.next, ref.value));\n }\n\n return results;\n }\n\n forEachShift(cb) {\n var node;\n node = this.shift();\n\n while (node != null) {\n cb(node), node = this.shift();\n }\n\n return void 0;\n }\n\n debug() {\n var node, ref, ref1, ref2, results;\n node = this._first;\n results = [];\n\n while (node != null) {\n results.push((ref = node, node = node.next, {\n value: ref.value,\n prev: (ref1 = ref.prev) != null ? ref1.value : void 0,\n next: (ref2 = ref.next) != null ? ref2.value : void 0\n }));\n }\n\n return results;\n }\n\n};\nmodule.exports = DLList;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events;\nEvents = class Events {\n constructor(instance) {\n this.instance = instance;\n this._events = {};\n\n if (this.instance.on != null || this.instance.once != null || this.instance.removeAllListeners != null) {\n throw new Error(\"An Emitter already exists for this object\");\n }\n\n this.instance.on = (name, cb) => {\n return this._addListener(name, \"many\", cb);\n };\n\n this.instance.once = (name, cb) => {\n return this._addListener(name, \"once\", cb);\n };\n\n this.instance.removeAllListeners = (name = null) => {\n if (name != null) {\n return delete this._events[name];\n } else {\n return this._events = {};\n }\n };\n }\n\n _addListener(name, status, cb) {\n var base;\n\n if ((base = this._events)[name] == null) {\n base[name] = [];\n }\n\n this._events[name].push({\n cb,\n status\n });\n\n return this.instance;\n }\n\n listenerCount(name) {\n if (this._events[name] != null) {\n return this._events[name].length;\n } else {\n return 0;\n }\n }\n\n trigger(name, ...args) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var e, promises;\n\n try {\n if (name !== \"debug\") {\n _this.trigger(\"debug\", `Event triggered: ${name}`, args);\n }\n\n if (_this._events[name] == null) {\n return;\n }\n\n _this._events[name] = _this._events[name].filter(function (listener) {\n return listener.status !== \"none\";\n });\n promises = _this._events[name].map(\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(function* (listener) {\n var e, returned;\n\n if (listener.status === \"none\") {\n return;\n }\n\n if (listener.status === \"once\") {\n listener.status = \"none\";\n }\n\n try {\n returned = typeof listener.cb === \"function\" ? listener.cb(...args) : void 0;\n\n if (typeof (returned != null ? returned.then : void 0) === \"function\") {\n return yield returned;\n } else {\n return returned;\n }\n } catch (error) {\n e = error;\n\n if (\"name\" !== \"error\") {\n _this.trigger(\"error\", e);\n }\n\n return null;\n }\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n return (yield Promise.all(promises)).find(function (x) {\n return x != null;\n });\n } catch (error) {\n e = error;\n\n if (\"name\" !== \"error\") {\n _this.trigger(\"error\", e);\n }\n\n return null;\n }\n })();\n }\n\n};\nmodule.exports = Events;","\"use strict\";\n\nvar DLList, Events, Queues;\nDLList = require(\"./DLList\");\nEvents = require(\"./Events\");\nQueues = class Queues {\n constructor(num_priorities) {\n var i;\n this.Events = new Events(this);\n this._length = 0;\n\n this._lists = function () {\n var j, ref, results;\n results = [];\n\n for (i = j = 1, ref = num_priorities; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\n results.push(new DLList(() => {\n return this.incr();\n }, () => {\n return this.decr();\n }));\n }\n\n return results;\n }.call(this);\n }\n\n incr() {\n if (this._length++ === 0) {\n return this.Events.trigger(\"leftzero\");\n }\n }\n\n decr() {\n if (--this._length === 0) {\n return this.Events.trigger(\"zero\");\n }\n }\n\n push(job) {\n return this._lists[job.options.priority].push(job);\n }\n\n queued(priority) {\n if (priority != null) {\n return this._lists[priority].length;\n } else {\n return this._length;\n }\n }\n\n shiftAll(fn) {\n return this._lists.forEach(function (list) {\n return list.forEachShift(fn);\n });\n }\n\n getFirst(arr = this._lists) {\n var j, len, list;\n\n for (j = 0, len = arr.length; j < len; j++) {\n list = arr[j];\n\n if (list.length > 0) {\n return list;\n }\n }\n\n return [];\n }\n\n shiftLastFrom(priority) {\n return this.getFirst(this._lists.slice(priority).reverse()).shift();\n }\n\n};\nmodule.exports = Queues;","\"use strict\";\n\nvar BottleneckError;\nBottleneckError = class BottleneckError extends Error {};\nmodule.exports = BottleneckError;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, DEFAULT_PRIORITY, Job, NUM_PRIORITIES, parser;\nNUM_PRIORITIES = 10;\nDEFAULT_PRIORITY = 5;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nJob = class Job {\n constructor(task, args, options, jobDefaults, rejectOnDrop, Events, _states, Promise) {\n this.task = task;\n this.args = args;\n this.rejectOnDrop = rejectOnDrop;\n this.Events = Events;\n this._states = _states;\n this.Promise = Promise;\n this.options = parser.load(options, jobDefaults);\n this.options.priority = this._sanitizePriority(this.options.priority);\n\n if (this.options.id === jobDefaults.id) {\n this.options.id = `${this.options.id}-${this._randomIndex()}`;\n }\n\n this.promise = new this.Promise((_resolve, _reject) => {\n this._resolve = _resolve;\n this._reject = _reject;\n });\n this.retryCount = 0;\n }\n\n _sanitizePriority(priority) {\n var sProperty;\n sProperty = ~~priority !== priority ? DEFAULT_PRIORITY : priority;\n\n if (sProperty < 0) {\n return 0;\n } else if (sProperty > NUM_PRIORITIES - 1) {\n return NUM_PRIORITIES - 1;\n } else {\n return sProperty;\n }\n }\n\n _randomIndex() {\n return Math.random().toString(36).slice(2);\n }\n\n doDrop({\n error,\n message = \"This job has been dropped by Bottleneck\"\n } = {}) {\n if (this._states.remove(this.options.id)) {\n if (this.rejectOnDrop) {\n this._reject(error != null ? error : new BottleneckError(message));\n }\n\n this.Events.trigger(\"dropped\", {\n args: this.args,\n options: this.options,\n task: this.task,\n promise: this.promise\n });\n return true;\n } else {\n return false;\n }\n }\n\n _assertStatus(expected) {\n var status;\n status = this._states.jobStatus(this.options.id);\n\n if (!(status === expected || expected === \"DONE\" && status === null)) {\n throw new BottleneckError(`Invalid job status ${status}, expected ${expected}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`);\n }\n }\n\n doReceive() {\n this._states.start(this.options.id);\n\n return this.Events.trigger(\"received\", {\n args: this.args,\n options: this.options\n });\n }\n\n doQueue(reachedHWM, blocked) {\n this._assertStatus(\"RECEIVED\");\n\n this._states.next(this.options.id);\n\n return this.Events.trigger(\"queued\", {\n args: this.args,\n options: this.options,\n reachedHWM,\n blocked\n });\n }\n\n doRun() {\n if (this.retryCount === 0) {\n this._assertStatus(\"QUEUED\");\n\n this._states.next(this.options.id);\n } else {\n this._assertStatus(\"EXECUTING\");\n }\n\n return this.Events.trigger(\"scheduled\", {\n args: this.args,\n options: this.options\n });\n }\n\n doExecute(chained, clearGlobalState, run, free) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var error, eventInfo, passed;\n\n if (_this.retryCount === 0) {\n _this._assertStatus(\"RUNNING\");\n\n _this._states.next(_this.options.id);\n } else {\n _this._assertStatus(\"EXECUTING\");\n }\n\n eventInfo = {\n args: _this.args,\n options: _this.options,\n retryCount: _this.retryCount\n };\n\n _this.Events.trigger(\"executing\", eventInfo);\n\n try {\n passed = yield chained != null ? chained.schedule(_this.options, _this.task, ..._this.args) : _this.task(..._this.args);\n\n if (clearGlobalState()) {\n _this.doDone(eventInfo);\n\n yield free(_this.options, eventInfo);\n\n _this._assertStatus(\"DONE\");\n\n return _this._resolve(passed);\n }\n } catch (error1) {\n error = error1;\n return _this._onFailure(error, eventInfo, clearGlobalState, run, free);\n }\n })();\n }\n\n doExpire(clearGlobalState, run, free) {\n var error, eventInfo;\n\n if (this._states.jobStatus(this.options.id === \"RUNNING\")) {\n this._states.next(this.options.id);\n }\n\n this._assertStatus(\"EXECUTING\");\n\n eventInfo = {\n args: this.args,\n options: this.options,\n retryCount: this.retryCount\n };\n error = new BottleneckError(`This job timed out after ${this.options.expiration} ms.`);\n return this._onFailure(error, eventInfo, clearGlobalState, run, free);\n }\n\n _onFailure(error, eventInfo, clearGlobalState, run, free) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var retry, retryAfter;\n\n if (clearGlobalState()) {\n retry = yield _this2.Events.trigger(\"failed\", error, eventInfo);\n\n if (retry != null) {\n retryAfter = ~~retry;\n\n _this2.Events.trigger(\"retry\", `Retrying ${_this2.options.id} after ${retryAfter} ms`, eventInfo);\n\n _this2.retryCount++;\n return run(retryAfter);\n } else {\n _this2.doDone(eventInfo);\n\n yield free(_this2.options, eventInfo);\n\n _this2._assertStatus(\"DONE\");\n\n return _this2._reject(error);\n }\n }\n })();\n }\n\n doDone(eventInfo) {\n this._assertStatus(\"EXECUTING\");\n\n this._states.next(this.options.id);\n\n return this.Events.trigger(\"done\", eventInfo);\n }\n\n};\nmodule.exports = Job;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, LocalDatastore, parser;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nLocalDatastore = class LocalDatastore {\n constructor(instance, storeOptions, storeInstanceOptions) {\n this.instance = instance;\n this.storeOptions = storeOptions;\n this.clientId = this.instance._randomIndex();\n parser.load(storeInstanceOptions, storeInstanceOptions, this);\n this._nextRequest = this._lastReservoirRefresh = this._lastReservoirIncrease = Date.now();\n this._running = 0;\n this._done = 0;\n this._unblockTime = 0;\n this.ready = this.Promise.resolve();\n this.clients = {};\n\n this._startHeartbeat();\n }\n\n _startHeartbeat() {\n var base;\n\n if (this.heartbeat == null && (this.storeOptions.reservoirRefreshInterval != null && this.storeOptions.reservoirRefreshAmount != null || this.storeOptions.reservoirIncreaseInterval != null && this.storeOptions.reservoirIncreaseAmount != null)) {\n return typeof (base = this.heartbeat = setInterval(() => {\n var amount, incr, maximum, now, reservoir;\n now = Date.now();\n\n if (this.storeOptions.reservoirRefreshInterval != null && now >= this._lastReservoirRefresh + this.storeOptions.reservoirRefreshInterval) {\n this._lastReservoirRefresh = now;\n this.storeOptions.reservoir = this.storeOptions.reservoirRefreshAmount;\n\n this.instance._drainAll(this.computeCapacity());\n }\n\n if (this.storeOptions.reservoirIncreaseInterval != null && now >= this._lastReservoirIncrease + this.storeOptions.reservoirIncreaseInterval) {\n var _this$storeOptions = this.storeOptions;\n amount = _this$storeOptions.reservoirIncreaseAmount;\n maximum = _this$storeOptions.reservoirIncreaseMaximum;\n reservoir = _this$storeOptions.reservoir;\n this._lastReservoirIncrease = now;\n incr = maximum != null ? Math.min(amount, maximum - reservoir) : amount;\n\n if (incr > 0) {\n this.storeOptions.reservoir += incr;\n return this.instance._drainAll(this.computeCapacity());\n }\n }\n }, this.heartbeatInterval)).unref === \"function\" ? base.unref() : void 0;\n } else {\n return clearInterval(this.heartbeat);\n }\n }\n\n __publish__(message) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n yield _this.yieldLoop();\n return _this.instance.Events.trigger(\"message\", message.toString());\n })();\n }\n\n __disconnect__(flush) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n yield _this2.yieldLoop();\n clearInterval(_this2.heartbeat);\n return _this2.Promise.resolve();\n })();\n }\n\n yieldLoop(t = 0) {\n return new this.Promise(function (resolve, reject) {\n return setTimeout(resolve, t);\n });\n }\n\n computePenalty() {\n var ref;\n return (ref = this.storeOptions.penalty) != null ? ref : 15 * this.storeOptions.minTime || 5000;\n }\n\n __updateSettings__(options) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n yield _this3.yieldLoop();\n parser.overwrite(options, options, _this3.storeOptions);\n\n _this3._startHeartbeat();\n\n _this3.instance._drainAll(_this3.computeCapacity());\n\n return true;\n })();\n }\n\n __running__() {\n var _this4 = this;\n\n return _asyncToGenerator(function* () {\n yield _this4.yieldLoop();\n return _this4._running;\n })();\n }\n\n __queued__() {\n var _this5 = this;\n\n return _asyncToGenerator(function* () {\n yield _this5.yieldLoop();\n return _this5.instance.queued();\n })();\n }\n\n __done__() {\n var _this6 = this;\n\n return _asyncToGenerator(function* () {\n yield _this6.yieldLoop();\n return _this6._done;\n })();\n }\n\n __groupCheck__(time) {\n var _this7 = this;\n\n return _asyncToGenerator(function* () {\n yield _this7.yieldLoop();\n return _this7._nextRequest + _this7.timeout < time;\n })();\n }\n\n computeCapacity() {\n var maxConcurrent, reservoir;\n var _this$storeOptions2 = this.storeOptions;\n maxConcurrent = _this$storeOptions2.maxConcurrent;\n reservoir = _this$storeOptions2.reservoir;\n\n if (maxConcurrent != null && reservoir != null) {\n return Math.min(maxConcurrent - this._running, reservoir);\n } else if (maxConcurrent != null) {\n return maxConcurrent - this._running;\n } else if (reservoir != null) {\n return reservoir;\n } else {\n return null;\n }\n }\n\n conditionsCheck(weight) {\n var capacity;\n capacity = this.computeCapacity();\n return capacity == null || weight <= capacity;\n }\n\n __incrementReservoir__(incr) {\n var _this8 = this;\n\n return _asyncToGenerator(function* () {\n var reservoir;\n yield _this8.yieldLoop();\n reservoir = _this8.storeOptions.reservoir += incr;\n\n _this8.instance._drainAll(_this8.computeCapacity());\n\n return reservoir;\n })();\n }\n\n __currentReservoir__() {\n var _this9 = this;\n\n return _asyncToGenerator(function* () {\n yield _this9.yieldLoop();\n return _this9.storeOptions.reservoir;\n })();\n }\n\n isBlocked(now) {\n return this._unblockTime >= now;\n }\n\n check(weight, now) {\n return this.conditionsCheck(weight) && this._nextRequest - now <= 0;\n }\n\n __check__(weight) {\n var _this10 = this;\n\n return _asyncToGenerator(function* () {\n var now;\n yield _this10.yieldLoop();\n now = Date.now();\n return _this10.check(weight, now);\n })();\n }\n\n __register__(index, weight, expiration) {\n var _this11 = this;\n\n return _asyncToGenerator(function* () {\n var now, wait;\n yield _this11.yieldLoop();\n now = Date.now();\n\n if (_this11.conditionsCheck(weight)) {\n _this11._running += weight;\n\n if (_this11.storeOptions.reservoir != null) {\n _this11.storeOptions.reservoir -= weight;\n }\n\n wait = Math.max(_this11._nextRequest - now, 0);\n _this11._nextRequest = now + wait + _this11.storeOptions.minTime;\n return {\n success: true,\n wait,\n reservoir: _this11.storeOptions.reservoir\n };\n } else {\n return {\n success: false\n };\n }\n })();\n }\n\n strategyIsBlock() {\n return this.storeOptions.strategy === 3;\n }\n\n __submit__(queueLength, weight) {\n var _this12 = this;\n\n return _asyncToGenerator(function* () {\n var blocked, now, reachedHWM;\n yield _this12.yieldLoop();\n\n if (_this12.storeOptions.maxConcurrent != null && weight > _this12.storeOptions.maxConcurrent) {\n throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${_this12.storeOptions.maxConcurrent}`);\n }\n\n now = Date.now();\n reachedHWM = _this12.storeOptions.highWater != null && queueLength === _this12.storeOptions.highWater && !_this12.check(weight, now);\n blocked = _this12.strategyIsBlock() && (reachedHWM || _this12.isBlocked(now));\n\n if (blocked) {\n _this12._unblockTime = now + _this12.computePenalty();\n _this12._nextRequest = _this12._unblockTime + _this12.storeOptions.minTime;\n\n _this12.instance._dropAllQueued();\n }\n\n return {\n reachedHWM,\n blocked,\n strategy: _this12.storeOptions.strategy\n };\n })();\n }\n\n __free__(index, weight) {\n var _this13 = this;\n\n return _asyncToGenerator(function* () {\n yield _this13.yieldLoop();\n _this13._running -= weight;\n _this13._done += weight;\n\n _this13.instance._drainAll(_this13.computeCapacity());\n\n return {\n running: _this13._running\n };\n })();\n }\n\n};\nmodule.exports = LocalDatastore;","\"use strict\";\n\nvar headers, lua, templates;\nlua = require(\"./lua.json\");\nheaders = {\n refs: lua[\"refs.lua\"],\n validate_keys: lua[\"validate_keys.lua\"],\n validate_client: lua[\"validate_client.lua\"],\n refresh_expiration: lua[\"refresh_expiration.lua\"],\n process_tick: lua[\"process_tick.lua\"],\n conditions_check: lua[\"conditions_check.lua\"],\n get_time: lua[\"get_time.lua\"]\n};\n\nexports.allKeys = function (id) {\n return [\n /*\n HASH\n */\n `b_${id}_settings`,\n /*\n HASH\n job index -> weight\n */\n `b_${id}_job_weights`,\n /*\n ZSET\n job index -> expiration\n */\n `b_${id}_job_expirations`,\n /*\n HASH\n job index -> client\n */\n `b_${id}_job_clients`,\n /*\n ZSET\n client -> sum running\n */\n `b_${id}_client_running`,\n /*\n HASH\n client -> num queued\n */\n `b_${id}_client_num_queued`,\n /*\n ZSET\n client -> last job registered\n */\n `b_${id}_client_last_registered`,\n /*\n ZSET\n client -> last seen\n */\n `b_${id}_client_last_seen`];\n};\n\ntemplates = {\n init: {\n keys: exports.allKeys,\n headers: [\"process_tick\"],\n refresh_expiration: true,\n code: lua[\"init.lua\"]\n },\n group_check: {\n keys: exports.allKeys,\n headers: [],\n refresh_expiration: false,\n code: lua[\"group_check.lua\"]\n },\n register_client: {\n keys: exports.allKeys,\n headers: [\"validate_keys\"],\n refresh_expiration: false,\n code: lua[\"register_client.lua\"]\n },\n blacklist_client: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\"],\n refresh_expiration: false,\n code: lua[\"blacklist_client.lua\"]\n },\n heartbeat: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"heartbeat.lua\"]\n },\n update_settings: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"update_settings.lua\"]\n },\n running: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"running.lua\"]\n },\n queued: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\"],\n refresh_expiration: false,\n code: lua[\"queued.lua\"]\n },\n done: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"done.lua\"]\n },\n check: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: false,\n code: lua[\"check.lua\"]\n },\n submit: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: true,\n code: lua[\"submit.lua\"]\n },\n register: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: true,\n code: lua[\"register.lua\"]\n },\n free: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"free.lua\"]\n },\n current_reservoir: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"current_reservoir.lua\"]\n },\n increment_reservoir: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"increment_reservoir.lua\"]\n }\n};\nexports.names = Object.keys(templates);\n\nexports.keys = function (name, id) {\n return templates[name].keys(id);\n};\n\nexports.payload = function (name) {\n var template;\n template = templates[name];\n return Array.prototype.concat(headers.refs, template.headers.map(function (h) {\n return headers[h];\n }), template.refresh_expiration ? headers.refresh_expiration : \"\", template.code).join(\"\\n\");\n};","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, RedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nScripts = require(\"./Scripts\");\n\nRedisConnection = function () {\n class RedisConnection {\n constructor(options = {}) {\n parser.load(options, this.defaults, this);\n\n if (this.Redis == null) {\n this.Redis = eval(\"require\")(\"redis\"); // Obfuscated or else Webpack/Angular will try to inline the optional redis module. To override this behavior: pass the redis module to Bottleneck as the 'Redis' option.\n }\n\n if (this.Events == null) {\n this.Events = new Events(this);\n }\n\n this.terminated = false;\n\n if (this.client == null) {\n this.client = this.Redis.createClient(this.clientOptions);\n }\n\n this.subscriber = this.client.duplicate();\n this.limiters = {};\n this.shas = {};\n this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => {\n return this._loadScripts();\n }).then(() => {\n return {\n client: this.client,\n subscriber: this.subscriber\n };\n });\n }\n\n _setup(client, sub) {\n client.setMaxListeners(0);\n return new this.Promise((resolve, reject) => {\n client.on(\"error\", e => {\n return this.Events.trigger(\"error\", e);\n });\n\n if (sub) {\n client.on(\"message\", (channel, message) => {\n var ref;\n return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0;\n });\n }\n\n if (client.ready) {\n return resolve();\n } else {\n return client.once(\"ready\", resolve);\n }\n });\n }\n\n _loadScript(name) {\n return new this.Promise((resolve, reject) => {\n var payload;\n payload = Scripts.payload(name);\n return this.client.multi([[\"script\", \"load\", payload]]).exec((err, replies) => {\n if (err != null) {\n return reject(err);\n }\n\n this.shas[name] = replies[0];\n return resolve(replies[0]);\n });\n });\n }\n\n _loadScripts() {\n return this.Promise.all(Scripts.names.map(k => {\n return this._loadScript(k);\n }));\n }\n\n __runCommand__(cmd) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n yield _this.ready;\n return new _this.Promise((resolve, reject) => {\n return _this.client.multi([cmd]).exec_atomic(function (err, replies) {\n if (err != null) {\n return reject(err);\n } else {\n return resolve(replies[0]);\n }\n });\n });\n })();\n }\n\n __addLimiter__(instance) {\n return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => {\n return new this.Promise((resolve, reject) => {\n var handler;\n\n handler = chan => {\n if (chan === channel) {\n this.subscriber.removeListener(\"subscribe\", handler);\n this.limiters[channel] = instance;\n return resolve();\n }\n };\n\n this.subscriber.on(\"subscribe\", handler);\n return this.subscriber.subscribe(channel);\n });\n }));\n }\n\n __removeLimiter__(instance) {\n var _this2 = this;\n\n return this.Promise.all([instance.channel(), instance.channel_client()].map(\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(function* (channel) {\n if (!_this2.terminated) {\n yield new _this2.Promise((resolve, reject) => {\n return _this2.subscriber.unsubscribe(channel, function (err, chan) {\n if (err != null) {\n return reject(err);\n }\n\n if (chan === channel) {\n return resolve();\n }\n });\n });\n }\n\n return delete _this2.limiters[channel];\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()));\n }\n\n __scriptArgs__(name, id, args, cb) {\n var keys;\n keys = Scripts.keys(name, id);\n return [this.shas[name], keys.length].concat(keys, args, cb);\n }\n\n __scriptFn__(name) {\n return this.client.evalsha.bind(this.client);\n }\n\n disconnect(flush = true) {\n var i, k, len, ref;\n ref = Object.keys(this.limiters);\n\n for (i = 0, len = ref.length; i < len; i++) {\n k = ref[i];\n clearInterval(this.limiters[k]._store.heartbeat);\n }\n\n this.limiters = {};\n this.terminated = true;\n this.client.end(flush);\n this.subscriber.end(flush);\n return this.Promise.resolve();\n }\n\n }\n\n ;\n RedisConnection.prototype.datastore = \"redis\";\n RedisConnection.prototype.defaults = {\n Redis: null,\n clientOptions: {},\n client: null,\n Promise: Promise,\n Events: null\n };\n return RedisConnection;\n}.call(void 0);\n\nmodule.exports = RedisConnection;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, IORedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nScripts = require(\"./Scripts\");\n\nIORedisConnection = function () {\n class IORedisConnection {\n constructor(options = {}) {\n parser.load(options, this.defaults, this);\n\n if (this.Redis == null) {\n this.Redis = eval(\"require\")(\"ioredis\"); // Obfuscated or else Webpack/Angular will try to inline the optional ioredis module. To override this behavior: pass the ioredis module to Bottleneck as the 'Redis' option.\n }\n\n if (this.Events == null) {\n this.Events = new Events(this);\n }\n\n this.terminated = false;\n\n if (this.clusterNodes != null) {\n this.client = new this.Redis.Cluster(this.clusterNodes, this.clientOptions);\n this.subscriber = new this.Redis.Cluster(this.clusterNodes, this.clientOptions);\n } else if (this.client != null && this.client.duplicate == null) {\n this.subscriber = new this.Redis.Cluster(this.client.startupNodes, this.client.options);\n } else {\n if (this.client == null) {\n this.client = new this.Redis(this.clientOptions);\n }\n\n this.subscriber = this.client.duplicate();\n }\n\n this.limiters = {};\n this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => {\n this._loadScripts();\n\n return {\n client: this.client,\n subscriber: this.subscriber\n };\n });\n }\n\n _setup(client, sub) {\n client.setMaxListeners(0);\n return new this.Promise((resolve, reject) => {\n client.on(\"error\", e => {\n return this.Events.trigger(\"error\", e);\n });\n\n if (sub) {\n client.on(\"message\", (channel, message) => {\n var ref;\n return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0;\n });\n }\n\n if (client.status === \"ready\") {\n return resolve();\n } else {\n return client.once(\"ready\", resolve);\n }\n });\n }\n\n _loadScripts() {\n return Scripts.names.forEach(name => {\n return this.client.defineCommand(name, {\n lua: Scripts.payload(name)\n });\n });\n }\n\n __runCommand__(cmd) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var _, deleted;\n\n yield _this.ready;\n\n var _ref = yield _this.client.pipeline([cmd]).exec();\n\n var _ref2 = _slicedToArray(_ref, 1);\n\n var _ref2$ = _slicedToArray(_ref2[0], 2);\n\n _ = _ref2$[0];\n deleted = _ref2$[1];\n return deleted;\n })();\n }\n\n __addLimiter__(instance) {\n return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => {\n return new this.Promise((resolve, reject) => {\n return this.subscriber.subscribe(channel, () => {\n this.limiters[channel] = instance;\n return resolve();\n });\n });\n }));\n }\n\n __removeLimiter__(instance) {\n var _this2 = this;\n\n return [instance.channel(), instance.channel_client()].forEach(\n /*#__PURE__*/\n function () {\n var _ref3 = _asyncToGenerator(function* (channel) {\n if (!_this2.terminated) {\n yield _this2.subscriber.unsubscribe(channel);\n }\n\n return delete _this2.limiters[channel];\n });\n\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }());\n }\n\n __scriptArgs__(name, id, args, cb) {\n var keys;\n keys = Scripts.keys(name, id);\n return [keys.length].concat(keys, args, cb);\n }\n\n __scriptFn__(name) {\n return this.client[name].bind(this.client);\n }\n\n disconnect(flush = true) {\n var i, k, len, ref;\n ref = Object.keys(this.limiters);\n\n for (i = 0, len = ref.length; i < len; i++) {\n k = ref[i];\n clearInterval(this.limiters[k]._store.heartbeat);\n }\n\n this.limiters = {};\n this.terminated = true;\n\n if (flush) {\n return this.Promise.all([this.client.quit(), this.subscriber.quit()]);\n } else {\n this.client.disconnect();\n this.subscriber.disconnect();\n return this.Promise.resolve();\n }\n }\n\n }\n\n ;\n IORedisConnection.prototype.datastore = \"ioredis\";\n IORedisConnection.prototype.defaults = {\n Redis: null,\n clientOptions: {},\n clusterNodes: null,\n client: null,\n Promise: Promise,\n Events: null\n };\n return IORedisConnection;\n}.call(void 0);\n\nmodule.exports = IORedisConnection;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, IORedisConnection, RedisConnection, RedisDatastore, parser;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nRedisConnection = require(\"./RedisConnection\");\nIORedisConnection = require(\"./IORedisConnection\");\nRedisDatastore = class RedisDatastore {\n constructor(instance, storeOptions, storeInstanceOptions) {\n this.instance = instance;\n this.storeOptions = storeOptions;\n this.originalId = this.instance.id;\n this.clientId = this.instance._randomIndex();\n parser.load(storeInstanceOptions, storeInstanceOptions, this);\n this.clients = {};\n this.capacityPriorityCounters = {};\n this.sharedConnection = this.connection != null;\n\n if (this.connection == null) {\n this.connection = this.instance.datastore === \"redis\" ? new RedisConnection({\n Redis: this.Redis,\n clientOptions: this.clientOptions,\n Promise: this.Promise,\n Events: this.instance.Events\n }) : this.instance.datastore === \"ioredis\" ? new IORedisConnection({\n Redis: this.Redis,\n clientOptions: this.clientOptions,\n clusterNodes: this.clusterNodes,\n Promise: this.Promise,\n Events: this.instance.Events\n }) : void 0;\n }\n\n this.instance.connection = this.connection;\n this.instance.datastore = this.connection.datastore;\n this.ready = this.connection.ready.then(clients => {\n this.clients = clients;\n return this.runScript(\"init\", this.prepareInitSettings(this.clearDatastore));\n }).then(() => {\n return this.connection.__addLimiter__(this.instance);\n }).then(() => {\n return this.runScript(\"register_client\", [this.instance.queued()]);\n }).then(() => {\n var base;\n\n if (typeof (base = this.heartbeat = setInterval(() => {\n return this.runScript(\"heartbeat\", []).catch(e => {\n return this.instance.Events.trigger(\"error\", e);\n });\n }, this.heartbeatInterval)).unref === \"function\") {\n base.unref();\n }\n\n return this.clients;\n });\n }\n\n __publish__(message) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var client;\n\n var _ref = yield _this.ready;\n\n client = _ref.client;\n return client.publish(_this.instance.channel(), `message:${message.toString()}`);\n })();\n }\n\n onMessage(channel, message) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var capacity, counter, data, drained, e, newCapacity, pos, priorityClient, rawCapacity, type;\n\n try {\n pos = message.indexOf(\":\");\n var _ref2 = [message.slice(0, pos), message.slice(pos + 1)];\n type = _ref2[0];\n data = _ref2[1];\n\n if (type === \"capacity\") {\n return yield _this2.instance._drainAll(data.length > 0 ? ~~data : void 0);\n } else if (type === \"capacity-priority\") {\n var _data$split = data.split(\":\");\n\n var _data$split2 = _slicedToArray(_data$split, 3);\n\n rawCapacity = _data$split2[0];\n priorityClient = _data$split2[1];\n counter = _data$split2[2];\n capacity = rawCapacity.length > 0 ? ~~rawCapacity : void 0;\n\n if (priorityClient === _this2.clientId) {\n drained = yield _this2.instance._drainAll(capacity);\n newCapacity = capacity != null ? capacity - (drained || 0) : \"\";\n return yield _this2.clients.client.publish(_this2.instance.channel(), `capacity-priority:${newCapacity}::${counter}`);\n } else if (priorityClient === \"\") {\n clearTimeout(_this2.capacityPriorityCounters[counter]);\n delete _this2.capacityPriorityCounters[counter];\n return _this2.instance._drainAll(capacity);\n } else {\n return _this2.capacityPriorityCounters[counter] = setTimeout(\n /*#__PURE__*/\n _asyncToGenerator(function* () {\n var e;\n\n try {\n delete _this2.capacityPriorityCounters[counter];\n yield _this2.runScript(\"blacklist_client\", [priorityClient]);\n return yield _this2.instance._drainAll(capacity);\n } catch (error) {\n e = error;\n return _this2.instance.Events.trigger(\"error\", e);\n }\n }), 1000);\n }\n } else if (type === \"message\") {\n return _this2.instance.Events.trigger(\"message\", data);\n } else if (type === \"blocked\") {\n return yield _this2.instance._dropAllQueued();\n }\n } catch (error) {\n e = error;\n return _this2.instance.Events.trigger(\"error\", e);\n }\n })();\n }\n\n __disconnect__(flush) {\n clearInterval(this.heartbeat);\n\n if (this.sharedConnection) {\n return this.connection.__removeLimiter__(this.instance);\n } else {\n return this.connection.disconnect(flush);\n }\n }\n\n runScript(name, args) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n if (!(name === \"init\" || name === \"register_client\")) {\n yield _this3.ready;\n }\n\n return new _this3.Promise((resolve, reject) => {\n var all_args, arr;\n all_args = [Date.now(), _this3.clientId].concat(args);\n\n _this3.instance.Events.trigger(\"debug\", `Calling Redis script: ${name}.lua`, all_args);\n\n arr = _this3.connection.__scriptArgs__(name, _this3.originalId, all_args, function (err, replies) {\n if (err != null) {\n return reject(err);\n }\n\n return resolve(replies);\n });\n return _this3.connection.__scriptFn__(name)(...arr);\n }).catch(e => {\n if (e.message === \"SETTINGS_KEY_NOT_FOUND\") {\n if (name === \"heartbeat\") {\n return _this3.Promise.resolve();\n } else {\n return _this3.runScript(\"init\", _this3.prepareInitSettings(false)).then(() => {\n return _this3.runScript(name, args);\n });\n }\n } else if (e.message === \"UNKNOWN_CLIENT\") {\n return _this3.runScript(\"register_client\", [_this3.instance.queued()]).then(() => {\n return _this3.runScript(name, args);\n });\n } else {\n return _this3.Promise.reject(e);\n }\n });\n })();\n }\n\n prepareArray(arr) {\n var i, len, results, x;\n results = [];\n\n for (i = 0, len = arr.length; i < len; i++) {\n x = arr[i];\n results.push(x != null ? x.toString() : \"\");\n }\n\n return results;\n }\n\n prepareObject(obj) {\n var arr, k, v;\n arr = [];\n\n for (k in obj) {\n v = obj[k];\n arr.push(k, v != null ? v.toString() : \"\");\n }\n\n return arr;\n }\n\n prepareInitSettings(clear) {\n var args;\n args = this.prepareObject(Object.assign({}, this.storeOptions, {\n id: this.originalId,\n version: this.instance.version,\n groupTimeout: this.timeout,\n clientTimeout: this.clientTimeout\n }));\n args.unshift(clear ? 1 : 0, this.instance.version);\n return args;\n }\n\n convertBool(b) {\n return !!b;\n }\n\n __updateSettings__(options) {\n var _this4 = this;\n\n return _asyncToGenerator(function* () {\n yield _this4.runScript(\"update_settings\", _this4.prepareObject(options));\n return parser.overwrite(options, options, _this4.storeOptions);\n })();\n }\n\n __running__() {\n return this.runScript(\"running\", []);\n }\n\n __queued__() {\n return this.runScript(\"queued\", []);\n }\n\n __done__() {\n return this.runScript(\"done\", []);\n }\n\n __groupCheck__() {\n var _this5 = this;\n\n return _asyncToGenerator(function* () {\n return _this5.convertBool((yield _this5.runScript(\"group_check\", [])));\n })();\n }\n\n __incrementReservoir__(incr) {\n return this.runScript(\"increment_reservoir\", [incr]);\n }\n\n __currentReservoir__() {\n return this.runScript(\"current_reservoir\", []);\n }\n\n __check__(weight) {\n var _this6 = this;\n\n return _asyncToGenerator(function* () {\n return _this6.convertBool((yield _this6.runScript(\"check\", _this6.prepareArray([weight]))));\n })();\n }\n\n __register__(index, weight, expiration) {\n var _this7 = this;\n\n return _asyncToGenerator(function* () {\n var reservoir, success, wait;\n\n var _ref4 = yield _this7.runScript(\"register\", _this7.prepareArray([index, weight, expiration]));\n\n var _ref5 = _slicedToArray(_ref4, 3);\n\n success = _ref5[0];\n wait = _ref5[1];\n reservoir = _ref5[2];\n return {\n success: _this7.convertBool(success),\n wait,\n reservoir\n };\n })();\n }\n\n __submit__(queueLength, weight) {\n var _this8 = this;\n\n return _asyncToGenerator(function* () {\n var blocked, e, maxConcurrent, overweight, reachedHWM, strategy;\n\n try {\n var _ref6 = yield _this8.runScript(\"submit\", _this8.prepareArray([queueLength, weight]));\n\n var _ref7 = _slicedToArray(_ref6, 3);\n\n reachedHWM = _ref7[0];\n blocked = _ref7[1];\n strategy = _ref7[2];\n return {\n reachedHWM: _this8.convertBool(reachedHWM),\n blocked: _this8.convertBool(blocked),\n strategy\n };\n } catch (error) {\n e = error;\n\n if (e.message.indexOf(\"OVERWEIGHT\") === 0) {\n var _e$message$split = e.message.split(\":\");\n\n var _e$message$split2 = _slicedToArray(_e$message$split, 3);\n\n overweight = _e$message$split2[0];\n weight = _e$message$split2[1];\n maxConcurrent = _e$message$split2[2];\n throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${maxConcurrent}`);\n } else {\n throw e;\n }\n }\n })();\n }\n\n __free__(index, weight) {\n var _this9 = this;\n\n return _asyncToGenerator(function* () {\n var running;\n running = yield _this9.runScript(\"free\", _this9.prepareArray([index]));\n return {\n running\n };\n })();\n }\n\n};\nmodule.exports = RedisDatastore;","\"use strict\";\n\nvar BottleneckError, States;\nBottleneckError = require(\"./BottleneckError\");\nStates = class States {\n constructor(status1) {\n this.status = status1;\n this._jobs = {};\n this.counts = this.status.map(function () {\n return 0;\n });\n }\n\n next(id) {\n var current, next;\n current = this._jobs[id];\n next = current + 1;\n\n if (current != null && next < this.status.length) {\n this.counts[current]--;\n this.counts[next]++;\n return this._jobs[id]++;\n } else if (current != null) {\n this.counts[current]--;\n return delete this._jobs[id];\n }\n }\n\n start(id) {\n var initial;\n initial = 0;\n this._jobs[id] = initial;\n return this.counts[initial]++;\n }\n\n remove(id) {\n var current;\n current = this._jobs[id];\n\n if (current != null) {\n this.counts[current]--;\n delete this._jobs[id];\n }\n\n return current != null;\n }\n\n jobStatus(id) {\n var ref;\n return (ref = this.status[this._jobs[id]]) != null ? ref : null;\n }\n\n statusJobs(status) {\n var k, pos, ref, results, v;\n\n if (status != null) {\n pos = this.status.indexOf(status);\n\n if (pos < 0) {\n throw new BottleneckError(`status must be one of ${this.status.join(', ')}`);\n }\n\n ref = this._jobs;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n\n if (v === pos) {\n results.push(k);\n }\n }\n\n return results;\n } else {\n return Object.keys(this._jobs);\n }\n }\n\n statusCounts() {\n return this.counts.reduce((acc, v, i) => {\n acc[this.status[i]] = v;\n return acc;\n }, {});\n }\n\n};\nmodule.exports = States;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar DLList, Sync;\nDLList = require(\"./DLList\");\nSync = class Sync {\n constructor(name, Promise) {\n this.schedule = this.schedule.bind(this);\n this.name = name;\n this.Promise = Promise;\n this._running = 0;\n this._queue = new DLList();\n }\n\n isEmpty() {\n return this._queue.length === 0;\n }\n\n _tryToRun() {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var args, cb, error, reject, resolve, returned, task;\n\n if (_this._running < 1 && _this._queue.length > 0) {\n _this._running++;\n\n var _this$_queue$shift = _this._queue.shift();\n\n task = _this$_queue$shift.task;\n args = _this$_queue$shift.args;\n resolve = _this$_queue$shift.resolve;\n reject = _this$_queue$shift.reject;\n cb = yield _asyncToGenerator(function* () {\n try {\n returned = yield task(...args);\n return function () {\n return resolve(returned);\n };\n } catch (error1) {\n error = error1;\n return function () {\n return reject(error);\n };\n }\n })();\n _this._running--;\n\n _this._tryToRun();\n\n return cb();\n }\n })();\n }\n\n schedule(task, ...args) {\n var promise, reject, resolve;\n resolve = reject = null;\n promise = new this.Promise(function (_resolve, _reject) {\n resolve = _resolve;\n return reject = _reject;\n });\n\n this._queue.push({\n task,\n args,\n resolve,\n reject\n });\n\n this._tryToRun();\n\n return promise;\n }\n\n};\nmodule.exports = Sync;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, Group, IORedisConnection, RedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nRedisConnection = require(\"./RedisConnection\");\nIORedisConnection = require(\"./IORedisConnection\");\nScripts = require(\"./Scripts\");\n\nGroup = function () {\n class Group {\n constructor(limiterOptions = {}) {\n this.deleteKey = this.deleteKey.bind(this);\n this.limiterOptions = limiterOptions;\n parser.load(this.limiterOptions, this.defaults, this);\n this.Events = new Events(this);\n this.instances = {};\n this.Bottleneck = require(\"./Bottleneck\");\n\n this._startAutoCleanup();\n\n this.sharedConnection = this.connection != null;\n\n if (this.connection == null) {\n if (this.limiterOptions.datastore === \"redis\") {\n this.connection = new RedisConnection(Object.assign({}, this.limiterOptions, {\n Events: this.Events\n }));\n } else if (this.limiterOptions.datastore === \"ioredis\") {\n this.connection = new IORedisConnection(Object.assign({}, this.limiterOptions, {\n Events: this.Events\n }));\n }\n }\n }\n\n key(key = \"\") {\n var ref;\n return (ref = this.instances[key]) != null ? ref : (() => {\n var limiter;\n limiter = this.instances[key] = new this.Bottleneck(Object.assign(this.limiterOptions, {\n id: `${this.id}-${key}`,\n timeout: this.timeout,\n connection: this.connection\n }));\n this.Events.trigger(\"created\", limiter, key);\n return limiter;\n })();\n }\n\n deleteKey(key = \"\") {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var deleted, instance;\n instance = _this.instances[key];\n\n if (_this.connection) {\n deleted = yield _this.connection.__runCommand__(['del', ...Scripts.allKeys(`${_this.id}-${key}`)]);\n }\n\n if (instance != null) {\n delete _this.instances[key];\n yield instance.disconnect();\n }\n\n return instance != null || deleted > 0;\n })();\n }\n\n limiters() {\n var k, ref, results, v;\n ref = this.instances;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n results.push({\n key: k,\n limiter: v\n });\n }\n\n return results;\n }\n\n keys() {\n return Object.keys(this.instances);\n }\n\n clusterKeys() {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var cursor, end, found, i, k, keys, len, next, start;\n\n if (_this2.connection == null) {\n return _this2.Promise.resolve(_this2.keys());\n }\n\n keys = [];\n cursor = null;\n start = `b_${_this2.id}-`.length;\n end = \"_settings\".length;\n\n while (cursor !== 0) {\n var _ref = yield _this2.connection.__runCommand__([\"scan\", cursor != null ? cursor : 0, \"match\", `b_${_this2.id}-*_settings`, \"count\", 10000]);\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n next = _ref2[0];\n found = _ref2[1];\n cursor = ~~next;\n\n for (i = 0, len = found.length; i < len; i++) {\n k = found[i];\n keys.push(k.slice(start, -end));\n }\n }\n\n return keys;\n })();\n }\n\n _startAutoCleanup() {\n var _this3 = this;\n\n var base;\n clearInterval(this.interval);\n return typeof (base = this.interval = setInterval(\n /*#__PURE__*/\n _asyncToGenerator(function* () {\n var e, k, ref, results, time, v;\n time = Date.now();\n ref = _this3.instances;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n\n try {\n if (yield v._store.__groupCheck__(time)) {\n results.push(_this3.deleteKey(k));\n } else {\n results.push(void 0);\n }\n } catch (error) {\n e = error;\n results.push(v.Events.trigger(\"error\", e));\n }\n }\n\n return results;\n }), this.timeout / 2)).unref === \"function\" ? base.unref() : void 0;\n }\n\n updateSettings(options = {}) {\n parser.overwrite(options, this.defaults, this);\n parser.overwrite(options, options, this.limiterOptions);\n\n if (options.timeout != null) {\n return this._startAutoCleanup();\n }\n }\n\n disconnect(flush = true) {\n var ref;\n\n if (!this.sharedConnection) {\n return (ref = this.connection) != null ? ref.disconnect(flush) : void 0;\n }\n }\n\n }\n\n ;\n Group.prototype.defaults = {\n timeout: 1000 * 60 * 5,\n connection: null,\n Promise: Promise,\n id: \"group-key\"\n };\n return Group;\n}.call(void 0);\n\nmodule.exports = Group;","\"use strict\";\n\nvar Batcher, Events, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\n\nBatcher = function () {\n class Batcher {\n constructor(options = {}) {\n this.options = options;\n parser.load(this.options, this.defaults, this);\n this.Events = new Events(this);\n this._arr = [];\n\n this._resetPromise();\n\n this._lastFlush = Date.now();\n }\n\n _resetPromise() {\n return this._promise = new this.Promise((res, rej) => {\n return this._resolve = res;\n });\n }\n\n _flush() {\n clearTimeout(this._timeout);\n this._lastFlush = Date.now();\n\n this._resolve();\n\n this.Events.trigger(\"batch\", this._arr);\n this._arr = [];\n return this._resetPromise();\n }\n\n add(data) {\n var ret;\n\n this._arr.push(data);\n\n ret = this._promise;\n\n if (this._arr.length === this.maxSize) {\n this._flush();\n } else if (this.maxTime != null && this._arr.length === 1) {\n this._timeout = setTimeout(() => {\n return this._flush();\n }, this.maxTime);\n }\n\n return ret;\n }\n\n }\n\n ;\n Batcher.prototype.defaults = {\n maxTime: null,\n maxSize: null,\n Promise: Promise\n };\n return Batcher;\n}.call(void 0);\n\nmodule.exports = Batcher;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Bottleneck,\n DEFAULT_PRIORITY,\n Events,\n Job,\n LocalDatastore,\n NUM_PRIORITIES,\n Queues,\n RedisDatastore,\n States,\n Sync,\n parser,\n splice = [].splice;\nNUM_PRIORITIES = 10;\nDEFAULT_PRIORITY = 5;\nparser = require(\"./parser\");\nQueues = require(\"./Queues\");\nJob = require(\"./Job\");\nLocalDatastore = require(\"./LocalDatastore\");\nRedisDatastore = require(\"./RedisDatastore\");\nEvents = require(\"./Events\");\nStates = require(\"./States\");\nSync = require(\"./Sync\");\n\nBottleneck = function () {\n class Bottleneck {\n constructor(options = {}, ...invalid) {\n var storeInstanceOptions, storeOptions;\n this._addToQueue = this._addToQueue.bind(this);\n\n this._validateOptions(options, invalid);\n\n parser.load(options, this.instanceDefaults, this);\n this._queues = new Queues(NUM_PRIORITIES);\n this._scheduled = {};\n this._states = new States([\"RECEIVED\", \"QUEUED\", \"RUNNING\", \"EXECUTING\"].concat(this.trackDoneStatus ? [\"DONE\"] : []));\n this._limiter = null;\n this.Events = new Events(this);\n this._submitLock = new Sync(\"submit\", this.Promise);\n this._registerLock = new Sync(\"register\", this.Promise);\n storeOptions = parser.load(options, this.storeDefaults, {});\n\n this._store = function () {\n if (this.datastore === \"redis\" || this.datastore === \"ioredis\" || this.connection != null) {\n storeInstanceOptions = parser.load(options, this.redisStoreDefaults, {});\n return new RedisDatastore(this, storeOptions, storeInstanceOptions);\n } else if (this.datastore === \"local\") {\n storeInstanceOptions = parser.load(options, this.localStoreDefaults, {});\n return new LocalDatastore(this, storeOptions, storeInstanceOptions);\n } else {\n throw new Bottleneck.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`);\n }\n }.call(this);\n\n this._queues.on(\"leftzero\", () => {\n var ref;\n return (ref = this._store.heartbeat) != null ? typeof ref.ref === \"function\" ? ref.ref() : void 0 : void 0;\n });\n\n this._queues.on(\"zero\", () => {\n var ref;\n return (ref = this._store.heartbeat) != null ? typeof ref.unref === \"function\" ? ref.unref() : void 0 : void 0;\n });\n }\n\n _validateOptions(options, invalid) {\n if (!(options != null && typeof options === \"object\" && invalid.length === 0)) {\n throw new Bottleneck.prototype.BottleneckError(\"Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.\");\n }\n }\n\n ready() {\n return this._store.ready;\n }\n\n clients() {\n return this._store.clients;\n }\n\n channel() {\n return `b_${this.id}`;\n }\n\n channel_client() {\n return `b_${this.id}_${this._store.clientId}`;\n }\n\n publish(message) {\n return this._store.__publish__(message);\n }\n\n disconnect(flush = true) {\n return this._store.__disconnect__(flush);\n }\n\n chain(_limiter) {\n this._limiter = _limiter;\n return this;\n }\n\n queued(priority) {\n return this._queues.queued(priority);\n }\n\n clusterQueued() {\n return this._store.__queued__();\n }\n\n empty() {\n return this.queued() === 0 && this._submitLock.isEmpty();\n }\n\n running() {\n return this._store.__running__();\n }\n\n done() {\n return this._store.__done__();\n }\n\n jobStatus(id) {\n return this._states.jobStatus(id);\n }\n\n jobs(status) {\n return this._states.statusJobs(status);\n }\n\n counts() {\n return this._states.statusCounts();\n }\n\n _randomIndex() {\n return Math.random().toString(36).slice(2);\n }\n\n check(weight = 1) {\n return this._store.__check__(weight);\n }\n\n _clearGlobalState(index) {\n if (this._scheduled[index] != null) {\n clearTimeout(this._scheduled[index].expiration);\n delete this._scheduled[index];\n return true;\n } else {\n return false;\n }\n }\n\n _free(index, job, options, eventInfo) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var e, running;\n\n try {\n var _ref = yield _this._store.__free__(index, options.weight);\n\n running = _ref.running;\n\n _this.Events.trigger(\"debug\", `Freed ${options.id}`, eventInfo);\n\n if (running === 0 && _this.empty()) {\n return _this.Events.trigger(\"idle\");\n }\n } catch (error1) {\n e = error1;\n return _this.Events.trigger(\"error\", e);\n }\n })();\n }\n\n _run(index, job, wait) {\n var clearGlobalState, free, run;\n job.doRun();\n clearGlobalState = this._clearGlobalState.bind(this, index);\n run = this._run.bind(this, index, job);\n free = this._free.bind(this, index, job);\n return this._scheduled[index] = {\n timeout: setTimeout(() => {\n return job.doExecute(this._limiter, clearGlobalState, run, free);\n }, wait),\n expiration: job.options.expiration != null ? setTimeout(function () {\n return job.doExpire(clearGlobalState, run, free);\n }, wait + job.options.expiration) : void 0,\n job: job\n };\n }\n\n _drainOne(capacity) {\n return this._registerLock.schedule(() => {\n var args, index, next, options, queue;\n\n if (this.queued() === 0) {\n return this.Promise.resolve(null);\n }\n\n queue = this._queues.getFirst();\n\n var _next2 = next = queue.first();\n\n options = _next2.options;\n args = _next2.args;\n\n if (capacity != null && options.weight > capacity) {\n return this.Promise.resolve(null);\n }\n\n this.Events.trigger(\"debug\", `Draining ${options.id}`, {\n args,\n options\n });\n index = this._randomIndex();\n return this._store.__register__(index, options.weight, options.expiration).then(({\n success,\n wait,\n reservoir\n }) => {\n var empty;\n this.Events.trigger(\"debug\", `Drained ${options.id}`, {\n success,\n args,\n options\n });\n\n if (success) {\n queue.shift();\n empty = this.empty();\n\n if (empty) {\n this.Events.trigger(\"empty\");\n }\n\n if (reservoir === 0) {\n this.Events.trigger(\"depleted\", empty);\n }\n\n this._run(index, next, wait);\n\n return this.Promise.resolve(options.weight);\n } else {\n return this.Promise.resolve(null);\n }\n });\n });\n }\n\n _drainAll(capacity, total = 0) {\n return this._drainOne(capacity).then(drained => {\n var newCapacity;\n\n if (drained != null) {\n newCapacity = capacity != null ? capacity - drained : capacity;\n return this._drainAll(newCapacity, total + drained);\n } else {\n return this.Promise.resolve(total);\n }\n }).catch(e => {\n return this.Events.trigger(\"error\", e);\n });\n }\n\n _dropAllQueued(message) {\n return this._queues.shiftAll(function (job) {\n return job.doDrop({\n message\n });\n });\n }\n\n stop(options = {}) {\n var done, waitForExecuting;\n options = parser.load(options, this.stopDefaults);\n\n waitForExecuting = at => {\n var finished;\n\n finished = () => {\n var counts;\n counts = this._states.counts;\n return counts[0] + counts[1] + counts[2] + counts[3] === at;\n };\n\n return new this.Promise((resolve, reject) => {\n if (finished()) {\n return resolve();\n } else {\n return this.on(\"done\", () => {\n if (finished()) {\n this.removeAllListeners(\"done\");\n return resolve();\n }\n });\n }\n });\n };\n\n done = options.dropWaitingJobs ? (this._run = function (index, next) {\n return next.doDrop({\n message: options.dropErrorMessage\n });\n }, this._drainOne = () => {\n return this.Promise.resolve(null);\n }, this._registerLock.schedule(() => {\n return this._submitLock.schedule(() => {\n var k, ref, v;\n ref = this._scheduled;\n\n for (k in ref) {\n v = ref[k];\n\n if (this.jobStatus(v.job.options.id) === \"RUNNING\") {\n clearTimeout(v.timeout);\n clearTimeout(v.expiration);\n v.job.doDrop({\n message: options.dropErrorMessage\n });\n }\n }\n\n this._dropAllQueued(options.dropErrorMessage);\n\n return waitForExecuting(0);\n });\n })) : this.schedule({\n priority: NUM_PRIORITIES - 1,\n weight: 0\n }, () => {\n return waitForExecuting(1);\n });\n\n this._receive = function (job) {\n return job._reject(new Bottleneck.prototype.BottleneckError(options.enqueueErrorMessage));\n };\n\n this.stop = () => {\n return this.Promise.reject(new Bottleneck.prototype.BottleneckError(\"stop() has already been called\"));\n };\n\n return done;\n }\n\n _addToQueue(job) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var args, blocked, error, options, reachedHWM, shifted, strategy;\n args = job.args;\n options = job.options;\n\n try {\n var _ref2 = yield _this2._store.__submit__(_this2.queued(), options.weight);\n\n reachedHWM = _ref2.reachedHWM;\n blocked = _ref2.blocked;\n strategy = _ref2.strategy;\n } catch (error1) {\n error = error1;\n\n _this2.Events.trigger(\"debug\", `Could not queue ${options.id}`, {\n args,\n options,\n error\n });\n\n job.doDrop({\n error\n });\n return false;\n }\n\n if (blocked) {\n job.doDrop();\n return true;\n } else if (reachedHWM) {\n shifted = strategy === Bottleneck.prototype.strategy.LEAK ? _this2._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? _this2._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0;\n\n if (shifted != null) {\n shifted.doDrop();\n }\n\n if (shifted == null || strategy === Bottleneck.prototype.strategy.OVERFLOW) {\n if (shifted == null) {\n job.doDrop();\n }\n\n return reachedHWM;\n }\n }\n\n job.doQueue(reachedHWM, blocked);\n\n _this2._queues.push(job);\n\n yield _this2._drainAll();\n return reachedHWM;\n })();\n }\n\n _receive(job) {\n if (this._states.jobStatus(job.options.id) != null) {\n job._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${job.options.id})`));\n\n return false;\n } else {\n job.doReceive();\n return this._submitLock.schedule(this._addToQueue, job);\n }\n }\n\n submit(...args) {\n var cb, fn, job, options, ref, ref1, task;\n\n if (typeof args[0] === \"function\") {\n var _ref3, _ref4, _splice$call, _splice$call2;\n\n ref = args, (_ref3 = ref, _ref4 = _toArray(_ref3), fn = _ref4[0], args = _ref4.slice(1), _ref3), (_splice$call = splice.call(args, -1), _splice$call2 = _slicedToArray(_splice$call, 1), cb = _splice$call2[0], _splice$call);\n options = parser.load({}, this.jobDefaults);\n } else {\n var _ref5, _ref6, _splice$call3, _splice$call4;\n\n ref1 = args, (_ref5 = ref1, _ref6 = _toArray(_ref5), options = _ref6[0], fn = _ref6[1], args = _ref6.slice(2), _ref5), (_splice$call3 = splice.call(args, -1), _splice$call4 = _slicedToArray(_splice$call3, 1), cb = _splice$call4[0], _splice$call3);\n options = parser.load(options, this.jobDefaults);\n }\n\n task = (...args) => {\n return new this.Promise(function (resolve, reject) {\n return fn(...args, function (...args) {\n return (args[0] != null ? reject : resolve)(args);\n });\n });\n };\n\n job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise);\n job.promise.then(function (args) {\n return typeof cb === \"function\" ? cb(...args) : void 0;\n }).catch(function (args) {\n if (Array.isArray(args)) {\n return typeof cb === \"function\" ? cb(...args) : void 0;\n } else {\n return typeof cb === \"function\" ? cb(args) : void 0;\n }\n });\n return this._receive(job);\n }\n\n schedule(...args) {\n var job, options, task;\n\n if (typeof args[0] === \"function\") {\n var _args = args;\n\n var _args2 = _toArray(_args);\n\n task = _args2[0];\n args = _args2.slice(1);\n options = {};\n } else {\n var _args3 = args;\n\n var _args4 = _toArray(_args3);\n\n options = _args4[0];\n task = _args4[1];\n args = _args4.slice(2);\n }\n\n job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise);\n\n this._receive(job);\n\n return job.promise;\n }\n\n wrap(fn) {\n var schedule, wrapped;\n schedule = this.schedule.bind(this);\n\n wrapped = function wrapped(...args) {\n return schedule(fn.bind(this), ...args);\n };\n\n wrapped.withOptions = function (options, ...args) {\n return schedule(options, fn, ...args);\n };\n\n return wrapped;\n }\n\n updateSettings(options = {}) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n yield _this3._store.__updateSettings__(parser.overwrite(options, _this3.storeDefaults));\n parser.overwrite(options, _this3.instanceDefaults, _this3);\n return _this3;\n })();\n }\n\n currentReservoir() {\n return this._store.__currentReservoir__();\n }\n\n incrementReservoir(incr = 0) {\n return this._store.__incrementReservoir__(incr);\n }\n\n }\n\n ;\n Bottleneck.default = Bottleneck;\n Bottleneck.Events = Events;\n Bottleneck.version = Bottleneck.prototype.version = require(\"./version.json\").version;\n Bottleneck.strategy = Bottleneck.prototype.strategy = {\n LEAK: 1,\n OVERFLOW: 2,\n OVERFLOW_PRIORITY: 4,\n BLOCK: 3\n };\n Bottleneck.BottleneckError = Bottleneck.prototype.BottleneckError = require(\"./BottleneckError\");\n Bottleneck.Group = Bottleneck.prototype.Group = require(\"./Group\");\n Bottleneck.RedisConnection = Bottleneck.prototype.RedisConnection = require(\"./RedisConnection\");\n Bottleneck.IORedisConnection = Bottleneck.prototype.IORedisConnection = require(\"./IORedisConnection\");\n Bottleneck.Batcher = Bottleneck.prototype.Batcher = require(\"./Batcher\");\n Bottleneck.prototype.jobDefaults = {\n priority: DEFAULT_PRIORITY,\n weight: 1,\n expiration: null,\n id: \"\"\n };\n Bottleneck.prototype.storeDefaults = {\n maxConcurrent: null,\n minTime: 0,\n highWater: null,\n strategy: Bottleneck.prototype.strategy.LEAK,\n penalty: null,\n reservoir: null,\n reservoirRefreshInterval: null,\n reservoirRefreshAmount: null,\n reservoirIncreaseInterval: null,\n reservoirIncreaseAmount: null,\n reservoirIncreaseMaximum: null\n };\n Bottleneck.prototype.localStoreDefaults = {\n Promise: Promise,\n timeout: null,\n heartbeatInterval: 250\n };\n Bottleneck.prototype.redisStoreDefaults = {\n Promise: Promise,\n timeout: null,\n heartbeatInterval: 5000,\n clientTimeout: 10000,\n Redis: null,\n clientOptions: {},\n clusterNodes: null,\n clearDatastore: false,\n connection: null\n };\n Bottleneck.prototype.instanceDefaults = {\n datastore: \"local\",\n connection: null,\n id: \"\",\n rejectOnDrop: true,\n trackDoneStatus: false,\n Promise: Promise\n };\n Bottleneck.prototype.stopDefaults = {\n enqueueErrorMessage: \"This limiter has been stopped and cannot accept new jobs.\",\n dropWaitingJobs: true,\n dropErrorMessage: \"This limiter has been stopped.\"\n };\n return Bottleneck;\n}.call(void 0);\n\nmodule.exports = Bottleneck;","\"use strict\";\n\nmodule.exports = require(\"./Bottleneck\");","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","module.exports = require('util').inspect;\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar match = String.prototype.match;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\nvar toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('options \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n return String(obj);\n }\n if (typeof obj === 'bigint') {\n return String(obj) + 'n';\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = seen.slice();\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + String(obj.nodeName).toLowerCase();\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + xs.join(', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + ys.join(', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return String(s).replace(/\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = str.replace(/(['\\\\])/g, '\\\\$1').replace(/[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = Array(opts.indent + 1).join(' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: Array(depth + 1).join(baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + xs.join(',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ((/[^\\w$]/).test(key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n if (sideChannel.has(object)) {\n throw new RangeError('Cyclic object value');\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, true);\n var valueSideChannel = getSideChannel();\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","export default function(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)})}\n//# sourceMappingURL=unfetch.module.js.map\n","module.exports = self.fetch || (self.fetch = require('unfetch').default || require('unfetch'));\n",null,null,null,"// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\n\nvar ws = null\n\nif (typeof WebSocket !== 'undefined') {\n ws = WebSocket\n} else if (typeof MozWebSocket !== 'undefined') {\n ws = MozWebSocket\n} else if (typeof global !== 'undefined') {\n ws = global.WebSocket || global.MozWebSocket\n} else if (typeof window !== 'undefined') {\n ws = window.WebSocket || window.MozWebSocket\n} else if (typeof self !== 'undefined') {\n ws = self.WebSocket || self.MozWebSocket\n}\n\nmodule.exports = ws\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\n\nmodule.exports = value => {\n\tif (typeof Blob === 'undefined') {\n\t\treturn false;\n\t}\n\n\treturn value instanceof Blob || Object.prototype.toString.call(value) === '[object Blob]';\n};\n",null,null],"names":["DLList","asyncGeneratorStep","_asyncToGenerator","Events","Queues","require$$0","require$$1","BottleneckError","DEFAULT_PRIORITY","Job","NUM_PRIORITIES","parser","LocalDatastore","RedisConnection","Scripts","require$$2","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","IORedisConnection","RedisDatastore","require$$3","States","Sync","require$$4","require$$5","require$$6","require$$7","require$$9","require$$10","require$$11","require$$12","require$$13","hasSymbolSham","toStr","bind","undefined","$TypeError","hasOwn","GetIntrinsic","has","isArray","isRegExp","inspect","defaults","sideChannel","getSideChannel","parse","stringify","isofetch","Bottleneck","qs","global","EventEmitter","WebSocket"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"alpaca.browser.js","sources":["../node_modules/bottleneck/lib/parser.js","../node_modules/bottleneck/lib/DLList.js","../node_modules/bottleneck/lib/Events.js","../node_modules/bottleneck/lib/Queues.js","../node_modules/bottleneck/lib/BottleneckError.js","../node_modules/bottleneck/lib/Job.js","../node_modules/bottleneck/lib/LocalDatastore.js","../node_modules/bottleneck/lib/Scripts.js","../node_modules/bottleneck/lib/RedisConnection.js","../node_modules/bottleneck/lib/IORedisConnection.js","../node_modules/bottleneck/lib/RedisDatastore.js","../node_modules/bottleneck/lib/States.js","../node_modules/bottleneck/lib/Sync.js","../node_modules/bottleneck/lib/Group.js","../node_modules/bottleneck/lib/Batcher.js","../node_modules/bottleneck/lib/Bottleneck.js","../node_modules/bottleneck/lib/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-symbols/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/has/src/index.js","../node_modules/get-intrinsic/index.js","../node_modules/call-bind/index.js","../node_modules/call-bind/callBound.js","../node_modules/object-inspect/util.inspect.js","../node_modules/object-inspect/index.js","../node_modules/side-channel/index.js","../node_modules/qs/lib/formats.js","../node_modules/qs/lib/utils.js","../node_modules/qs/lib/stringify.js","../node_modules/qs/lib/parse.js","../node_modules/qs/lib/index.js","../node_modules/unfetch/dist/unfetch.module.js","../node_modules/isomorphic-unfetch/browser.js","../src/urls.ts","../src/parse.ts","../src/client.ts","../node_modules/isomorphic-ws/browser.js","../node_modules/eventemitter3/index.js","../node_modules/is-blob/index.js","../src/stream.ts","../src/index.ts"],"sourcesContent":["\"use strict\";\n\nexports.load = function (received, defaults, onto = {}) {\n var k, ref, v;\n\n for (k in defaults) {\n v = defaults[k];\n onto[k] = (ref = received[k]) != null ? ref : v;\n }\n\n return onto;\n};\n\nexports.overwrite = function (received, defaults, onto = {}) {\n var k, v;\n\n for (k in received) {\n v = received[k];\n\n if (defaults[k] !== void 0) {\n onto[k] = v;\n }\n }\n\n return onto;\n};","\"use strict\";\n\nvar DLList;\nDLList = class DLList {\n constructor(incr, decr) {\n this.incr = incr;\n this.decr = decr;\n this._first = null;\n this._last = null;\n this.length = 0;\n }\n\n push(value) {\n var node;\n this.length++;\n\n if (typeof this.incr === \"function\") {\n this.incr();\n }\n\n node = {\n value,\n prev: this._last,\n next: null\n };\n\n if (this._last != null) {\n this._last.next = node;\n this._last = node;\n } else {\n this._first = this._last = node;\n }\n\n return void 0;\n }\n\n shift() {\n var value;\n\n if (this._first == null) {\n return;\n } else {\n this.length--;\n\n if (typeof this.decr === \"function\") {\n this.decr();\n }\n }\n\n value = this._first.value;\n\n if ((this._first = this._first.next) != null) {\n this._first.prev = null;\n } else {\n this._last = null;\n }\n\n return value;\n }\n\n first() {\n if (this._first != null) {\n return this._first.value;\n }\n }\n\n getArray() {\n var node, ref, results;\n node = this._first;\n results = [];\n\n while (node != null) {\n results.push((ref = node, node = node.next, ref.value));\n }\n\n return results;\n }\n\n forEachShift(cb) {\n var node;\n node = this.shift();\n\n while (node != null) {\n cb(node), node = this.shift();\n }\n\n return void 0;\n }\n\n debug() {\n var node, ref, ref1, ref2, results;\n node = this._first;\n results = [];\n\n while (node != null) {\n results.push((ref = node, node = node.next, {\n value: ref.value,\n prev: (ref1 = ref.prev) != null ? ref1.value : void 0,\n next: (ref2 = ref.next) != null ? ref2.value : void 0\n }));\n }\n\n return results;\n }\n\n};\nmodule.exports = DLList;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events;\nEvents = class Events {\n constructor(instance) {\n this.instance = instance;\n this._events = {};\n\n if (this.instance.on != null || this.instance.once != null || this.instance.removeAllListeners != null) {\n throw new Error(\"An Emitter already exists for this object\");\n }\n\n this.instance.on = (name, cb) => {\n return this._addListener(name, \"many\", cb);\n };\n\n this.instance.once = (name, cb) => {\n return this._addListener(name, \"once\", cb);\n };\n\n this.instance.removeAllListeners = (name = null) => {\n if (name != null) {\n return delete this._events[name];\n } else {\n return this._events = {};\n }\n };\n }\n\n _addListener(name, status, cb) {\n var base;\n\n if ((base = this._events)[name] == null) {\n base[name] = [];\n }\n\n this._events[name].push({\n cb,\n status\n });\n\n return this.instance;\n }\n\n listenerCount(name) {\n if (this._events[name] != null) {\n return this._events[name].length;\n } else {\n return 0;\n }\n }\n\n trigger(name, ...args) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var e, promises;\n\n try {\n if (name !== \"debug\") {\n _this.trigger(\"debug\", `Event triggered: ${name}`, args);\n }\n\n if (_this._events[name] == null) {\n return;\n }\n\n _this._events[name] = _this._events[name].filter(function (listener) {\n return listener.status !== \"none\";\n });\n promises = _this._events[name].map(\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(function* (listener) {\n var e, returned;\n\n if (listener.status === \"none\") {\n return;\n }\n\n if (listener.status === \"once\") {\n listener.status = \"none\";\n }\n\n try {\n returned = typeof listener.cb === \"function\" ? listener.cb(...args) : void 0;\n\n if (typeof (returned != null ? returned.then : void 0) === \"function\") {\n return yield returned;\n } else {\n return returned;\n }\n } catch (error) {\n e = error;\n\n if (\"name\" !== \"error\") {\n _this.trigger(\"error\", e);\n }\n\n return null;\n }\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n return (yield Promise.all(promises)).find(function (x) {\n return x != null;\n });\n } catch (error) {\n e = error;\n\n if (\"name\" !== \"error\") {\n _this.trigger(\"error\", e);\n }\n\n return null;\n }\n })();\n }\n\n};\nmodule.exports = Events;","\"use strict\";\n\nvar DLList, Events, Queues;\nDLList = require(\"./DLList\");\nEvents = require(\"./Events\");\nQueues = class Queues {\n constructor(num_priorities) {\n var i;\n this.Events = new Events(this);\n this._length = 0;\n\n this._lists = function () {\n var j, ref, results;\n results = [];\n\n for (i = j = 1, ref = num_priorities; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\n results.push(new DLList(() => {\n return this.incr();\n }, () => {\n return this.decr();\n }));\n }\n\n return results;\n }.call(this);\n }\n\n incr() {\n if (this._length++ === 0) {\n return this.Events.trigger(\"leftzero\");\n }\n }\n\n decr() {\n if (--this._length === 0) {\n return this.Events.trigger(\"zero\");\n }\n }\n\n push(job) {\n return this._lists[job.options.priority].push(job);\n }\n\n queued(priority) {\n if (priority != null) {\n return this._lists[priority].length;\n } else {\n return this._length;\n }\n }\n\n shiftAll(fn) {\n return this._lists.forEach(function (list) {\n return list.forEachShift(fn);\n });\n }\n\n getFirst(arr = this._lists) {\n var j, len, list;\n\n for (j = 0, len = arr.length; j < len; j++) {\n list = arr[j];\n\n if (list.length > 0) {\n return list;\n }\n }\n\n return [];\n }\n\n shiftLastFrom(priority) {\n return this.getFirst(this._lists.slice(priority).reverse()).shift();\n }\n\n};\nmodule.exports = Queues;","\"use strict\";\n\nvar BottleneckError;\nBottleneckError = class BottleneckError extends Error {};\nmodule.exports = BottleneckError;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, DEFAULT_PRIORITY, Job, NUM_PRIORITIES, parser;\nNUM_PRIORITIES = 10;\nDEFAULT_PRIORITY = 5;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nJob = class Job {\n constructor(task, args, options, jobDefaults, rejectOnDrop, Events, _states, Promise) {\n this.task = task;\n this.args = args;\n this.rejectOnDrop = rejectOnDrop;\n this.Events = Events;\n this._states = _states;\n this.Promise = Promise;\n this.options = parser.load(options, jobDefaults);\n this.options.priority = this._sanitizePriority(this.options.priority);\n\n if (this.options.id === jobDefaults.id) {\n this.options.id = `${this.options.id}-${this._randomIndex()}`;\n }\n\n this.promise = new this.Promise((_resolve, _reject) => {\n this._resolve = _resolve;\n this._reject = _reject;\n });\n this.retryCount = 0;\n }\n\n _sanitizePriority(priority) {\n var sProperty;\n sProperty = ~~priority !== priority ? DEFAULT_PRIORITY : priority;\n\n if (sProperty < 0) {\n return 0;\n } else if (sProperty > NUM_PRIORITIES - 1) {\n return NUM_PRIORITIES - 1;\n } else {\n return sProperty;\n }\n }\n\n _randomIndex() {\n return Math.random().toString(36).slice(2);\n }\n\n doDrop({\n error,\n message = \"This job has been dropped by Bottleneck\"\n } = {}) {\n if (this._states.remove(this.options.id)) {\n if (this.rejectOnDrop) {\n this._reject(error != null ? error : new BottleneckError(message));\n }\n\n this.Events.trigger(\"dropped\", {\n args: this.args,\n options: this.options,\n task: this.task,\n promise: this.promise\n });\n return true;\n } else {\n return false;\n }\n }\n\n _assertStatus(expected) {\n var status;\n status = this._states.jobStatus(this.options.id);\n\n if (!(status === expected || expected === \"DONE\" && status === null)) {\n throw new BottleneckError(`Invalid job status ${status}, expected ${expected}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`);\n }\n }\n\n doReceive() {\n this._states.start(this.options.id);\n\n return this.Events.trigger(\"received\", {\n args: this.args,\n options: this.options\n });\n }\n\n doQueue(reachedHWM, blocked) {\n this._assertStatus(\"RECEIVED\");\n\n this._states.next(this.options.id);\n\n return this.Events.trigger(\"queued\", {\n args: this.args,\n options: this.options,\n reachedHWM,\n blocked\n });\n }\n\n doRun() {\n if (this.retryCount === 0) {\n this._assertStatus(\"QUEUED\");\n\n this._states.next(this.options.id);\n } else {\n this._assertStatus(\"EXECUTING\");\n }\n\n return this.Events.trigger(\"scheduled\", {\n args: this.args,\n options: this.options\n });\n }\n\n doExecute(chained, clearGlobalState, run, free) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var error, eventInfo, passed;\n\n if (_this.retryCount === 0) {\n _this._assertStatus(\"RUNNING\");\n\n _this._states.next(_this.options.id);\n } else {\n _this._assertStatus(\"EXECUTING\");\n }\n\n eventInfo = {\n args: _this.args,\n options: _this.options,\n retryCount: _this.retryCount\n };\n\n _this.Events.trigger(\"executing\", eventInfo);\n\n try {\n passed = yield chained != null ? chained.schedule(_this.options, _this.task, ..._this.args) : _this.task(..._this.args);\n\n if (clearGlobalState()) {\n _this.doDone(eventInfo);\n\n yield free(_this.options, eventInfo);\n\n _this._assertStatus(\"DONE\");\n\n return _this._resolve(passed);\n }\n } catch (error1) {\n error = error1;\n return _this._onFailure(error, eventInfo, clearGlobalState, run, free);\n }\n })();\n }\n\n doExpire(clearGlobalState, run, free) {\n var error, eventInfo;\n\n if (this._states.jobStatus(this.options.id === \"RUNNING\")) {\n this._states.next(this.options.id);\n }\n\n this._assertStatus(\"EXECUTING\");\n\n eventInfo = {\n args: this.args,\n options: this.options,\n retryCount: this.retryCount\n };\n error = new BottleneckError(`This job timed out after ${this.options.expiration} ms.`);\n return this._onFailure(error, eventInfo, clearGlobalState, run, free);\n }\n\n _onFailure(error, eventInfo, clearGlobalState, run, free) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var retry, retryAfter;\n\n if (clearGlobalState()) {\n retry = yield _this2.Events.trigger(\"failed\", error, eventInfo);\n\n if (retry != null) {\n retryAfter = ~~retry;\n\n _this2.Events.trigger(\"retry\", `Retrying ${_this2.options.id} after ${retryAfter} ms`, eventInfo);\n\n _this2.retryCount++;\n return run(retryAfter);\n } else {\n _this2.doDone(eventInfo);\n\n yield free(_this2.options, eventInfo);\n\n _this2._assertStatus(\"DONE\");\n\n return _this2._reject(error);\n }\n }\n })();\n }\n\n doDone(eventInfo) {\n this._assertStatus(\"EXECUTING\");\n\n this._states.next(this.options.id);\n\n return this.Events.trigger(\"done\", eventInfo);\n }\n\n};\nmodule.exports = Job;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, LocalDatastore, parser;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nLocalDatastore = class LocalDatastore {\n constructor(instance, storeOptions, storeInstanceOptions) {\n this.instance = instance;\n this.storeOptions = storeOptions;\n this.clientId = this.instance._randomIndex();\n parser.load(storeInstanceOptions, storeInstanceOptions, this);\n this._nextRequest = this._lastReservoirRefresh = this._lastReservoirIncrease = Date.now();\n this._running = 0;\n this._done = 0;\n this._unblockTime = 0;\n this.ready = this.Promise.resolve();\n this.clients = {};\n\n this._startHeartbeat();\n }\n\n _startHeartbeat() {\n var base;\n\n if (this.heartbeat == null && (this.storeOptions.reservoirRefreshInterval != null && this.storeOptions.reservoirRefreshAmount != null || this.storeOptions.reservoirIncreaseInterval != null && this.storeOptions.reservoirIncreaseAmount != null)) {\n return typeof (base = this.heartbeat = setInterval(() => {\n var amount, incr, maximum, now, reservoir;\n now = Date.now();\n\n if (this.storeOptions.reservoirRefreshInterval != null && now >= this._lastReservoirRefresh + this.storeOptions.reservoirRefreshInterval) {\n this._lastReservoirRefresh = now;\n this.storeOptions.reservoir = this.storeOptions.reservoirRefreshAmount;\n\n this.instance._drainAll(this.computeCapacity());\n }\n\n if (this.storeOptions.reservoirIncreaseInterval != null && now >= this._lastReservoirIncrease + this.storeOptions.reservoirIncreaseInterval) {\n var _this$storeOptions = this.storeOptions;\n amount = _this$storeOptions.reservoirIncreaseAmount;\n maximum = _this$storeOptions.reservoirIncreaseMaximum;\n reservoir = _this$storeOptions.reservoir;\n this._lastReservoirIncrease = now;\n incr = maximum != null ? Math.min(amount, maximum - reservoir) : amount;\n\n if (incr > 0) {\n this.storeOptions.reservoir += incr;\n return this.instance._drainAll(this.computeCapacity());\n }\n }\n }, this.heartbeatInterval)).unref === \"function\" ? base.unref() : void 0;\n } else {\n return clearInterval(this.heartbeat);\n }\n }\n\n __publish__(message) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n yield _this.yieldLoop();\n return _this.instance.Events.trigger(\"message\", message.toString());\n })();\n }\n\n __disconnect__(flush) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n yield _this2.yieldLoop();\n clearInterval(_this2.heartbeat);\n return _this2.Promise.resolve();\n })();\n }\n\n yieldLoop(t = 0) {\n return new this.Promise(function (resolve, reject) {\n return setTimeout(resolve, t);\n });\n }\n\n computePenalty() {\n var ref;\n return (ref = this.storeOptions.penalty) != null ? ref : 15 * this.storeOptions.minTime || 5000;\n }\n\n __updateSettings__(options) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n yield _this3.yieldLoop();\n parser.overwrite(options, options, _this3.storeOptions);\n\n _this3._startHeartbeat();\n\n _this3.instance._drainAll(_this3.computeCapacity());\n\n return true;\n })();\n }\n\n __running__() {\n var _this4 = this;\n\n return _asyncToGenerator(function* () {\n yield _this4.yieldLoop();\n return _this4._running;\n })();\n }\n\n __queued__() {\n var _this5 = this;\n\n return _asyncToGenerator(function* () {\n yield _this5.yieldLoop();\n return _this5.instance.queued();\n })();\n }\n\n __done__() {\n var _this6 = this;\n\n return _asyncToGenerator(function* () {\n yield _this6.yieldLoop();\n return _this6._done;\n })();\n }\n\n __groupCheck__(time) {\n var _this7 = this;\n\n return _asyncToGenerator(function* () {\n yield _this7.yieldLoop();\n return _this7._nextRequest + _this7.timeout < time;\n })();\n }\n\n computeCapacity() {\n var maxConcurrent, reservoir;\n var _this$storeOptions2 = this.storeOptions;\n maxConcurrent = _this$storeOptions2.maxConcurrent;\n reservoir = _this$storeOptions2.reservoir;\n\n if (maxConcurrent != null && reservoir != null) {\n return Math.min(maxConcurrent - this._running, reservoir);\n } else if (maxConcurrent != null) {\n return maxConcurrent - this._running;\n } else if (reservoir != null) {\n return reservoir;\n } else {\n return null;\n }\n }\n\n conditionsCheck(weight) {\n var capacity;\n capacity = this.computeCapacity();\n return capacity == null || weight <= capacity;\n }\n\n __incrementReservoir__(incr) {\n var _this8 = this;\n\n return _asyncToGenerator(function* () {\n var reservoir;\n yield _this8.yieldLoop();\n reservoir = _this8.storeOptions.reservoir += incr;\n\n _this8.instance._drainAll(_this8.computeCapacity());\n\n return reservoir;\n })();\n }\n\n __currentReservoir__() {\n var _this9 = this;\n\n return _asyncToGenerator(function* () {\n yield _this9.yieldLoop();\n return _this9.storeOptions.reservoir;\n })();\n }\n\n isBlocked(now) {\n return this._unblockTime >= now;\n }\n\n check(weight, now) {\n return this.conditionsCheck(weight) && this._nextRequest - now <= 0;\n }\n\n __check__(weight) {\n var _this10 = this;\n\n return _asyncToGenerator(function* () {\n var now;\n yield _this10.yieldLoop();\n now = Date.now();\n return _this10.check(weight, now);\n })();\n }\n\n __register__(index, weight, expiration) {\n var _this11 = this;\n\n return _asyncToGenerator(function* () {\n var now, wait;\n yield _this11.yieldLoop();\n now = Date.now();\n\n if (_this11.conditionsCheck(weight)) {\n _this11._running += weight;\n\n if (_this11.storeOptions.reservoir != null) {\n _this11.storeOptions.reservoir -= weight;\n }\n\n wait = Math.max(_this11._nextRequest - now, 0);\n _this11._nextRequest = now + wait + _this11.storeOptions.minTime;\n return {\n success: true,\n wait,\n reservoir: _this11.storeOptions.reservoir\n };\n } else {\n return {\n success: false\n };\n }\n })();\n }\n\n strategyIsBlock() {\n return this.storeOptions.strategy === 3;\n }\n\n __submit__(queueLength, weight) {\n var _this12 = this;\n\n return _asyncToGenerator(function* () {\n var blocked, now, reachedHWM;\n yield _this12.yieldLoop();\n\n if (_this12.storeOptions.maxConcurrent != null && weight > _this12.storeOptions.maxConcurrent) {\n throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${_this12.storeOptions.maxConcurrent}`);\n }\n\n now = Date.now();\n reachedHWM = _this12.storeOptions.highWater != null && queueLength === _this12.storeOptions.highWater && !_this12.check(weight, now);\n blocked = _this12.strategyIsBlock() && (reachedHWM || _this12.isBlocked(now));\n\n if (blocked) {\n _this12._unblockTime = now + _this12.computePenalty();\n _this12._nextRequest = _this12._unblockTime + _this12.storeOptions.minTime;\n\n _this12.instance._dropAllQueued();\n }\n\n return {\n reachedHWM,\n blocked,\n strategy: _this12.storeOptions.strategy\n };\n })();\n }\n\n __free__(index, weight) {\n var _this13 = this;\n\n return _asyncToGenerator(function* () {\n yield _this13.yieldLoop();\n _this13._running -= weight;\n _this13._done += weight;\n\n _this13.instance._drainAll(_this13.computeCapacity());\n\n return {\n running: _this13._running\n };\n })();\n }\n\n};\nmodule.exports = LocalDatastore;","\"use strict\";\n\nvar headers, lua, templates;\nlua = require(\"./lua.json\");\nheaders = {\n refs: lua[\"refs.lua\"],\n validate_keys: lua[\"validate_keys.lua\"],\n validate_client: lua[\"validate_client.lua\"],\n refresh_expiration: lua[\"refresh_expiration.lua\"],\n process_tick: lua[\"process_tick.lua\"],\n conditions_check: lua[\"conditions_check.lua\"],\n get_time: lua[\"get_time.lua\"]\n};\n\nexports.allKeys = function (id) {\n return [\n /*\n HASH\n */\n `b_${id}_settings`,\n /*\n HASH\n job index -> weight\n */\n `b_${id}_job_weights`,\n /*\n ZSET\n job index -> expiration\n */\n `b_${id}_job_expirations`,\n /*\n HASH\n job index -> client\n */\n `b_${id}_job_clients`,\n /*\n ZSET\n client -> sum running\n */\n `b_${id}_client_running`,\n /*\n HASH\n client -> num queued\n */\n `b_${id}_client_num_queued`,\n /*\n ZSET\n client -> last job registered\n */\n `b_${id}_client_last_registered`,\n /*\n ZSET\n client -> last seen\n */\n `b_${id}_client_last_seen`];\n};\n\ntemplates = {\n init: {\n keys: exports.allKeys,\n headers: [\"process_tick\"],\n refresh_expiration: true,\n code: lua[\"init.lua\"]\n },\n group_check: {\n keys: exports.allKeys,\n headers: [],\n refresh_expiration: false,\n code: lua[\"group_check.lua\"]\n },\n register_client: {\n keys: exports.allKeys,\n headers: [\"validate_keys\"],\n refresh_expiration: false,\n code: lua[\"register_client.lua\"]\n },\n blacklist_client: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\"],\n refresh_expiration: false,\n code: lua[\"blacklist_client.lua\"]\n },\n heartbeat: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"heartbeat.lua\"]\n },\n update_settings: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"update_settings.lua\"]\n },\n running: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"running.lua\"]\n },\n queued: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\"],\n refresh_expiration: false,\n code: lua[\"queued.lua\"]\n },\n done: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"done.lua\"]\n },\n check: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: false,\n code: lua[\"check.lua\"]\n },\n submit: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: true,\n code: lua[\"submit.lua\"]\n },\n register: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: true,\n code: lua[\"register.lua\"]\n },\n free: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"free.lua\"]\n },\n current_reservoir: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"current_reservoir.lua\"]\n },\n increment_reservoir: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"increment_reservoir.lua\"]\n }\n};\nexports.names = Object.keys(templates);\n\nexports.keys = function (name, id) {\n return templates[name].keys(id);\n};\n\nexports.payload = function (name) {\n var template;\n template = templates[name];\n return Array.prototype.concat(headers.refs, template.headers.map(function (h) {\n return headers[h];\n }), template.refresh_expiration ? headers.refresh_expiration : \"\", template.code).join(\"\\n\");\n};","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, RedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nScripts = require(\"./Scripts\");\n\nRedisConnection = function () {\n class RedisConnection {\n constructor(options = {}) {\n parser.load(options, this.defaults, this);\n\n if (this.Redis == null) {\n this.Redis = eval(\"require\")(\"redis\"); // Obfuscated or else Webpack/Angular will try to inline the optional redis module. To override this behavior: pass the redis module to Bottleneck as the 'Redis' option.\n }\n\n if (this.Events == null) {\n this.Events = new Events(this);\n }\n\n this.terminated = false;\n\n if (this.client == null) {\n this.client = this.Redis.createClient(this.clientOptions);\n }\n\n this.subscriber = this.client.duplicate();\n this.limiters = {};\n this.shas = {};\n this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => {\n return this._loadScripts();\n }).then(() => {\n return {\n client: this.client,\n subscriber: this.subscriber\n };\n });\n }\n\n _setup(client, sub) {\n client.setMaxListeners(0);\n return new this.Promise((resolve, reject) => {\n client.on(\"error\", e => {\n return this.Events.trigger(\"error\", e);\n });\n\n if (sub) {\n client.on(\"message\", (channel, message) => {\n var ref;\n return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0;\n });\n }\n\n if (client.ready) {\n return resolve();\n } else {\n return client.once(\"ready\", resolve);\n }\n });\n }\n\n _loadScript(name) {\n return new this.Promise((resolve, reject) => {\n var payload;\n payload = Scripts.payload(name);\n return this.client.multi([[\"script\", \"load\", payload]]).exec((err, replies) => {\n if (err != null) {\n return reject(err);\n }\n\n this.shas[name] = replies[0];\n return resolve(replies[0]);\n });\n });\n }\n\n _loadScripts() {\n return this.Promise.all(Scripts.names.map(k => {\n return this._loadScript(k);\n }));\n }\n\n __runCommand__(cmd) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n yield _this.ready;\n return new _this.Promise((resolve, reject) => {\n return _this.client.multi([cmd]).exec_atomic(function (err, replies) {\n if (err != null) {\n return reject(err);\n } else {\n return resolve(replies[0]);\n }\n });\n });\n })();\n }\n\n __addLimiter__(instance) {\n return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => {\n return new this.Promise((resolve, reject) => {\n var handler;\n\n handler = chan => {\n if (chan === channel) {\n this.subscriber.removeListener(\"subscribe\", handler);\n this.limiters[channel] = instance;\n return resolve();\n }\n };\n\n this.subscriber.on(\"subscribe\", handler);\n return this.subscriber.subscribe(channel);\n });\n }));\n }\n\n __removeLimiter__(instance) {\n var _this2 = this;\n\n return this.Promise.all([instance.channel(), instance.channel_client()].map(\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(function* (channel) {\n if (!_this2.terminated) {\n yield new _this2.Promise((resolve, reject) => {\n return _this2.subscriber.unsubscribe(channel, function (err, chan) {\n if (err != null) {\n return reject(err);\n }\n\n if (chan === channel) {\n return resolve();\n }\n });\n });\n }\n\n return delete _this2.limiters[channel];\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()));\n }\n\n __scriptArgs__(name, id, args, cb) {\n var keys;\n keys = Scripts.keys(name, id);\n return [this.shas[name], keys.length].concat(keys, args, cb);\n }\n\n __scriptFn__(name) {\n return this.client.evalsha.bind(this.client);\n }\n\n disconnect(flush = true) {\n var i, k, len, ref;\n ref = Object.keys(this.limiters);\n\n for (i = 0, len = ref.length; i < len; i++) {\n k = ref[i];\n clearInterval(this.limiters[k]._store.heartbeat);\n }\n\n this.limiters = {};\n this.terminated = true;\n this.client.end(flush);\n this.subscriber.end(flush);\n return this.Promise.resolve();\n }\n\n }\n\n ;\n RedisConnection.prototype.datastore = \"redis\";\n RedisConnection.prototype.defaults = {\n Redis: null,\n clientOptions: {},\n client: null,\n Promise: Promise,\n Events: null\n };\n return RedisConnection;\n}.call(void 0);\n\nmodule.exports = RedisConnection;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, IORedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nScripts = require(\"./Scripts\");\n\nIORedisConnection = function () {\n class IORedisConnection {\n constructor(options = {}) {\n parser.load(options, this.defaults, this);\n\n if (this.Redis == null) {\n this.Redis = eval(\"require\")(\"ioredis\"); // Obfuscated or else Webpack/Angular will try to inline the optional ioredis module. To override this behavior: pass the ioredis module to Bottleneck as the 'Redis' option.\n }\n\n if (this.Events == null) {\n this.Events = new Events(this);\n }\n\n this.terminated = false;\n\n if (this.clusterNodes != null) {\n this.client = new this.Redis.Cluster(this.clusterNodes, this.clientOptions);\n this.subscriber = new this.Redis.Cluster(this.clusterNodes, this.clientOptions);\n } else if (this.client != null && this.client.duplicate == null) {\n this.subscriber = new this.Redis.Cluster(this.client.startupNodes, this.client.options);\n } else {\n if (this.client == null) {\n this.client = new this.Redis(this.clientOptions);\n }\n\n this.subscriber = this.client.duplicate();\n }\n\n this.limiters = {};\n this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => {\n this._loadScripts();\n\n return {\n client: this.client,\n subscriber: this.subscriber\n };\n });\n }\n\n _setup(client, sub) {\n client.setMaxListeners(0);\n return new this.Promise((resolve, reject) => {\n client.on(\"error\", e => {\n return this.Events.trigger(\"error\", e);\n });\n\n if (sub) {\n client.on(\"message\", (channel, message) => {\n var ref;\n return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0;\n });\n }\n\n if (client.status === \"ready\") {\n return resolve();\n } else {\n return client.once(\"ready\", resolve);\n }\n });\n }\n\n _loadScripts() {\n return Scripts.names.forEach(name => {\n return this.client.defineCommand(name, {\n lua: Scripts.payload(name)\n });\n });\n }\n\n __runCommand__(cmd) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var _, deleted;\n\n yield _this.ready;\n\n var _ref = yield _this.client.pipeline([cmd]).exec();\n\n var _ref2 = _slicedToArray(_ref, 1);\n\n var _ref2$ = _slicedToArray(_ref2[0], 2);\n\n _ = _ref2$[0];\n deleted = _ref2$[1];\n return deleted;\n })();\n }\n\n __addLimiter__(instance) {\n return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => {\n return new this.Promise((resolve, reject) => {\n return this.subscriber.subscribe(channel, () => {\n this.limiters[channel] = instance;\n return resolve();\n });\n });\n }));\n }\n\n __removeLimiter__(instance) {\n var _this2 = this;\n\n return [instance.channel(), instance.channel_client()].forEach(\n /*#__PURE__*/\n function () {\n var _ref3 = _asyncToGenerator(function* (channel) {\n if (!_this2.terminated) {\n yield _this2.subscriber.unsubscribe(channel);\n }\n\n return delete _this2.limiters[channel];\n });\n\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }());\n }\n\n __scriptArgs__(name, id, args, cb) {\n var keys;\n keys = Scripts.keys(name, id);\n return [keys.length].concat(keys, args, cb);\n }\n\n __scriptFn__(name) {\n return this.client[name].bind(this.client);\n }\n\n disconnect(flush = true) {\n var i, k, len, ref;\n ref = Object.keys(this.limiters);\n\n for (i = 0, len = ref.length; i < len; i++) {\n k = ref[i];\n clearInterval(this.limiters[k]._store.heartbeat);\n }\n\n this.limiters = {};\n this.terminated = true;\n\n if (flush) {\n return this.Promise.all([this.client.quit(), this.subscriber.quit()]);\n } else {\n this.client.disconnect();\n this.subscriber.disconnect();\n return this.Promise.resolve();\n }\n }\n\n }\n\n ;\n IORedisConnection.prototype.datastore = \"ioredis\";\n IORedisConnection.prototype.defaults = {\n Redis: null,\n clientOptions: {},\n clusterNodes: null,\n client: null,\n Promise: Promise,\n Events: null\n };\n return IORedisConnection;\n}.call(void 0);\n\nmodule.exports = IORedisConnection;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, IORedisConnection, RedisConnection, RedisDatastore, parser;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nRedisConnection = require(\"./RedisConnection\");\nIORedisConnection = require(\"./IORedisConnection\");\nRedisDatastore = class RedisDatastore {\n constructor(instance, storeOptions, storeInstanceOptions) {\n this.instance = instance;\n this.storeOptions = storeOptions;\n this.originalId = this.instance.id;\n this.clientId = this.instance._randomIndex();\n parser.load(storeInstanceOptions, storeInstanceOptions, this);\n this.clients = {};\n this.capacityPriorityCounters = {};\n this.sharedConnection = this.connection != null;\n\n if (this.connection == null) {\n this.connection = this.instance.datastore === \"redis\" ? new RedisConnection({\n Redis: this.Redis,\n clientOptions: this.clientOptions,\n Promise: this.Promise,\n Events: this.instance.Events\n }) : this.instance.datastore === \"ioredis\" ? new IORedisConnection({\n Redis: this.Redis,\n clientOptions: this.clientOptions,\n clusterNodes: this.clusterNodes,\n Promise: this.Promise,\n Events: this.instance.Events\n }) : void 0;\n }\n\n this.instance.connection = this.connection;\n this.instance.datastore = this.connection.datastore;\n this.ready = this.connection.ready.then(clients => {\n this.clients = clients;\n return this.runScript(\"init\", this.prepareInitSettings(this.clearDatastore));\n }).then(() => {\n return this.connection.__addLimiter__(this.instance);\n }).then(() => {\n return this.runScript(\"register_client\", [this.instance.queued()]);\n }).then(() => {\n var base;\n\n if (typeof (base = this.heartbeat = setInterval(() => {\n return this.runScript(\"heartbeat\", []).catch(e => {\n return this.instance.Events.trigger(\"error\", e);\n });\n }, this.heartbeatInterval)).unref === \"function\") {\n base.unref();\n }\n\n return this.clients;\n });\n }\n\n __publish__(message) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var client;\n\n var _ref = yield _this.ready;\n\n client = _ref.client;\n return client.publish(_this.instance.channel(), `message:${message.toString()}`);\n })();\n }\n\n onMessage(channel, message) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var capacity, counter, data, drained, e, newCapacity, pos, priorityClient, rawCapacity, type;\n\n try {\n pos = message.indexOf(\":\");\n var _ref2 = [message.slice(0, pos), message.slice(pos + 1)];\n type = _ref2[0];\n data = _ref2[1];\n\n if (type === \"capacity\") {\n return yield _this2.instance._drainAll(data.length > 0 ? ~~data : void 0);\n } else if (type === \"capacity-priority\") {\n var _data$split = data.split(\":\");\n\n var _data$split2 = _slicedToArray(_data$split, 3);\n\n rawCapacity = _data$split2[0];\n priorityClient = _data$split2[1];\n counter = _data$split2[2];\n capacity = rawCapacity.length > 0 ? ~~rawCapacity : void 0;\n\n if (priorityClient === _this2.clientId) {\n drained = yield _this2.instance._drainAll(capacity);\n newCapacity = capacity != null ? capacity - (drained || 0) : \"\";\n return yield _this2.clients.client.publish(_this2.instance.channel(), `capacity-priority:${newCapacity}::${counter}`);\n } else if (priorityClient === \"\") {\n clearTimeout(_this2.capacityPriorityCounters[counter]);\n delete _this2.capacityPriorityCounters[counter];\n return _this2.instance._drainAll(capacity);\n } else {\n return _this2.capacityPriorityCounters[counter] = setTimeout(\n /*#__PURE__*/\n _asyncToGenerator(function* () {\n var e;\n\n try {\n delete _this2.capacityPriorityCounters[counter];\n yield _this2.runScript(\"blacklist_client\", [priorityClient]);\n return yield _this2.instance._drainAll(capacity);\n } catch (error) {\n e = error;\n return _this2.instance.Events.trigger(\"error\", e);\n }\n }), 1000);\n }\n } else if (type === \"message\") {\n return _this2.instance.Events.trigger(\"message\", data);\n } else if (type === \"blocked\") {\n return yield _this2.instance._dropAllQueued();\n }\n } catch (error) {\n e = error;\n return _this2.instance.Events.trigger(\"error\", e);\n }\n })();\n }\n\n __disconnect__(flush) {\n clearInterval(this.heartbeat);\n\n if (this.sharedConnection) {\n return this.connection.__removeLimiter__(this.instance);\n } else {\n return this.connection.disconnect(flush);\n }\n }\n\n runScript(name, args) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n if (!(name === \"init\" || name === \"register_client\")) {\n yield _this3.ready;\n }\n\n return new _this3.Promise((resolve, reject) => {\n var all_args, arr;\n all_args = [Date.now(), _this3.clientId].concat(args);\n\n _this3.instance.Events.trigger(\"debug\", `Calling Redis script: ${name}.lua`, all_args);\n\n arr = _this3.connection.__scriptArgs__(name, _this3.originalId, all_args, function (err, replies) {\n if (err != null) {\n return reject(err);\n }\n\n return resolve(replies);\n });\n return _this3.connection.__scriptFn__(name)(...arr);\n }).catch(e => {\n if (e.message === \"SETTINGS_KEY_NOT_FOUND\") {\n if (name === \"heartbeat\") {\n return _this3.Promise.resolve();\n } else {\n return _this3.runScript(\"init\", _this3.prepareInitSettings(false)).then(() => {\n return _this3.runScript(name, args);\n });\n }\n } else if (e.message === \"UNKNOWN_CLIENT\") {\n return _this3.runScript(\"register_client\", [_this3.instance.queued()]).then(() => {\n return _this3.runScript(name, args);\n });\n } else {\n return _this3.Promise.reject(e);\n }\n });\n })();\n }\n\n prepareArray(arr) {\n var i, len, results, x;\n results = [];\n\n for (i = 0, len = arr.length; i < len; i++) {\n x = arr[i];\n results.push(x != null ? x.toString() : \"\");\n }\n\n return results;\n }\n\n prepareObject(obj) {\n var arr, k, v;\n arr = [];\n\n for (k in obj) {\n v = obj[k];\n arr.push(k, v != null ? v.toString() : \"\");\n }\n\n return arr;\n }\n\n prepareInitSettings(clear) {\n var args;\n args = this.prepareObject(Object.assign({}, this.storeOptions, {\n id: this.originalId,\n version: this.instance.version,\n groupTimeout: this.timeout,\n clientTimeout: this.clientTimeout\n }));\n args.unshift(clear ? 1 : 0, this.instance.version);\n return args;\n }\n\n convertBool(b) {\n return !!b;\n }\n\n __updateSettings__(options) {\n var _this4 = this;\n\n return _asyncToGenerator(function* () {\n yield _this4.runScript(\"update_settings\", _this4.prepareObject(options));\n return parser.overwrite(options, options, _this4.storeOptions);\n })();\n }\n\n __running__() {\n return this.runScript(\"running\", []);\n }\n\n __queued__() {\n return this.runScript(\"queued\", []);\n }\n\n __done__() {\n return this.runScript(\"done\", []);\n }\n\n __groupCheck__() {\n var _this5 = this;\n\n return _asyncToGenerator(function* () {\n return _this5.convertBool((yield _this5.runScript(\"group_check\", [])));\n })();\n }\n\n __incrementReservoir__(incr) {\n return this.runScript(\"increment_reservoir\", [incr]);\n }\n\n __currentReservoir__() {\n return this.runScript(\"current_reservoir\", []);\n }\n\n __check__(weight) {\n var _this6 = this;\n\n return _asyncToGenerator(function* () {\n return _this6.convertBool((yield _this6.runScript(\"check\", _this6.prepareArray([weight]))));\n })();\n }\n\n __register__(index, weight, expiration) {\n var _this7 = this;\n\n return _asyncToGenerator(function* () {\n var reservoir, success, wait;\n\n var _ref4 = yield _this7.runScript(\"register\", _this7.prepareArray([index, weight, expiration]));\n\n var _ref5 = _slicedToArray(_ref4, 3);\n\n success = _ref5[0];\n wait = _ref5[1];\n reservoir = _ref5[2];\n return {\n success: _this7.convertBool(success),\n wait,\n reservoir\n };\n })();\n }\n\n __submit__(queueLength, weight) {\n var _this8 = this;\n\n return _asyncToGenerator(function* () {\n var blocked, e, maxConcurrent, overweight, reachedHWM, strategy;\n\n try {\n var _ref6 = yield _this8.runScript(\"submit\", _this8.prepareArray([queueLength, weight]));\n\n var _ref7 = _slicedToArray(_ref6, 3);\n\n reachedHWM = _ref7[0];\n blocked = _ref7[1];\n strategy = _ref7[2];\n return {\n reachedHWM: _this8.convertBool(reachedHWM),\n blocked: _this8.convertBool(blocked),\n strategy\n };\n } catch (error) {\n e = error;\n\n if (e.message.indexOf(\"OVERWEIGHT\") === 0) {\n var _e$message$split = e.message.split(\":\");\n\n var _e$message$split2 = _slicedToArray(_e$message$split, 3);\n\n overweight = _e$message$split2[0];\n weight = _e$message$split2[1];\n maxConcurrent = _e$message$split2[2];\n throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${maxConcurrent}`);\n } else {\n throw e;\n }\n }\n })();\n }\n\n __free__(index, weight) {\n var _this9 = this;\n\n return _asyncToGenerator(function* () {\n var running;\n running = yield _this9.runScript(\"free\", _this9.prepareArray([index]));\n return {\n running\n };\n })();\n }\n\n};\nmodule.exports = RedisDatastore;","\"use strict\";\n\nvar BottleneckError, States;\nBottleneckError = require(\"./BottleneckError\");\nStates = class States {\n constructor(status1) {\n this.status = status1;\n this._jobs = {};\n this.counts = this.status.map(function () {\n return 0;\n });\n }\n\n next(id) {\n var current, next;\n current = this._jobs[id];\n next = current + 1;\n\n if (current != null && next < this.status.length) {\n this.counts[current]--;\n this.counts[next]++;\n return this._jobs[id]++;\n } else if (current != null) {\n this.counts[current]--;\n return delete this._jobs[id];\n }\n }\n\n start(id) {\n var initial;\n initial = 0;\n this._jobs[id] = initial;\n return this.counts[initial]++;\n }\n\n remove(id) {\n var current;\n current = this._jobs[id];\n\n if (current != null) {\n this.counts[current]--;\n delete this._jobs[id];\n }\n\n return current != null;\n }\n\n jobStatus(id) {\n var ref;\n return (ref = this.status[this._jobs[id]]) != null ? ref : null;\n }\n\n statusJobs(status) {\n var k, pos, ref, results, v;\n\n if (status != null) {\n pos = this.status.indexOf(status);\n\n if (pos < 0) {\n throw new BottleneckError(`status must be one of ${this.status.join(', ')}`);\n }\n\n ref = this._jobs;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n\n if (v === pos) {\n results.push(k);\n }\n }\n\n return results;\n } else {\n return Object.keys(this._jobs);\n }\n }\n\n statusCounts() {\n return this.counts.reduce((acc, v, i) => {\n acc[this.status[i]] = v;\n return acc;\n }, {});\n }\n\n};\nmodule.exports = States;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar DLList, Sync;\nDLList = require(\"./DLList\");\nSync = class Sync {\n constructor(name, Promise) {\n this.schedule = this.schedule.bind(this);\n this.name = name;\n this.Promise = Promise;\n this._running = 0;\n this._queue = new DLList();\n }\n\n isEmpty() {\n return this._queue.length === 0;\n }\n\n _tryToRun() {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var args, cb, error, reject, resolve, returned, task;\n\n if (_this._running < 1 && _this._queue.length > 0) {\n _this._running++;\n\n var _this$_queue$shift = _this._queue.shift();\n\n task = _this$_queue$shift.task;\n args = _this$_queue$shift.args;\n resolve = _this$_queue$shift.resolve;\n reject = _this$_queue$shift.reject;\n cb = yield _asyncToGenerator(function* () {\n try {\n returned = yield task(...args);\n return function () {\n return resolve(returned);\n };\n } catch (error1) {\n error = error1;\n return function () {\n return reject(error);\n };\n }\n })();\n _this._running--;\n\n _this._tryToRun();\n\n return cb();\n }\n })();\n }\n\n schedule(task, ...args) {\n var promise, reject, resolve;\n resolve = reject = null;\n promise = new this.Promise(function (_resolve, _reject) {\n resolve = _resolve;\n return reject = _reject;\n });\n\n this._queue.push({\n task,\n args,\n resolve,\n reject\n });\n\n this._tryToRun();\n\n return promise;\n }\n\n};\nmodule.exports = Sync;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, Group, IORedisConnection, RedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nRedisConnection = require(\"./RedisConnection\");\nIORedisConnection = require(\"./IORedisConnection\");\nScripts = require(\"./Scripts\");\n\nGroup = function () {\n class Group {\n constructor(limiterOptions = {}) {\n this.deleteKey = this.deleteKey.bind(this);\n this.limiterOptions = limiterOptions;\n parser.load(this.limiterOptions, this.defaults, this);\n this.Events = new Events(this);\n this.instances = {};\n this.Bottleneck = require(\"./Bottleneck\");\n\n this._startAutoCleanup();\n\n this.sharedConnection = this.connection != null;\n\n if (this.connection == null) {\n if (this.limiterOptions.datastore === \"redis\") {\n this.connection = new RedisConnection(Object.assign({}, this.limiterOptions, {\n Events: this.Events\n }));\n } else if (this.limiterOptions.datastore === \"ioredis\") {\n this.connection = new IORedisConnection(Object.assign({}, this.limiterOptions, {\n Events: this.Events\n }));\n }\n }\n }\n\n key(key = \"\") {\n var ref;\n return (ref = this.instances[key]) != null ? ref : (() => {\n var limiter;\n limiter = this.instances[key] = new this.Bottleneck(Object.assign(this.limiterOptions, {\n id: `${this.id}-${key}`,\n timeout: this.timeout,\n connection: this.connection\n }));\n this.Events.trigger(\"created\", limiter, key);\n return limiter;\n })();\n }\n\n deleteKey(key = \"\") {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var deleted, instance;\n instance = _this.instances[key];\n\n if (_this.connection) {\n deleted = yield _this.connection.__runCommand__(['del', ...Scripts.allKeys(`${_this.id}-${key}`)]);\n }\n\n if (instance != null) {\n delete _this.instances[key];\n yield instance.disconnect();\n }\n\n return instance != null || deleted > 0;\n })();\n }\n\n limiters() {\n var k, ref, results, v;\n ref = this.instances;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n results.push({\n key: k,\n limiter: v\n });\n }\n\n return results;\n }\n\n keys() {\n return Object.keys(this.instances);\n }\n\n clusterKeys() {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var cursor, end, found, i, k, keys, len, next, start;\n\n if (_this2.connection == null) {\n return _this2.Promise.resolve(_this2.keys());\n }\n\n keys = [];\n cursor = null;\n start = `b_${_this2.id}-`.length;\n end = \"_settings\".length;\n\n while (cursor !== 0) {\n var _ref = yield _this2.connection.__runCommand__([\"scan\", cursor != null ? cursor : 0, \"match\", `b_${_this2.id}-*_settings`, \"count\", 10000]);\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n next = _ref2[0];\n found = _ref2[1];\n cursor = ~~next;\n\n for (i = 0, len = found.length; i < len; i++) {\n k = found[i];\n keys.push(k.slice(start, -end));\n }\n }\n\n return keys;\n })();\n }\n\n _startAutoCleanup() {\n var _this3 = this;\n\n var base;\n clearInterval(this.interval);\n return typeof (base = this.interval = setInterval(\n /*#__PURE__*/\n _asyncToGenerator(function* () {\n var e, k, ref, results, time, v;\n time = Date.now();\n ref = _this3.instances;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n\n try {\n if (yield v._store.__groupCheck__(time)) {\n results.push(_this3.deleteKey(k));\n } else {\n results.push(void 0);\n }\n } catch (error) {\n e = error;\n results.push(v.Events.trigger(\"error\", e));\n }\n }\n\n return results;\n }), this.timeout / 2)).unref === \"function\" ? base.unref() : void 0;\n }\n\n updateSettings(options = {}) {\n parser.overwrite(options, this.defaults, this);\n parser.overwrite(options, options, this.limiterOptions);\n\n if (options.timeout != null) {\n return this._startAutoCleanup();\n }\n }\n\n disconnect(flush = true) {\n var ref;\n\n if (!this.sharedConnection) {\n return (ref = this.connection) != null ? ref.disconnect(flush) : void 0;\n }\n }\n\n }\n\n ;\n Group.prototype.defaults = {\n timeout: 1000 * 60 * 5,\n connection: null,\n Promise: Promise,\n id: \"group-key\"\n };\n return Group;\n}.call(void 0);\n\nmodule.exports = Group;","\"use strict\";\n\nvar Batcher, Events, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\n\nBatcher = function () {\n class Batcher {\n constructor(options = {}) {\n this.options = options;\n parser.load(this.options, this.defaults, this);\n this.Events = new Events(this);\n this._arr = [];\n\n this._resetPromise();\n\n this._lastFlush = Date.now();\n }\n\n _resetPromise() {\n return this._promise = new this.Promise((res, rej) => {\n return this._resolve = res;\n });\n }\n\n _flush() {\n clearTimeout(this._timeout);\n this._lastFlush = Date.now();\n\n this._resolve();\n\n this.Events.trigger(\"batch\", this._arr);\n this._arr = [];\n return this._resetPromise();\n }\n\n add(data) {\n var ret;\n\n this._arr.push(data);\n\n ret = this._promise;\n\n if (this._arr.length === this.maxSize) {\n this._flush();\n } else if (this.maxTime != null && this._arr.length === 1) {\n this._timeout = setTimeout(() => {\n return this._flush();\n }, this.maxTime);\n }\n\n return ret;\n }\n\n }\n\n ;\n Batcher.prototype.defaults = {\n maxTime: null,\n maxSize: null,\n Promise: Promise\n };\n return Batcher;\n}.call(void 0);\n\nmodule.exports = Batcher;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Bottleneck,\n DEFAULT_PRIORITY,\n Events,\n Job,\n LocalDatastore,\n NUM_PRIORITIES,\n Queues,\n RedisDatastore,\n States,\n Sync,\n parser,\n splice = [].splice;\nNUM_PRIORITIES = 10;\nDEFAULT_PRIORITY = 5;\nparser = require(\"./parser\");\nQueues = require(\"./Queues\");\nJob = require(\"./Job\");\nLocalDatastore = require(\"./LocalDatastore\");\nRedisDatastore = require(\"./RedisDatastore\");\nEvents = require(\"./Events\");\nStates = require(\"./States\");\nSync = require(\"./Sync\");\n\nBottleneck = function () {\n class Bottleneck {\n constructor(options = {}, ...invalid) {\n var storeInstanceOptions, storeOptions;\n this._addToQueue = this._addToQueue.bind(this);\n\n this._validateOptions(options, invalid);\n\n parser.load(options, this.instanceDefaults, this);\n this._queues = new Queues(NUM_PRIORITIES);\n this._scheduled = {};\n this._states = new States([\"RECEIVED\", \"QUEUED\", \"RUNNING\", \"EXECUTING\"].concat(this.trackDoneStatus ? [\"DONE\"] : []));\n this._limiter = null;\n this.Events = new Events(this);\n this._submitLock = new Sync(\"submit\", this.Promise);\n this._registerLock = new Sync(\"register\", this.Promise);\n storeOptions = parser.load(options, this.storeDefaults, {});\n\n this._store = function () {\n if (this.datastore === \"redis\" || this.datastore === \"ioredis\" || this.connection != null) {\n storeInstanceOptions = parser.load(options, this.redisStoreDefaults, {});\n return new RedisDatastore(this, storeOptions, storeInstanceOptions);\n } else if (this.datastore === \"local\") {\n storeInstanceOptions = parser.load(options, this.localStoreDefaults, {});\n return new LocalDatastore(this, storeOptions, storeInstanceOptions);\n } else {\n throw new Bottleneck.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`);\n }\n }.call(this);\n\n this._queues.on(\"leftzero\", () => {\n var ref;\n return (ref = this._store.heartbeat) != null ? typeof ref.ref === \"function\" ? ref.ref() : void 0 : void 0;\n });\n\n this._queues.on(\"zero\", () => {\n var ref;\n return (ref = this._store.heartbeat) != null ? typeof ref.unref === \"function\" ? ref.unref() : void 0 : void 0;\n });\n }\n\n _validateOptions(options, invalid) {\n if (!(options != null && typeof options === \"object\" && invalid.length === 0)) {\n throw new Bottleneck.prototype.BottleneckError(\"Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.\");\n }\n }\n\n ready() {\n return this._store.ready;\n }\n\n clients() {\n return this._store.clients;\n }\n\n channel() {\n return `b_${this.id}`;\n }\n\n channel_client() {\n return `b_${this.id}_${this._store.clientId}`;\n }\n\n publish(message) {\n return this._store.__publish__(message);\n }\n\n disconnect(flush = true) {\n return this._store.__disconnect__(flush);\n }\n\n chain(_limiter) {\n this._limiter = _limiter;\n return this;\n }\n\n queued(priority) {\n return this._queues.queued(priority);\n }\n\n clusterQueued() {\n return this._store.__queued__();\n }\n\n empty() {\n return this.queued() === 0 && this._submitLock.isEmpty();\n }\n\n running() {\n return this._store.__running__();\n }\n\n done() {\n return this._store.__done__();\n }\n\n jobStatus(id) {\n return this._states.jobStatus(id);\n }\n\n jobs(status) {\n return this._states.statusJobs(status);\n }\n\n counts() {\n return this._states.statusCounts();\n }\n\n _randomIndex() {\n return Math.random().toString(36).slice(2);\n }\n\n check(weight = 1) {\n return this._store.__check__(weight);\n }\n\n _clearGlobalState(index) {\n if (this._scheduled[index] != null) {\n clearTimeout(this._scheduled[index].expiration);\n delete this._scheduled[index];\n return true;\n } else {\n return false;\n }\n }\n\n _free(index, job, options, eventInfo) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var e, running;\n\n try {\n var _ref = yield _this._store.__free__(index, options.weight);\n\n running = _ref.running;\n\n _this.Events.trigger(\"debug\", `Freed ${options.id}`, eventInfo);\n\n if (running === 0 && _this.empty()) {\n return _this.Events.trigger(\"idle\");\n }\n } catch (error1) {\n e = error1;\n return _this.Events.trigger(\"error\", e);\n }\n })();\n }\n\n _run(index, job, wait) {\n var clearGlobalState, free, run;\n job.doRun();\n clearGlobalState = this._clearGlobalState.bind(this, index);\n run = this._run.bind(this, index, job);\n free = this._free.bind(this, index, job);\n return this._scheduled[index] = {\n timeout: setTimeout(() => {\n return job.doExecute(this._limiter, clearGlobalState, run, free);\n }, wait),\n expiration: job.options.expiration != null ? setTimeout(function () {\n return job.doExpire(clearGlobalState, run, free);\n }, wait + job.options.expiration) : void 0,\n job: job\n };\n }\n\n _drainOne(capacity) {\n return this._registerLock.schedule(() => {\n var args, index, next, options, queue;\n\n if (this.queued() === 0) {\n return this.Promise.resolve(null);\n }\n\n queue = this._queues.getFirst();\n\n var _next2 = next = queue.first();\n\n options = _next2.options;\n args = _next2.args;\n\n if (capacity != null && options.weight > capacity) {\n return this.Promise.resolve(null);\n }\n\n this.Events.trigger(\"debug\", `Draining ${options.id}`, {\n args,\n options\n });\n index = this._randomIndex();\n return this._store.__register__(index, options.weight, options.expiration).then(({\n success,\n wait,\n reservoir\n }) => {\n var empty;\n this.Events.trigger(\"debug\", `Drained ${options.id}`, {\n success,\n args,\n options\n });\n\n if (success) {\n queue.shift();\n empty = this.empty();\n\n if (empty) {\n this.Events.trigger(\"empty\");\n }\n\n if (reservoir === 0) {\n this.Events.trigger(\"depleted\", empty);\n }\n\n this._run(index, next, wait);\n\n return this.Promise.resolve(options.weight);\n } else {\n return this.Promise.resolve(null);\n }\n });\n });\n }\n\n _drainAll(capacity, total = 0) {\n return this._drainOne(capacity).then(drained => {\n var newCapacity;\n\n if (drained != null) {\n newCapacity = capacity != null ? capacity - drained : capacity;\n return this._drainAll(newCapacity, total + drained);\n } else {\n return this.Promise.resolve(total);\n }\n }).catch(e => {\n return this.Events.trigger(\"error\", e);\n });\n }\n\n _dropAllQueued(message) {\n return this._queues.shiftAll(function (job) {\n return job.doDrop({\n message\n });\n });\n }\n\n stop(options = {}) {\n var done, waitForExecuting;\n options = parser.load(options, this.stopDefaults);\n\n waitForExecuting = at => {\n var finished;\n\n finished = () => {\n var counts;\n counts = this._states.counts;\n return counts[0] + counts[1] + counts[2] + counts[3] === at;\n };\n\n return new this.Promise((resolve, reject) => {\n if (finished()) {\n return resolve();\n } else {\n return this.on(\"done\", () => {\n if (finished()) {\n this.removeAllListeners(\"done\");\n return resolve();\n }\n });\n }\n });\n };\n\n done = options.dropWaitingJobs ? (this._run = function (index, next) {\n return next.doDrop({\n message: options.dropErrorMessage\n });\n }, this._drainOne = () => {\n return this.Promise.resolve(null);\n }, this._registerLock.schedule(() => {\n return this._submitLock.schedule(() => {\n var k, ref, v;\n ref = this._scheduled;\n\n for (k in ref) {\n v = ref[k];\n\n if (this.jobStatus(v.job.options.id) === \"RUNNING\") {\n clearTimeout(v.timeout);\n clearTimeout(v.expiration);\n v.job.doDrop({\n message: options.dropErrorMessage\n });\n }\n }\n\n this._dropAllQueued(options.dropErrorMessage);\n\n return waitForExecuting(0);\n });\n })) : this.schedule({\n priority: NUM_PRIORITIES - 1,\n weight: 0\n }, () => {\n return waitForExecuting(1);\n });\n\n this._receive = function (job) {\n return job._reject(new Bottleneck.prototype.BottleneckError(options.enqueueErrorMessage));\n };\n\n this.stop = () => {\n return this.Promise.reject(new Bottleneck.prototype.BottleneckError(\"stop() has already been called\"));\n };\n\n return done;\n }\n\n _addToQueue(job) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var args, blocked, error, options, reachedHWM, shifted, strategy;\n args = job.args;\n options = job.options;\n\n try {\n var _ref2 = yield _this2._store.__submit__(_this2.queued(), options.weight);\n\n reachedHWM = _ref2.reachedHWM;\n blocked = _ref2.blocked;\n strategy = _ref2.strategy;\n } catch (error1) {\n error = error1;\n\n _this2.Events.trigger(\"debug\", `Could not queue ${options.id}`, {\n args,\n options,\n error\n });\n\n job.doDrop({\n error\n });\n return false;\n }\n\n if (blocked) {\n job.doDrop();\n return true;\n } else if (reachedHWM) {\n shifted = strategy === Bottleneck.prototype.strategy.LEAK ? _this2._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? _this2._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0;\n\n if (shifted != null) {\n shifted.doDrop();\n }\n\n if (shifted == null || strategy === Bottleneck.prototype.strategy.OVERFLOW) {\n if (shifted == null) {\n job.doDrop();\n }\n\n return reachedHWM;\n }\n }\n\n job.doQueue(reachedHWM, blocked);\n\n _this2._queues.push(job);\n\n yield _this2._drainAll();\n return reachedHWM;\n })();\n }\n\n _receive(job) {\n if (this._states.jobStatus(job.options.id) != null) {\n job._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${job.options.id})`));\n\n return false;\n } else {\n job.doReceive();\n return this._submitLock.schedule(this._addToQueue, job);\n }\n }\n\n submit(...args) {\n var cb, fn, job, options, ref, ref1, task;\n\n if (typeof args[0] === \"function\") {\n var _ref3, _ref4, _splice$call, _splice$call2;\n\n ref = args, (_ref3 = ref, _ref4 = _toArray(_ref3), fn = _ref4[0], args = _ref4.slice(1), _ref3), (_splice$call = splice.call(args, -1), _splice$call2 = _slicedToArray(_splice$call, 1), cb = _splice$call2[0], _splice$call);\n options = parser.load({}, this.jobDefaults);\n } else {\n var _ref5, _ref6, _splice$call3, _splice$call4;\n\n ref1 = args, (_ref5 = ref1, _ref6 = _toArray(_ref5), options = _ref6[0], fn = _ref6[1], args = _ref6.slice(2), _ref5), (_splice$call3 = splice.call(args, -1), _splice$call4 = _slicedToArray(_splice$call3, 1), cb = _splice$call4[0], _splice$call3);\n options = parser.load(options, this.jobDefaults);\n }\n\n task = (...args) => {\n return new this.Promise(function (resolve, reject) {\n return fn(...args, function (...args) {\n return (args[0] != null ? reject : resolve)(args);\n });\n });\n };\n\n job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise);\n job.promise.then(function (args) {\n return typeof cb === \"function\" ? cb(...args) : void 0;\n }).catch(function (args) {\n if (Array.isArray(args)) {\n return typeof cb === \"function\" ? cb(...args) : void 0;\n } else {\n return typeof cb === \"function\" ? cb(args) : void 0;\n }\n });\n return this._receive(job);\n }\n\n schedule(...args) {\n var job, options, task;\n\n if (typeof args[0] === \"function\") {\n var _args = args;\n\n var _args2 = _toArray(_args);\n\n task = _args2[0];\n args = _args2.slice(1);\n options = {};\n } else {\n var _args3 = args;\n\n var _args4 = _toArray(_args3);\n\n options = _args4[0];\n task = _args4[1];\n args = _args4.slice(2);\n }\n\n job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise);\n\n this._receive(job);\n\n return job.promise;\n }\n\n wrap(fn) {\n var schedule, wrapped;\n schedule = this.schedule.bind(this);\n\n wrapped = function wrapped(...args) {\n return schedule(fn.bind(this), ...args);\n };\n\n wrapped.withOptions = function (options, ...args) {\n return schedule(options, fn, ...args);\n };\n\n return wrapped;\n }\n\n updateSettings(options = {}) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n yield _this3._store.__updateSettings__(parser.overwrite(options, _this3.storeDefaults));\n parser.overwrite(options, _this3.instanceDefaults, _this3);\n return _this3;\n })();\n }\n\n currentReservoir() {\n return this._store.__currentReservoir__();\n }\n\n incrementReservoir(incr = 0) {\n return this._store.__incrementReservoir__(incr);\n }\n\n }\n\n ;\n Bottleneck.default = Bottleneck;\n Bottleneck.Events = Events;\n Bottleneck.version = Bottleneck.prototype.version = require(\"./version.json\").version;\n Bottleneck.strategy = Bottleneck.prototype.strategy = {\n LEAK: 1,\n OVERFLOW: 2,\n OVERFLOW_PRIORITY: 4,\n BLOCK: 3\n };\n Bottleneck.BottleneckError = Bottleneck.prototype.BottleneckError = require(\"./BottleneckError\");\n Bottleneck.Group = Bottleneck.prototype.Group = require(\"./Group\");\n Bottleneck.RedisConnection = Bottleneck.prototype.RedisConnection = require(\"./RedisConnection\");\n Bottleneck.IORedisConnection = Bottleneck.prototype.IORedisConnection = require(\"./IORedisConnection\");\n Bottleneck.Batcher = Bottleneck.prototype.Batcher = require(\"./Batcher\");\n Bottleneck.prototype.jobDefaults = {\n priority: DEFAULT_PRIORITY,\n weight: 1,\n expiration: null,\n id: \"\"\n };\n Bottleneck.prototype.storeDefaults = {\n maxConcurrent: null,\n minTime: 0,\n highWater: null,\n strategy: Bottleneck.prototype.strategy.LEAK,\n penalty: null,\n reservoir: null,\n reservoirRefreshInterval: null,\n reservoirRefreshAmount: null,\n reservoirIncreaseInterval: null,\n reservoirIncreaseAmount: null,\n reservoirIncreaseMaximum: null\n };\n Bottleneck.prototype.localStoreDefaults = {\n Promise: Promise,\n timeout: null,\n heartbeatInterval: 250\n };\n Bottleneck.prototype.redisStoreDefaults = {\n Promise: Promise,\n timeout: null,\n heartbeatInterval: 5000,\n clientTimeout: 10000,\n Redis: null,\n clientOptions: {},\n clusterNodes: null,\n clearDatastore: false,\n connection: null\n };\n Bottleneck.prototype.instanceDefaults = {\n datastore: \"local\",\n connection: null,\n id: \"\",\n rejectOnDrop: true,\n trackDoneStatus: false,\n Promise: Promise\n };\n Bottleneck.prototype.stopDefaults = {\n enqueueErrorMessage: \"This limiter has been stopped and cannot accept new jobs.\",\n dropWaitingJobs: true,\n dropErrorMessage: \"This limiter has been stopped.\"\n };\n return Bottleneck;\n}.call(void 0);\n\nmodule.exports = Bottleneck;","\"use strict\";\n\nmodule.exports = require(\"./Bottleneck\");","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","module.exports = require('util').inspect;\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar match = String.prototype.match;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\nvar toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('options \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n return String(obj);\n }\n if (typeof obj === 'bigint') {\n return String(obj) + 'n';\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = seen.slice();\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + String(obj.nodeName).toLowerCase();\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + xs.join(', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + ys.join(', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return String(s).replace(/\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = str.replace(/(['\\\\])/g, '\\\\$1').replace(/[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = Array(opts.indent + 1).join(' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: Array(depth + 1).join(baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + xs.join(',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ((/[^\\w$]/).test(key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n if (sideChannel.has(object)) {\n throw new RangeError('Cyclic object value');\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, true);\n var valueSideChannel = getSideChannel();\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","export default function(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)})}\n//# sourceMappingURL=unfetch.module.js.map\n","module.exports = self.fetch || (self.fetch = require('unfetch').default || require('unfetch'));\n",null,null,null,"// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\n\nvar ws = null\n\nif (typeof WebSocket !== 'undefined') {\n ws = WebSocket\n} else if (typeof MozWebSocket !== 'undefined') {\n ws = MozWebSocket\n} else if (typeof global !== 'undefined') {\n ws = global.WebSocket || global.MozWebSocket\n} else if (typeof window !== 'undefined') {\n ws = window.WebSocket || window.MozWebSocket\n} else if (typeof self !== 'undefined') {\n ws = self.WebSocket || self.MozWebSocket\n}\n\nmodule.exports = ws\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\n\nmodule.exports = value => {\n\tif (typeof Blob === 'undefined') {\n\t\treturn false;\n\t}\n\n\treturn value instanceof Blob || Object.prototype.toString.call(value) === '[object Blob]';\n};\n",null,null],"names":["DLList","asyncGeneratorStep","_asyncToGenerator","Events","Queues","require$$0","require$$1","BottleneckError","DEFAULT_PRIORITY","Job","NUM_PRIORITIES","parser","LocalDatastore","RedisConnection","Scripts","require$$2","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","IORedisConnection","RedisDatastore","require$$3","States","Sync","require$$4","require$$5","require$$6","require$$7","require$$9","require$$10","require$$11","require$$12","require$$13","hasSymbolSham","toStr","bind","undefined","$TypeError","hasOwn","GetIntrinsic","has","isArray","isRegExp","inspect","defaults","sideChannel","getSideChannel","parse","stringify","isofetch","Bottleneck","qs","global","EventEmitter","WebSocket"],"mappings":"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"} \ No newline at end of file diff --git a/dist/alpaca.browser.min.js b/dist/alpaca.browser.min.js index 62b6b52..bc31c50 100644 --- a/dist/alpaca.browser.min.js +++ b/dist/alpaca.browser.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("util")):"function"==typeof define&&define.amd?define(["exports","util"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).alpaca={},e.require$$0$3)}(this,(function(exports,require$$0$3){"use strict";function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var require$$0__default=_interopDefaultLegacy(require$$0$3),load=function(e,t,r={}){var n,i,s;for(n in t)s=t[n],r[n]=null!=(i=e[n])?i:s;return r},overwrite=function(e,t,r={}){var n,i;for(n in e)i=e[n],void 0!==t[n]&&(r[n]=i);return r},parser$8={load:load,overwrite:overwrite},DLList$2;DLList$2=class{constructor(e,t){this.incr=e,this.decr=t,this._first=null,this._last=null,this.length=0}push(e){var t;this.length++,"function"==typeof this.incr&&this.incr(),t={value:e,prev:this._last,next:null},null!=this._last?(this._last.next=t,this._last=t):this._first=this._last=t}shift(){var e;if(null!=this._first)return this.length--,"function"==typeof this.decr&&this.decr(),e=this._first.value,null!=(this._first=this._first.next)?this._first.prev=null:this._last=null,e}first(){if(null!=this._first)return this._first.value}getArray(){var e,t,r;for(e=this._first,r=[];null!=e;)r.push((t=e,e=e.next,t.value));return r}forEachShift(e){var t;for(t=this.shift();null!=t;)e(t),t=this.shift()}debug(){var e,t,r,n,i;for(e=this._first,i=[];null!=e;)i.push((t=e,e=e.next,{value:t.value,prev:null!=(r=t.prev)?r.value:void 0,next:null!=(n=t.next)?n.value:void 0}));return i}};var DLList_1=DLList$2,Events$6;function asyncGeneratorStep$8(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$8(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$8(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$8(s,n,i,o,a,"throw",e)}o(void 0)}))}}Events$6=class{constructor(e){if(this.instance=e,this._events={},null!=this.instance.on||null!=this.instance.once||null!=this.instance.removeAllListeners)throw new Error("An Emitter already exists for this object");this.instance.on=(e,t)=>this._addListener(e,"many",t),this.instance.once=(e,t)=>this._addListener(e,"once",t),this.instance.removeAllListeners=(e=null)=>null!=e?delete this._events[e]:this._events={}}_addListener(e,t,r){var n;return null==(n=this._events)[e]&&(n[e]=[]),this._events[e].push({cb:r,status:t}),this.instance}listenerCount(e){return null!=this._events[e]?this._events[e].length:0}trigger(e,...t){var r=this;return _asyncToGenerator$8((function*(){var n,i;try{if("debug"!==e&&r.trigger("debug",`Event triggered: ${e}`,t),null==r._events[e])return;return r._events[e]=r._events[e].filter((function(e){return"none"!==e.status})),i=r._events[e].map(function(){var e=_asyncToGenerator$8((function*(e){var n,i;if("none"!==e.status){"once"===e.status&&(e.status="none");try{return"function"==typeof(null!=(i="function"==typeof e.cb?e.cb(...t):void 0)?i.then:void 0)?yield i:i}catch(e){return n=e,r.trigger("error",n),null}}}));return function(t){return e.apply(this,arguments)}}()),(yield Promise.all(i)).find((function(e){return null!=e}))}catch(e){return n=e,r.trigger("error",n),null}}))()}};var Events_1=Events$6,DLList$1,Events$5,Queues$1;DLList$1=DLList_1,Events$5=Events_1,Queues$1=class{constructor(e){this.Events=new Events$5(this),this._length=0,this._lists=function(){var t,r,n;for(n=[],t=1,r=e;1<=r?t<=r:t>=r;1<=r?++t:--t)n.push(new DLList$1((()=>this.incr()),(()=>this.decr())));return n}.call(this)}incr(){if(0==this._length++)return this.Events.trigger("leftzero")}decr(){if(0==--this._length)return this.Events.trigger("zero")}push(e){return this._lists[e.options.priority].push(e)}queued(e){return null!=e?this._lists[e].length:this._length}shiftAll(e){return this._lists.forEach((function(t){return t.forEachShift(e)}))}getFirst(e=this._lists){var t,r,n;for(t=0,r=e.length;t0)return n;return[]}shiftLastFrom(e){return this.getFirst(this._lists.slice(e).reverse()).shift()}};var Queues_1=Queues$1,BottleneckError$4;BottleneckError$4=class extends Error{};var BottleneckError_1=BottleneckError$4,BottleneckError$3,DEFAULT_PRIORITY$1,Job$1,NUM_PRIORITIES$1,parser$7;function asyncGeneratorStep$7(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$7(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$7(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$7(s,n,i,o,a,"throw",e)}o(void 0)}))}}NUM_PRIORITIES$1=10,DEFAULT_PRIORITY$1=5,parser$7=parser$8,BottleneckError$3=BottleneckError_1,Job$1=class{constructor(e,t,r,n,i,s,o,a){this.task=e,this.args=t,this.rejectOnDrop=i,this.Events=s,this._states=o,this.Promise=a,this.options=parser$7.load(r,n),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===n.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise(((e,t)=>{this._resolve=e,this._reject=t})),this.retryCount=0}_sanitizePriority(e){var t;return(t=~~e!==e?DEFAULT_PRIORITY$1:e)<0?0:t>NUM_PRIORITIES$1-1?NUM_PRIORITIES$1-1:t}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:e,message:t="This job has been dropped by Bottleneck"}={}){return!!this._states.remove(this.options.id)&&(this.rejectOnDrop&&this._reject(null!=e?e:new BottleneckError$3(t)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0)}_assertStatus(e){var t;if((t=this._states.jobStatus(this.options.id))!==e&&("DONE"!==e||null!==t))throw new BottleneckError$3(`Invalid job status ${t}, expected ${e}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(e,t){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:e,blocked:t})}doRun(){return 0===this.retryCount?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}doExecute(e,t,r,n){var i=this;return _asyncToGenerator$7((function*(){var s,o,a;0===i.retryCount?(i._assertStatus("RUNNING"),i._states.next(i.options.id)):i._assertStatus("EXECUTING"),o={args:i.args,options:i.options,retryCount:i.retryCount},i.Events.trigger("executing",o);try{if(a=yield null!=e?e.schedule(i.options,i.task,...i.args):i.task(...i.args),t())return i.doDone(o),yield n(i.options,o),i._assertStatus("DONE"),i._resolve(a)}catch(e){return s=e,i._onFailure(s,o,t,r,n)}}))()}doExpire(e,t,r){var n,i;return this._states.jobStatus("RUNNING"===this.options.id)&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),i={args:this.args,options:this.options,retryCount:this.retryCount},n=new BottleneckError$3(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(n,i,e,t,r)}_onFailure(e,t,r,n,i){var s=this;return _asyncToGenerator$7((function*(){var o,a;if(r())return null!=(o=yield s.Events.trigger("failed",e,t))?(a=~~o,s.Events.trigger("retry",`Retrying ${s.options.id} after ${a} ms`,t),s.retryCount++,n(a)):(s.doDone(t),yield i(s.options,t),s._assertStatus("DONE"),s._reject(e))}))()}doDone(e){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",e)}};var Job_1=Job$1,BottleneckError$2,LocalDatastore$1,parser$6;function asyncGeneratorStep$6(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$6(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$6(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$6(s,n,i,o,a,"throw",e)}o(void 0)}))}}parser$6=parser$8,BottleneckError$2=BottleneckError_1,LocalDatastore$1=class{constructor(e,t,r){this.instance=e,this.storeOptions=t,this.clientId=this.instance._randomIndex(),parser$6.load(r,r,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var e;return null==this.heartbeat&&(null!=this.storeOptions.reservoirRefreshInterval&&null!=this.storeOptions.reservoirRefreshAmount||null!=this.storeOptions.reservoirIncreaseInterval&&null!=this.storeOptions.reservoirIncreaseAmount)?"function"==typeof(e=this.heartbeat=setInterval((()=>{var e,t,r,n,i;if(n=Date.now(),null!=this.storeOptions.reservoirRefreshInterval&&n>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=n,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),null!=this.storeOptions.reservoirIncreaseInterval&&n>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval){var s=this.storeOptions;if(e=s.reservoirIncreaseAmount,r=s.reservoirIncreaseMaximum,i=s.reservoir,this._lastReservoirIncrease=n,(t=null!=r?Math.min(e,r-i):e)>0)return this.storeOptions.reservoir+=t,this.instance._drainAll(this.computeCapacity())}}),this.heartbeatInterval)).unref?e.unref():void 0:clearInterval(this.heartbeat)}__publish__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),t.instance.Events.trigger("message",e.toString())}))()}__disconnect__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),clearInterval(t.heartbeat),t.Promise.resolve()}))()}yieldLoop(e=0){return new this.Promise((function(t,r){return setTimeout(t,e)}))}computePenalty(){var e;return null!=(e=this.storeOptions.penalty)?e:15*this.storeOptions.minTime||5e3}__updateSettings__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),parser$6.overwrite(e,e,t.storeOptions),t._startHeartbeat(),t.instance._drainAll(t.computeCapacity()),!0}))()}__running__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e._running}))()}__queued__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e.instance.queued()}))()}__done__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e._done}))()}__groupCheck__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),t._nextRequest+t.timeout=e}check(e,t){return this.conditionsCheck(e)&&this._nextRequest-t<=0}__check__(e){var t=this;return _asyncToGenerator$6((function*(){var r;return yield t.yieldLoop(),r=Date.now(),t.check(e,r)}))()}__register__(e,t,r){var n=this;return _asyncToGenerator$6((function*(){var e,r;return yield n.yieldLoop(),e=Date.now(),n.conditionsCheck(t)?(n._running+=t,null!=n.storeOptions.reservoir&&(n.storeOptions.reservoir-=t),r=Math.max(n._nextRequest-e,0),n._nextRequest=e+r+n.storeOptions.minTime,{success:!0,wait:r,reservoir:n.storeOptions.reservoir}):{success:!1}}))()}strategyIsBlock(){return 3===this.storeOptions.strategy}__submit__(e,t){var r=this;return _asyncToGenerator$6((function*(){var n,i,s;if(yield r.yieldLoop(),null!=r.storeOptions.maxConcurrent&&t>r.storeOptions.maxConcurrent)throw new BottleneckError$2(`Impossible to add a job having a weight of ${t} to a limiter having a maxConcurrent setting of ${r.storeOptions.maxConcurrent}`);return i=Date.now(),s=null!=r.storeOptions.highWater&&e===r.storeOptions.highWater&&!r.check(t,i),(n=r.strategyIsBlock()&&(s||r.isBlocked(i)))&&(r._unblockTime=i+r.computePenalty(),r._nextRequest=r._unblockTime+r.storeOptions.minTime,r.instance._dropAllQueued()),{reachedHWM:s,blocked:n,strategy:r.storeOptions.strategy}}))()}__free__(e,t){var r=this;return _asyncToGenerator$6((function*(){return yield r.yieldLoop(),r._running-=t,r._done+=t,r.instance._drainAll(r.computeCapacity()),{running:r._running}}))()}};var LocalDatastore_1=LocalDatastore$1,commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getAugmentedNamespace(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})})),t}function createCommonjsModule(e){var t={exports:{}};return e(t,t.exports),t.exports}var require$$0$2={"blacklist_client.lua":"local blacklist = ARGV[num_static_argv + 1]\n\nif redis.call('zscore', client_last_seen_key, blacklist) then\n redis.call('zadd', client_last_seen_key, 0, blacklist)\nend\n\n\nreturn {}\n","check.lua":"local weight = tonumber(ARGV[num_static_argv + 1])\n\nlocal capacity = process_tick(now, false)['capacity']\nlocal nextRequest = tonumber(redis.call('hget', settings_key, 'nextRequest'))\n\nreturn conditions_check(capacity, weight) and nextRequest - now <= 0\n","conditions_check.lua":"local conditions_check = function (capacity, weight)\n return capacity == nil or weight <= capacity\nend\n","current_reservoir.lua":"return process_tick(now, false)['reservoir']\n","done.lua":"process_tick(now, false)\n\nreturn tonumber(redis.call('hget', settings_key, 'done'))\n","free.lua":"local index = ARGV[num_static_argv + 1]\n\nredis.call('zadd', job_expirations_key, 0, index)\n\nreturn process_tick(now, false)['running']\n","get_time.lua":"redis.replicate_commands()\n\nlocal get_time = function ()\n local time = redis.call('time')\n\n return tonumber(time[1]..string.sub(time[2], 1, 3))\nend\n","group_check.lua":"return not (redis.call('exists', settings_key) == 1)\n","heartbeat.lua":"process_tick(now, true)\n","increment_reservoir.lua":"local incr = tonumber(ARGV[num_static_argv + 1])\n\nredis.call('hincrby', settings_key, 'reservoir', incr)\n\nlocal reservoir = process_tick(now, true)['reservoir']\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn reservoir\n","init.lua":"local clear = tonumber(ARGV[num_static_argv + 1])\nlocal limiter_version = ARGV[num_static_argv + 2]\nlocal num_local_argv = num_static_argv + 2\n\nif clear == 1 then\n redis.call('del', unpack(KEYS))\nend\n\nif redis.call('exists', settings_key) == 0 then\n -- Create\n local args = {'hmset', settings_key}\n\n for i = num_local_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\n end\n\n redis.call(unpack(args))\n redis.call('hmset', settings_key,\n 'nextRequest', now,\n 'lastReservoirRefresh', now,\n 'lastReservoirIncrease', now,\n 'running', 0,\n 'done', 0,\n 'unblockTime', 0,\n 'capacityPriorityCounter', 0\n )\n\nelse\n -- Apply migrations\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'version'\n )\n local id = settings[1]\n local current_version = settings[2]\n\n if current_version ~= limiter_version then\n local version_digits = {}\n for k, v in string.gmatch(current_version, \"([^.]+)\") do\n table.insert(version_digits, tonumber(k))\n end\n\n -- 2.10.0\n if version_digits[2] < 10 then\n redis.call('hsetnx', settings_key, 'reservoirRefreshInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirRefreshAmount', '')\n redis.call('hsetnx', settings_key, 'lastReservoirRefresh', '')\n redis.call('hsetnx', settings_key, 'done', 0)\n redis.call('hset', settings_key, 'version', '2.10.0')\n end\n\n -- 2.11.1\n if version_digits[2] < 11 or (version_digits[2] == 11 and version_digits[3] < 1) then\n if redis.call('hstrlen', settings_key, 'lastReservoirRefresh') == 0 then\n redis.call('hmset', settings_key,\n 'lastReservoirRefresh', now,\n 'version', '2.11.1'\n )\n end\n end\n\n -- 2.14.0\n if version_digits[2] < 14 then\n local old_running_key = 'b_'..id..'_running'\n local old_executing_key = 'b_'..id..'_executing'\n\n if redis.call('exists', old_running_key) == 1 then\n redis.call('rename', old_running_key, job_weights_key)\n end\n if redis.call('exists', old_executing_key) == 1 then\n redis.call('rename', old_executing_key, job_expirations_key)\n end\n redis.call('hset', settings_key, 'version', '2.14.0')\n end\n\n -- 2.15.2\n if version_digits[2] < 15 or (version_digits[2] == 15 and version_digits[3] < 2) then\n redis.call('hsetnx', settings_key, 'capacityPriorityCounter', 0)\n redis.call('hset', settings_key, 'version', '2.15.2')\n end\n\n -- 2.17.0\n if version_digits[2] < 17 then\n redis.call('hsetnx', settings_key, 'clientTimeout', 10000)\n redis.call('hset', settings_key, 'version', '2.17.0')\n end\n\n -- 2.18.0\n if version_digits[2] < 18 then\n redis.call('hsetnx', settings_key, 'reservoirIncreaseInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseAmount', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseMaximum', '')\n redis.call('hsetnx', settings_key, 'lastReservoirIncrease', now)\n redis.call('hset', settings_key, 'version', '2.18.0')\n end\n\n end\n\n process_tick(now, false)\nend\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n","process_tick.lua":"local process_tick = function (now, always_publish)\n\n local compute_capacity = function (maxConcurrent, running, reservoir)\n if maxConcurrent ~= nil and reservoir ~= nil then\n return math.min((maxConcurrent - running), reservoir)\n elseif maxConcurrent ~= nil then\n return maxConcurrent - running\n elseif reservoir ~= nil then\n return reservoir\n else\n return nil\n end\n end\n\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'running',\n 'reservoir',\n 'reservoirRefreshInterval',\n 'reservoirRefreshAmount',\n 'lastReservoirRefresh',\n 'reservoirIncreaseInterval',\n 'reservoirIncreaseAmount',\n 'reservoirIncreaseMaximum',\n 'lastReservoirIncrease',\n 'capacityPriorityCounter',\n 'clientTimeout'\n )\n local id = settings[1]\n local maxConcurrent = tonumber(settings[2])\n local running = tonumber(settings[3])\n local reservoir = tonumber(settings[4])\n local reservoirRefreshInterval = tonumber(settings[5])\n local reservoirRefreshAmount = tonumber(settings[6])\n local lastReservoirRefresh = tonumber(settings[7])\n local reservoirIncreaseInterval = tonumber(settings[8])\n local reservoirIncreaseAmount = tonumber(settings[9])\n local reservoirIncreaseMaximum = tonumber(settings[10])\n local lastReservoirIncrease = tonumber(settings[11])\n local capacityPriorityCounter = tonumber(settings[12])\n local clientTimeout = tonumber(settings[13])\n\n local initial_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n --\n -- Process 'running' changes\n --\n local expired = redis.call('zrangebyscore', job_expirations_key, '-inf', '('..now)\n\n if #expired > 0 then\n redis.call('zremrangebyscore', job_expirations_key, '-inf', '('..now)\n\n local flush_batch = function (batch, acc)\n local weights = redis.call('hmget', job_weights_key, unpack(batch))\n redis.call('hdel', job_weights_key, unpack(batch))\n local clients = redis.call('hmget', job_clients_key, unpack(batch))\n redis.call('hdel', job_clients_key, unpack(batch))\n\n -- Calculate sum of removed weights\n for i = 1, #weights do\n acc['total'] = acc['total'] + (tonumber(weights[i]) or 0)\n end\n\n -- Calculate sum of removed weights by client\n local client_weights = {}\n for i = 1, #clients do\n local removed = tonumber(weights[i]) or 0\n if removed > 0 then\n acc['client_weights'][clients[i]] = (acc['client_weights'][clients[i]] or 0) + removed\n end\n end\n end\n\n local acc = {\n ['total'] = 0,\n ['client_weights'] = {}\n }\n local batch_size = 1000\n\n -- Compute changes to Zsets and apply changes to Hashes\n for i = 1, #expired, batch_size do\n local batch = {}\n for j = i, math.min(i + batch_size - 1, #expired) do\n table.insert(batch, expired[j])\n end\n\n flush_batch(batch, acc)\n end\n\n -- Apply changes to Zsets\n if acc['total'] > 0 then\n redis.call('hincrby', settings_key, 'done', acc['total'])\n running = tonumber(redis.call('hincrby', settings_key, 'running', -acc['total']))\n end\n\n for client, weight in pairs(acc['client_weights']) do\n redis.call('zincrby', client_running_key, -weight, client)\n end\n end\n\n --\n -- Process 'reservoir' changes\n --\n local reservoirRefreshActive = reservoirRefreshInterval ~= nil and reservoirRefreshAmount ~= nil\n if reservoirRefreshActive and now >= lastReservoirRefresh + reservoirRefreshInterval then\n reservoir = reservoirRefreshAmount\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirRefresh', now\n )\n end\n\n local reservoirIncreaseActive = reservoirIncreaseInterval ~= nil and reservoirIncreaseAmount ~= nil\n if reservoirIncreaseActive and now >= lastReservoirIncrease + reservoirIncreaseInterval then\n local num_intervals = math.floor((now - lastReservoirIncrease) / reservoirIncreaseInterval)\n local incr = reservoirIncreaseAmount * num_intervals\n if reservoirIncreaseMaximum ~= nil then\n incr = math.min(incr, reservoirIncreaseMaximum - (reservoir or 0))\n end\n if incr > 0 then\n reservoir = (reservoir or 0) + incr\n end\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirIncrease', lastReservoirIncrease + (num_intervals * reservoirIncreaseInterval)\n )\n end\n\n --\n -- Clear unresponsive clients\n --\n local unresponsive = redis.call('zrangebyscore', client_last_seen_key, '-inf', (now - clientTimeout))\n local unresponsive_lookup = {}\n local terminated_clients = {}\n for i = 1, #unresponsive do\n unresponsive_lookup[unresponsive[i]] = true\n if tonumber(redis.call('zscore', client_running_key, unresponsive[i])) == 0 then\n table.insert(terminated_clients, unresponsive[i])\n end\n end\n if #terminated_clients > 0 then\n redis.call('zrem', client_running_key, unpack(terminated_clients))\n redis.call('hdel', client_num_queued_key, unpack(terminated_clients))\n redis.call('zrem', client_last_registered_key, unpack(terminated_clients))\n redis.call('zrem', client_last_seen_key, unpack(terminated_clients))\n end\n\n --\n -- Broadcast capacity changes\n --\n local final_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n if always_publish or (initial_capacity ~= nil and final_capacity == nil) then\n -- always_publish or was not unlimited, now unlimited\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n\n elseif initial_capacity ~= nil and final_capacity ~= nil and final_capacity > initial_capacity then\n -- capacity was increased\n -- send the capacity message to the limiter having the lowest number of running jobs\n -- the tiebreaker is the limiter having not registered a job in the longest time\n\n local lowest_concurrency_value = nil\n local lowest_concurrency_clients = {}\n local lowest_concurrency_last_registered = {}\n local client_concurrencies = redis.call('zrange', client_running_key, 0, -1, 'withscores')\n\n for i = 1, #client_concurrencies, 2 do\n local client = client_concurrencies[i]\n local concurrency = tonumber(client_concurrencies[i+1])\n\n if (\n lowest_concurrency_value == nil or lowest_concurrency_value == concurrency\n ) and (\n not unresponsive_lookup[client]\n ) and (\n tonumber(redis.call('hget', client_num_queued_key, client)) > 0\n ) then\n lowest_concurrency_value = concurrency\n table.insert(lowest_concurrency_clients, client)\n local last_registered = tonumber(redis.call('zscore', client_last_registered_key, client))\n table.insert(lowest_concurrency_last_registered, last_registered)\n end\n end\n\n if #lowest_concurrency_clients > 0 then\n local position = 1\n local earliest = lowest_concurrency_last_registered[1]\n\n for i,v in ipairs(lowest_concurrency_last_registered) do\n if v < earliest then\n position = i\n earliest = v\n end\n end\n\n local next_client = lowest_concurrency_clients[position]\n redis.call('publish', 'b_'..id,\n 'capacity-priority:'..(final_capacity or '')..\n ':'..next_client..\n ':'..capacityPriorityCounter\n )\n redis.call('hincrby', settings_key, 'capacityPriorityCounter', '1')\n else\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n end\n end\n\n return {\n ['capacity'] = final_capacity,\n ['running'] = running,\n ['reservoir'] = reservoir\n }\nend\n","queued.lua":"local clientTimeout = tonumber(redis.call('hget', settings_key, 'clientTimeout'))\nlocal valid_clients = redis.call('zrangebyscore', client_last_seen_key, (now - clientTimeout), 'inf')\nlocal client_queued = redis.call('hmget', client_num_queued_key, unpack(valid_clients))\n\nlocal sum = 0\nfor i = 1, #client_queued do\n sum = sum + tonumber(client_queued[i])\nend\n\nreturn sum\n","refresh_expiration.lua":"local refresh_expiration = function (now, nextRequest, groupTimeout)\n\n if groupTimeout ~= nil then\n local ttl = (nextRequest + groupTimeout) - now\n\n for i = 1, #KEYS do\n redis.call('pexpire', KEYS[i], ttl)\n end\n end\n\nend\n","refs.lua":"local settings_key = KEYS[1]\nlocal job_weights_key = KEYS[2]\nlocal job_expirations_key = KEYS[3]\nlocal job_clients_key = KEYS[4]\nlocal client_running_key = KEYS[5]\nlocal client_num_queued_key = KEYS[6]\nlocal client_last_registered_key = KEYS[7]\nlocal client_last_seen_key = KEYS[8]\n\nlocal now = tonumber(ARGV[1])\nlocal client = ARGV[2]\n\nlocal num_static_argv = 2\n","register.lua":"local index = ARGV[num_static_argv + 1]\nlocal weight = tonumber(ARGV[num_static_argv + 2])\nlocal expiration = tonumber(ARGV[num_static_argv + 3])\n\nlocal state = process_tick(now, false)\nlocal capacity = state['capacity']\nlocal reservoir = state['reservoir']\n\nlocal settings = redis.call('hmget', settings_key,\n 'nextRequest',\n 'minTime',\n 'groupTimeout'\n)\nlocal nextRequest = tonumber(settings[1])\nlocal minTime = tonumber(settings[2])\nlocal groupTimeout = tonumber(settings[3])\n\nif conditions_check(capacity, weight) then\n\n redis.call('hincrby', settings_key, 'running', weight)\n redis.call('hset', job_weights_key, index, weight)\n if expiration ~= nil then\n redis.call('zadd', job_expirations_key, now + expiration, index)\n end\n redis.call('hset', job_clients_key, index, client)\n redis.call('zincrby', client_running_key, weight, client)\n redis.call('hincrby', client_num_queued_key, client, -1)\n redis.call('zadd', client_last_registered_key, now, client)\n\n local wait = math.max(nextRequest - now, 0)\n local newNextRequest = now + wait + minTime\n\n if reservoir == nil then\n redis.call('hset', settings_key,\n 'nextRequest', newNextRequest\n )\n else\n reservoir = reservoir - weight\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'nextRequest', newNextRequest\n )\n end\n\n refresh_expiration(now, newNextRequest, groupTimeout)\n\n return {true, wait, reservoir}\n\nelse\n return {false}\nend\n","register_client.lua":"local queued = tonumber(ARGV[num_static_argv + 1])\n\n-- Could have been re-registered concurrently\nif not redis.call('zscore', client_last_seen_key, client) then\n redis.call('zadd', client_running_key, 0, client)\n redis.call('hset', client_num_queued_key, client, queued)\n redis.call('zadd', client_last_registered_key, 0, client)\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n\nreturn {}\n","running.lua":"return process_tick(now, false)['running']\n","submit.lua":"local queueLength = tonumber(ARGV[num_static_argv + 1])\nlocal weight = tonumber(ARGV[num_static_argv + 2])\n\nlocal capacity = process_tick(now, false)['capacity']\n\nlocal settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'highWater',\n 'nextRequest',\n 'strategy',\n 'unblockTime',\n 'penalty',\n 'minTime',\n 'groupTimeout'\n)\nlocal id = settings[1]\nlocal maxConcurrent = tonumber(settings[2])\nlocal highWater = tonumber(settings[3])\nlocal nextRequest = tonumber(settings[4])\nlocal strategy = tonumber(settings[5])\nlocal unblockTime = tonumber(settings[6])\nlocal penalty = tonumber(settings[7])\nlocal minTime = tonumber(settings[8])\nlocal groupTimeout = tonumber(settings[9])\n\nif maxConcurrent ~= nil and weight > maxConcurrent then\n return redis.error_reply('OVERWEIGHT:'..weight..':'..maxConcurrent)\nend\n\nlocal reachedHWM = (highWater ~= nil and queueLength == highWater\n and not (\n conditions_check(capacity, weight)\n and nextRequest - now <= 0\n )\n)\n\nlocal blocked = strategy == 3 and (reachedHWM or unblockTime >= now)\n\nif blocked then\n local computedPenalty = penalty\n if computedPenalty == nil then\n if minTime == 0 then\n computedPenalty = 5000\n else\n computedPenalty = 15 * minTime\n end\n end\n\n local newNextRequest = now + computedPenalty + minTime\n\n redis.call('hmset', settings_key,\n 'unblockTime', now + computedPenalty,\n 'nextRequest', newNextRequest\n )\n\n local clients_queued_reset = redis.call('hkeys', client_num_queued_key)\n local queued_reset = {}\n for i = 1, #clients_queued_reset do\n table.insert(queued_reset, clients_queued_reset[i])\n table.insert(queued_reset, 0)\n end\n redis.call('hmset', client_num_queued_key, unpack(queued_reset))\n\n redis.call('publish', 'b_'..id, 'blocked:')\n\n refresh_expiration(now, newNextRequest, groupTimeout)\nend\n\nif not blocked and not reachedHWM then\n redis.call('hincrby', client_num_queued_key, client, 1)\nend\n\nreturn {reachedHWM, blocked, strategy}\n","update_settings.lua":"local args = {'hmset', settings_key}\n\nfor i = num_static_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\nend\n\nredis.call(unpack(args))\n\nprocess_tick(now, true)\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n","validate_client.lua":"if not redis.call('zscore', client_last_seen_key, client) then\n return redis.error_reply('UNKNOWN_CLIENT')\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n","validate_keys.lua":"if not (redis.call('exists', settings_key) == 1) then\n return redis.error_reply('SETTINGS_KEY_NOT_FOUND')\nend\n"},Scripts$3=createCommonjsModule((function(e,t){var r,n,i;r={refs:(n=require$$0$2)["refs.lua"],validate_keys:n["validate_keys.lua"],validate_client:n["validate_client.lua"],refresh_expiration:n["refresh_expiration.lua"],process_tick:n["process_tick.lua"],conditions_check:n["conditions_check.lua"],get_time:n["get_time.lua"]},t.allKeys=function(e){return[`b_${e}_settings`,`b_${e}_job_weights`,`b_${e}_job_expirations`,`b_${e}_job_clients`,`b_${e}_client_running`,`b_${e}_client_num_queued`,`b_${e}_client_last_registered`,`b_${e}_client_last_seen`]},i={init:{keys:t.allKeys,headers:["process_tick"],refresh_expiration:!0,code:n["init.lua"]},group_check:{keys:t.allKeys,headers:[],refresh_expiration:!1,code:n["group_check.lua"]},register_client:{keys:t.allKeys,headers:["validate_keys"],refresh_expiration:!1,code:n["register_client.lua"]},blacklist_client:{keys:t.allKeys,headers:["validate_keys","validate_client"],refresh_expiration:!1,code:n["blacklist_client.lua"]},heartbeat:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["heartbeat.lua"]},update_settings:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:n["update_settings.lua"]},running:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["running.lua"]},queued:{keys:t.allKeys,headers:["validate_keys","validate_client"],refresh_expiration:!1,code:n["queued.lua"]},done:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["done.lua"]},check:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!1,code:n["check.lua"]},submit:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!0,code:n["submit.lua"]},register:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!0,code:n["register.lua"]},free:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:n["free.lua"]},current_reservoir:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["current_reservoir.lua"]},increment_reservoir:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:n["increment_reservoir.lua"]}},t.names=Object.keys(i),t.keys=function(e,t){return i[e].keys(t)},t.payload=function(e){var t;return t=i[e],Array.prototype.concat(r.refs,t.headers.map((function(e){return r[e]})),t.refresh_expiration?r.refresh_expiration:"",t.code).join("\n")}})),Events$4,RedisConnection$2,Scripts$2,parser$5;function asyncGeneratorStep$5(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$5(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$5(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$5(s,n,i,o,a,"throw",e)}o(void 0)}))}}parser$5=parser$8,Events$4=Events_1,Scripts$2=Scripts$3,RedisConnection$2=function(){class RedisConnection{constructor(options={}){parser$5.load(options,this.defaults,this),null==this.Redis&&(this.Redis=eval("require")("redis")),null==this.Events&&(this.Events=new Events$4(this)),this.terminated=!1,null==this.client&&(this.client=this.Redis.createClient(this.clientOptions)),this.subscriber=this.client.duplicate(),this.limiters={},this.shas={},this.ready=this.Promise.all([this._setup(this.client,!1),this._setup(this.subscriber,!0)]).then((()=>this._loadScripts())).then((()=>({client:this.client,subscriber:this.subscriber})))}_setup(e,t){return e.setMaxListeners(0),new this.Promise(((r,n)=>(e.on("error",(e=>this.Events.trigger("error",e))),t&&e.on("message",((e,t)=>{var r;return null!=(r=this.limiters[e])?r._store.onMessage(e,t):void 0})),e.ready?r():e.once("ready",r))))}_loadScript(e){return new this.Promise(((t,r)=>{var n;return n=Scripts$2.payload(e),this.client.multi([["script","load",n]]).exec(((n,i)=>null!=n?r(n):(this.shas[e]=i[0],t(i[0]))))}))}_loadScripts(){return this.Promise.all(Scripts$2.names.map((e=>this._loadScript(e))))}__runCommand__(e){var t=this;return _asyncToGenerator$5((function*(){return yield t.ready,new t.Promise(((r,n)=>t.client.multi([e]).exec_atomic((function(e,t){return null!=e?n(e):r(t[0])}))))}))()}__addLimiter__(e){return this.Promise.all([e.channel(),e.channel_client()].map((t=>new this.Promise(((r,n)=>{var i;return i=n=>{if(n===t)return this.subscriber.removeListener("subscribe",i),this.limiters[t]=e,r()},this.subscriber.on("subscribe",i),this.subscriber.subscribe(t)})))))}__removeLimiter__(e){var t=this;return this.Promise.all([e.channel(),e.channel_client()].map(function(){var e=_asyncToGenerator$5((function*(e){return t.terminated||(yield new t.Promise(((r,n)=>t.subscriber.unsubscribe(e,(function(t,i){return null!=t?n(t):i===e?r():void 0}))))),delete t.limiters[e]}));return function(t){return e.apply(this,arguments)}}()))}__scriptArgs__(e,t,r,n){var i;return i=Scripts$2.keys(e,t),[this.shas[e],i.length].concat(i,r,n)}__scriptFn__(e){return this.client.evalsha.bind(this.client)}disconnect(e=!0){var t,r,n,i;for(t=0,n=(i=Object.keys(this.limiters)).length;t(this._loadScripts(),{client:this.client,subscriber:this.subscriber})))}_setup(e,t){return e.setMaxListeners(0),new this.Promise(((r,n)=>(e.on("error",(e=>this.Events.trigger("error",e))),t&&e.on("message",((e,t)=>{var r;return null!=(r=this.limiters[e])?r._store.onMessage(e,t):void 0})),"ready"===e.status?r():e.once("ready",r))))}_loadScripts(){return Scripts$1.names.forEach((e=>this.client.defineCommand(e,{lua:Scripts$1.payload(e)})))}__runCommand__(e){var t=this;return _asyncToGenerator$4((function*(){yield t.ready;var r=_slicedToArray$3(yield t.client.pipeline([e]).exec(),1);return _slicedToArray$3(r[0],2)[1]}))()}__addLimiter__(e){return this.Promise.all([e.channel(),e.channel_client()].map((t=>new this.Promise(((r,n)=>this.subscriber.subscribe(t,(()=>(this.limiters[t]=e,r()))))))))}__removeLimiter__(e){var t=this;return[e.channel(),e.channel_client()].forEach(function(){var e=_asyncToGenerator$4((function*(e){return t.terminated||(yield t.subscriber.unsubscribe(e)),delete t.limiters[e]}));return function(t){return e.apply(this,arguments)}}())}__scriptArgs__(e,t,r,n){var i;return[(i=Scripts$1.keys(e,t)).length].concat(i,r,n)}__scriptFn__(e){return this.client[e].bind(this.client)}disconnect(e=!0){var t,r,n,i;for(t=0,n=(i=Object.keys(this.limiters)).length;t(this.clients=e,this.runScript("init",this.prepareInitSettings(this.clearDatastore))))).then((()=>this.connection.__addLimiter__(this.instance))).then((()=>this.runScript("register_client",[this.instance.queued()]))).then((()=>{var e;return"function"==typeof(e=this.heartbeat=setInterval((()=>this.runScript("heartbeat",[]).catch((e=>this.instance.Events.trigger("error",e)))),this.heartbeatInterval)).unref&&e.unref(),this.clients}))}__publish__(e){var t=this;return _asyncToGenerator$3((function*(){return(yield t.ready).client.publish(t.instance.channel(),`message:${e.toString()}`)}))()}onMessage(e,t){var r=this;return _asyncToGenerator$3((function*(){var e,n,i,s,o,a,c,l,u,p;try{c=t.indexOf(":");var d=[t.slice(0,c),t.slice(c+1)];if(i=d[1],"capacity"===(p=d[0]))return yield r.instance._drainAll(i.length>0?~~i:void 0);if("capacity-priority"===p){var h=_slicedToArray$2(i.split(":"),3);return u=h[0],l=h[1],n=h[2],e=u.length>0?~~u:void 0,l===r.clientId?(s=yield r.instance._drainAll(e),a=null!=e?e-(s||0):"",yield r.clients.client.publish(r.instance.channel(),`capacity-priority:${a}::${n}`)):""===l?(clearTimeout(r.capacityPriorityCounters[n]),delete r.capacityPriorityCounters[n],r.instance._drainAll(e)):r.capacityPriorityCounters[n]=setTimeout(_asyncToGenerator$3((function*(){var t;try{return delete r.capacityPriorityCounters[n],yield r.runScript("blacklist_client",[l]),yield r.instance._drainAll(e)}catch(e){return t=e,r.instance.Events.trigger("error",t)}})),1e3)}if("message"===p)return r.instance.Events.trigger("message",i);if("blocked"===p)return yield r.instance._dropAllQueued()}catch(e){return o=e,r.instance.Events.trigger("error",o)}}))()}__disconnect__(e){return clearInterval(this.heartbeat),this.sharedConnection?this.connection.__removeLimiter__(this.instance):this.connection.disconnect(e)}runScript(e,t){var r=this;return _asyncToGenerator$3((function*(){return"init"!==e&&"register_client"!==e&&(yield r.ready),new r.Promise(((n,i)=>{var s,o;return s=[Date.now(),r.clientId].concat(t),r.instance.Events.trigger("debug",`Calling Redis script: ${e}.lua`,s),o=r.connection.__scriptArgs__(e,r.originalId,s,(function(e,t){return null!=e?i(e):n(t)})),r.connection.__scriptFn__(e)(...o)})).catch((n=>"SETTINGS_KEY_NOT_FOUND"===n.message?"heartbeat"===e?r.Promise.resolve():r.runScript("init",r.prepareInitSettings(!1)).then((()=>r.runScript(e,t))):"UNKNOWN_CLIENT"===n.message?r.runScript("register_client",[r.instance.queued()]).then((()=>r.runScript(e,t))):r.Promise.reject(n)))}))()}prepareArray(e){var t,r,n,i;for(n=[],t=0,r=e.length;t(e[this.status[r]]=t,e)),{})}};var States_1=States$1,DLList,Sync$1;function asyncGeneratorStep$2(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$2(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$2(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$2(s,n,i,o,a,"throw",e)}o(void 0)}))}}DLList=DLList_1,Sync$1=class{constructor(e,t){this.schedule=this.schedule.bind(this),this.name=e,this.Promise=t,this._running=0,this._queue=new DLList}isEmpty(){return 0===this._queue.length}_tryToRun(){var e=this;return _asyncToGenerator$2((function*(){var t,r,n,i,s,o,a;if(e._running<1&&e._queue.length>0){e._running++;var c=e._queue.shift();return a=c.task,t=c.args,s=c.resolve,i=c.reject,r=yield _asyncToGenerator$2((function*(){try{return o=yield a(...t),function(){return s(o)}}catch(e){return n=e,function(){return i(n)}}}))(),e._running--,e._tryToRun(),r()}}))()}schedule(e,...t){var r,n,i;return i=n=null,r=new this.Promise((function(e,t){return i=e,n=t})),this._queue.push({task:e,args:t,resolve:i,reject:n}),this._tryToRun(),r}};var Sync_1=Sync$1,version="2.19.5",require$$8={version:version},require$$0$1=Bottleneck_1,Events$2,Group,IORedisConnection,RedisConnection,Scripts,parser$2;function _slicedToArray$1(e,t){return _arrayWithHoles$1(e)||_iterableToArrayLimit$1(e,t)||_nonIterableRest$1()}function _nonIterableRest$1(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArrayLimit$1(e,t){var r=[],n=!0,i=!1,s=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==a.return||a.return()}finally{if(i)throw s}}return r}function _arrayWithHoles$1(e){if(Array.isArray(e))return e}function asyncGeneratorStep$1(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$1(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$1(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$1(s,n,i,o,a,"throw",e)}o(void 0)}))}}parser$2=parser$8,Events$2=Events_1,RedisConnection=RedisConnection_1,IORedisConnection=IORedisConnection_1,Scripts=Scripts$3,Group=function(){class e{constructor(e={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=e,parser$2.load(this.limiterOptions,this.defaults,this),this.Events=new Events$2(this),this.instances={},this.Bottleneck=require$$0$1,this._startAutoCleanup(),this.sharedConnection=null!=this.connection,null==this.connection&&("redis"===this.limiterOptions.datastore?this.connection=new RedisConnection(Object.assign({},this.limiterOptions,{Events:this.Events})):"ioredis"===this.limiterOptions.datastore&&(this.connection=new IORedisConnection(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(e=""){var t;return null!=(t=this.instances[e])?t:(()=>{var t;return t=this.instances[e]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${e}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",t,e),t})()}deleteKey(e=""){var t=this;return _asyncToGenerator$1((function*(){var r,n;return n=t.instances[e],t.connection&&(r=yield t.connection.__runCommand__(["del",...Scripts.allKeys(`${t.id}-${e}`)])),null!=n&&(delete t.instances[e],yield n.disconnect()),null!=n||r>0}))()}limiters(){var e,t,r,n;for(e in r=[],t=this.instances)n=t[e],r.push({key:e,limiter:n});return r}keys(){return Object.keys(this.instances)}clusterKeys(){var e=this;return _asyncToGenerator$1((function*(){var t,r,n,i,s,o,a,c;if(null==e.connection)return e.Promise.resolve(e.keys());for(o=[],t=null,c=`b_${e.id}-`.length,r="_settings".length;0!==t;){var l=_slicedToArray$1(yield e.connection.__runCommand__(["scan",null!=t?t:0,"match",`b_${e.id}-*_settings`,"count",1e4]),2);for(t=~~l[0],i=0,a=(n=l[1]).length;ithis._resolve=e))}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(e){var t;return this._arr.push(e),t=this._promise,this._arr.length===this.maxSize?this._flush():null!=this.maxTime&&1===this._arr.length&&(this._timeout=setTimeout((()=>this._flush()),this.maxTime)),t}}return e.prototype.defaults={maxTime:null,maxSize:null,Promise:Promise},e}.call(void 0);var Batcher_1=Batcher;function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _iterableToArrayLimit(e,t){var r=[],n=!0,i=!1,s=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==a.return||a.return()}finally{if(i)throw s}}return r}function _toArray(e){return _arrayWithHoles(e)||_iterableToArray(e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithHoles(e){if(Array.isArray(e))return e}function asyncGeneratorStep(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep(s,n,i,o,a,"throw",e)}o(void 0)}))}}var Bottleneck,DEFAULT_PRIORITY,Events,Job,LocalDatastore,NUM_PRIORITIES,Queues,RedisDatastore,States,Sync,parser,splice=[].splice;NUM_PRIORITIES=10,DEFAULT_PRIORITY=5,parser=parser$8,Queues=Queues_1,Job=Job_1,LocalDatastore=LocalDatastore_1,RedisDatastore=RedisDatastore_1,Events=Events_1,States=States_1,Sync=Sync_1,Bottleneck=function(){class e{constructor(t={},...r){var n,i;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(t,r),parser.load(t,this.instanceDefaults,this),this._queues=new Queues(NUM_PRIORITIES),this._scheduled={},this._states=new States(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new Events(this),this._submitLock=new Sync("submit",this.Promise),this._registerLock=new Sync("register",this.Promise),i=parser.load(t,this.storeDefaults,{}),this._store=function(){if("redis"===this.datastore||"ioredis"===this.datastore||null!=this.connection)return n=parser.load(t,this.redisStoreDefaults,{}),new RedisDatastore(this,i,n);if("local"===this.datastore)return n=parser.load(t,this.localStoreDefaults,{}),new LocalDatastore(this,i,n);throw new e.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",(()=>{var e;return null!=(e=this._store.heartbeat)&&"function"==typeof e.ref?e.ref():void 0})),this._queues.on("zero",(()=>{var e;return null!=(e=this._store.heartbeat)&&"function"==typeof e.unref?e.unref():void 0}))}_validateOptions(t,r){if(null==t||"object"!=typeof t||0!==r.length)throw new e.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(e){return this._store.__publish__(e)}disconnect(e=!0){return this._store.__disconnect__(e)}chain(e){return this._limiter=e,this}queued(e){return this._queues.queued(e)}clusterQueued(){return this._store.__queued__()}empty(){return 0===this.queued()&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(e){return this._states.jobStatus(e)}jobs(e){return this._states.statusJobs(e)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(e=1){return this._store.__check__(e)}_clearGlobalState(e){return null!=this._scheduled[e]&&(clearTimeout(this._scheduled[e].expiration),delete this._scheduled[e],!0)}_free(e,t,r,n){var i=this;return _asyncToGenerator((function*(){var t,s;try{if(s=(yield i._store.__free__(e,r.weight)).running,i.Events.trigger("debug",`Freed ${r.id}`,n),0===s&&i.empty())return i.Events.trigger("idle")}catch(e){return t=e,i.Events.trigger("error",t)}}))()}_run(e,t,r){var n,i,s;return t.doRun(),n=this._clearGlobalState.bind(this,e),s=this._run.bind(this,e,t),i=this._free.bind(this,e,t),this._scheduled[e]={timeout:setTimeout((()=>t.doExecute(this._limiter,n,s,i)),r),expiration:null!=t.options.expiration?setTimeout((function(){return t.doExpire(n,s,i)}),r+t.options.expiration):void 0,job:t}}_drainOne(e){return this._registerLock.schedule((()=>{var t,r,n,i,s;if(0===this.queued())return this.Promise.resolve(null);s=this._queues.getFirst();var o=n=s.first();return i=o.options,t=o.args,null!=e&&i.weight>e?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${i.id}`,{args:t,options:i}),r=this._randomIndex(),this._store.__register__(r,i.weight,i.expiration).then((({success:e,wait:o,reservoir:a})=>{var c;return this.Events.trigger("debug",`Drained ${i.id}`,{success:e,args:t,options:i}),e?(s.shift(),(c=this.empty())&&this.Events.trigger("empty"),0===a&&this.Events.trigger("depleted",c),this._run(r,n,o),this.Promise.resolve(i.weight)):this.Promise.resolve(null)})))}))}_drainAll(e,t=0){return this._drainOne(e).then((r=>{var n;return null!=r?(n=null!=e?e-r:e,this._drainAll(n,t+r)):this.Promise.resolve(t)})).catch((e=>this.Events.trigger("error",e)))}_dropAllQueued(e){return this._queues.shiftAll((function(t){return t.doDrop({message:e})}))}stop(t={}){var r,n;return t=parser.load(t,this.stopDefaults),n=e=>{var t;return t=()=>{var t;return(t=this._states.counts)[0]+t[1]+t[2]+t[3]===e},new this.Promise(((e,r)=>t()?e():this.on("done",(()=>{if(t())return this.removeAllListeners("done"),e()}))))},r=t.dropWaitingJobs?(this._run=function(e,r){return r.doDrop({message:t.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule((()=>this._submitLock.schedule((()=>{var e,r,i;for(e in r=this._scheduled)i=r[e],"RUNNING"===this.jobStatus(i.job.options.id)&&(clearTimeout(i.timeout),clearTimeout(i.expiration),i.job.doDrop({message:t.dropErrorMessage}));return this._dropAllQueued(t.dropErrorMessage),n(0)}))))):this.schedule({priority:NUM_PRIORITIES-1,weight:0},(()=>n(1))),this._receive=function(r){return r._reject(new e.prototype.BottleneckError(t.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new e.prototype.BottleneckError("stop() has already been called")),r}_addToQueue(t){var r=this;return _asyncToGenerator((function*(){var n,i,s,o,a,c,l;n=t.args,o=t.options;try{var u=yield r._store.__submit__(r.queued(),o.weight);a=u.reachedHWM,i=u.blocked,l=u.strategy}catch(e){return s=e,r.Events.trigger("debug",`Could not queue ${o.id}`,{args:n,options:o,error:s}),t.doDrop({error:s}),!1}return i?(t.doDrop(),!0):a&&(null!=(c=l===e.prototype.strategy.LEAK?r._queues.shiftLastFrom(o.priority):l===e.prototype.strategy.OVERFLOW_PRIORITY?r._queues.shiftLastFrom(o.priority+1):l===e.prototype.strategy.OVERFLOW?t:void 0)&&c.doDrop(),null==c||l===e.prototype.strategy.OVERFLOW)?(null==c&&t.doDrop(),a):(t.doQueue(a,i),r._queues.push(t),yield r._drainAll(),a)}))()}_receive(t){return null!=this._states.jobStatus(t.options.id)?(t._reject(new e.prototype.BottleneckError(`A job with the same id already exists (id=${t.options.id})`)),!1):(t.doReceive(),this._submitLock.schedule(this._addToQueue,t))}submit(...e){var t,r,n,i,s,o,a,c;"function"==typeof e[0]?(s=_toArray(e),r=s[0],e=s.slice(1),o=_slicedToArray(splice.call(e,-1),1),t=o[0],i=parser.load({},this.jobDefaults)):(i=(a=_toArray(e))[0],r=a[1],e=a.slice(2),c=_slicedToArray(splice.call(e,-1),1),t=c[0],i=parser.load(i,this.jobDefaults));return(n=new Job(((...e)=>new this.Promise((function(t,n){return r(...e,(function(...e){return(null!=e[0]?n:t)(e)}))}))),e,i,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise)).promise.then((function(e){return"function"==typeof t?t(...e):void 0})).catch((function(e){return Array.isArray(e)?"function"==typeof t?t(...e):void 0:"function"==typeof t?t(e):void 0})),this._receive(n)}schedule(...e){var t,r,n;if("function"==typeof e[0]){var i=_toArray(e);n=i[0],e=i.slice(1),r={}}else{var s=_toArray(e);r=s[0],n=s[1],e=s.slice(2)}return t=new Job(n,e,r,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(t),t.promise}wrap(e){var t,r;return t=this.schedule.bind(this),(r=function(...r){return t(e.bind(this),...r)}).withOptions=function(r,...n){return t(r,e,...n)},r}updateSettings(e={}){var t=this;return _asyncToGenerator((function*(){return yield t._store.__updateSettings__(parser.overwrite(e,t.storeDefaults)),parser.overwrite(e,t.instanceDefaults,t),t}))()}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(e=0){return this._store.__incrementReservoir__(e)}}return e.default=e,e.Events=Events,e.version=e.prototype.version=require$$8.version,e.strategy=e.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},e.BottleneckError=e.prototype.BottleneckError=BottleneckError_1,e.Group=e.prototype.Group=Group_1,e.RedisConnection=e.prototype.RedisConnection=RedisConnection_1,e.IORedisConnection=e.prototype.IORedisConnection=IORedisConnection_1,e.Batcher=e.prototype.Batcher=Batcher_1,e.prototype.jobDefaults={priority:DEFAULT_PRIORITY,weight:1,expiration:null,id:""},e.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:e.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},e.prototype.localStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:250},e.prototype.redisStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},e.prototype.instanceDefaults={datastore:"local",connection:null,id:"",rejectOnDrop:!0,trackDoneStatus:!1,Promise:Promise},e.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},e}.call(void 0);var Bottleneck_1=Bottleneck,lib$1=require$$0$1,shams=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0},origSymbol="undefined"!=typeof Symbol&&Symbol,hasSymbols$1=function(){return"function"==typeof origSymbol&&("function"==typeof Symbol&&("symbol"==typeof origSymbol("foo")&&("symbol"==typeof Symbol("bar")&&shams())))},ERROR_MESSAGE="Function.prototype.bind called on incompatible ",slice=Array.prototype.slice,toStr$1=Object.prototype.toString,funcType="[object Function]",implementation=function(e){var t=this;if("function"!=typeof t||toStr$1.call(t)!==funcType)throw new TypeError(ERROR_MESSAGE+t);for(var r,n=slice.call(arguments,1),i=function(){if(this instanceof r){var i=t.apply(this,n.concat(slice.call(arguments)));return Object(i)===i?i:this}return t.apply(e,n.concat(slice.call(arguments)))},s=Math.max(0,t.length-n.length),o=[],a=0;a1&&"boolean"!=typeof t)throw new $TypeError$1('"allowMissing" argument must be a boolean');var r=stringToPath(e),n=r.length>0?r[0]:"",i=getBaseIntrinsic("%"+n+"%",t),s=i.name,o=i.value,a=!1,c=i.alias;c&&(n=c[0],$spliceApply(r,$concat([0,1],c)));for(var l=1,u=!0;l=r.length){var y=$gOPD(o,p);o=(u=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:o[p]}else u=src(o,p),o=o[p];u&&!a&&(INTRINSICS[s]=o)}}return o},callBind=createCommonjsModule((function(e){var t=getIntrinsic("%Function.prototype.apply%"),r=getIntrinsic("%Function.prototype.call%"),n=getIntrinsic("%Reflect.apply%",!0)||functionBind.call(r,t),i=getIntrinsic("%Object.getOwnPropertyDescriptor%",!0),s=getIntrinsic("%Object.defineProperty%",!0),o=getIntrinsic("%Math.max%");if(s)try{s({},"a",{value:1})}catch(e){s=null}e.exports=function(e){var t=n(functionBind,r,arguments);if(i&&s){var a=i(t,"length");a.configurable&&s(t,"length",{value:1+o(0,e.length-(arguments.length-1))})}return t};var a=function(){return n(functionBind,t,arguments)};s?s(e.exports,"apply",{value:a}):e.exports.apply=a})),$indexOf=callBind(getIntrinsic("String.prototype.indexOf")),callBound=function(e,t){var r=getIntrinsic(e,!!t);return"function"==typeof r&&$indexOf(e,".prototype.")>-1?callBind(r):r},util_inspect=require$$0__default.default.inspect,hasMap="function"==typeof Map&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize=hasMap&&mapSizeDescriptor&&"function"==typeof mapSizeDescriptor.get?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet="function"==typeof Set&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&"function"==typeof setSizeDescriptor.get?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap="function"==typeof WeakMap&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet="function"==typeof WeakSet&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef="function"==typeof WeakRef&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString=Object.prototype.toString,functionToString=Function.prototype.toString,match=String.prototype.match,bigIntValueOf="function"==typeof BigInt?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,hasShammedSymbols="function"==typeof Symbol&&"object"==typeof Symbol.iterator,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null),inspectCustom=util_inspect.custom,inspectSymbol=inspectCustom&&isSymbol(inspectCustom)?inspectCustom:null,toStringTag="function"==typeof Symbol&&void 0!==Symbol.toStringTag?Symbol.toStringTag:null,objectInspect=function e(t,r,n,i){var s=r||{};if(has$3(s,"quoteStyle")&&"single"!==s.quoteStyle&&"double"!==s.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has$3(s,"maxStringLength")&&("number"==typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var o=!has$3(s,"customInspect")||s.customInspect;if("boolean"!=typeof o&&"symbol"!==o)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has$3(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('options "indent" must be "\\t", an integer > 0, or `null`');if(void 0===t)return"undefined";if(null===t)return"null";if("boolean"==typeof t)return t?"true":"false";if("string"==typeof t)return inspectString(t,s);if("number"==typeof t)return 0===t?1/0/t>0?"0":"-0":String(t);if("bigint"==typeof t)return String(t)+"n";var a=void 0===s.depth?5:s.depth;if(void 0===n&&(n=0),n>=a&&a>0&&"object"==typeof t)return isArray$3(t)?"[Array]":"[Object]";var c=getIndent(s,n);if(void 0===i)i=[];else if(indexOf(i,t)>=0)return"[Circular]";function l(t,r,o){if(r&&(i=i.slice()).push(r),o){var a={depth:s.depth};return has$3(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),e(t,a,n+1,i)}return e(t,s,n+1,i)}if("function"==typeof t){var u=nameOf(t),p=arrObjKeys(t,l);return"[Function"+(u?": "+u:" (anonymous)")+"]"+(p.length>0?" { "+p.join(", ")+" }":"")}if(isSymbol(t)){var d=hasShammedSymbols?String(t).replace(/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(t);return"object"!=typeof t||hasShammedSymbols?d:markBoxed(d)}if(isElement(t)){for(var h="<"+String(t.nodeName).toLowerCase(),y=t.attributes||[],f=0;f"}if(isArray$3(t)){if(0===t.length)return"[]";var _=arrObjKeys(t,l);return c&&!singleLineValues(_)?"["+indentedJoin(_,c)+"]":"[ "+_.join(", ")+" ]"}if(isError(t)){var m=arrObjKeys(t,l);return 0===m.length?"["+String(t)+"]":"{ ["+String(t)+"] "+m.join(", ")+" }"}if("object"==typeof t&&o){if(inspectSymbol&&"function"==typeof t[inspectSymbol])return t[inspectSymbol]();if("symbol"!==o&&"function"==typeof t.inspect)return t.inspect()}if(isMap(t)){var g=[];return mapForEach.call(t,(function(e,r){g.push(l(r,t,!0)+" => "+l(e,t))})),collectionOf("Map",mapSize.call(t),g,c)}if(isSet(t)){var v=[];return setForEach.call(t,(function(e){v.push(l(e,t))})),collectionOf("Set",setSize.call(t),v,c)}if(isWeakMap(t))return weakCollectionOf("WeakMap");if(isWeakSet(t))return weakCollectionOf("WeakSet");if(isWeakRef(t))return weakCollectionOf("WeakRef");if(isNumber(t))return markBoxed(l(Number(t)));if(isBigInt(t))return markBoxed(l(bigIntValueOf.call(t)));if(isBoolean(t))return markBoxed(booleanValueOf.call(t));if(isString(t))return markBoxed(l(String(t)));if(!isDate(t)&&!isRegExp$1(t)){var b=arrObjKeys(t,l),w=gPO?gPO(t)===Object.prototype:t instanceof Object||t.constructor===Object,$=t instanceof Object?"":"null prototype",S=!w&&toStringTag&&Object(t)===t&&toStringTag in t?toStr(t).slice(8,-1):$?"Object":"",k=(w||"function"!=typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(S||$?"["+[].concat(S||[],$||[]).join(": ")+"] ":"");return 0===b.length?k+"{}":c?k+"{"+indentedJoin(b,c)+"}":k+"{ "+b.join(", ")+" }"}return String(t)};function wrapQuotes(e,t,r){var n="double"===(r.quoteStyle||t)?'"':"'";return n+e+n}function quote(e){return String(e).replace(/"/g,""")}function isArray$3(e){return!("[object Array]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isDate(e){return!("[object Date]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isRegExp$1(e){return!("[object RegExp]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isError(e){return!("[object Error]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isString(e){return!("[object String]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isNumber(e){return!("[object Number]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isBoolean(e){return!("[object Boolean]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isSymbol(e){if(hasShammedSymbols)return e&&"object"==typeof e&&e instanceof Symbol;if("symbol"==typeof e)return!0;if(!e||"object"!=typeof e||!symToString)return!1;try{return symToString.call(e),!0}catch(e){}return!1}function isBigInt(e){if(!e||"object"!=typeof e||!bigIntValueOf)return!1;try{return bigIntValueOf.call(e),!0}catch(e){}return!1}var hasOwn=Object.prototype.hasOwnProperty||function(e){return e in this};function has$3(e,t){return hasOwn.call(e,t)}function toStr(e){return objectToString.call(e)}function nameOf(e){if(e.name)return e.name;var t=match.call(functionToString.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}function indexOf(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;rt.maxStringLength){var r=e.length-t.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return inspectString(e.slice(0,t.maxStringLength),t)+n}return wrapQuotes(e.replace(/(['\\])/g,"\\$1").replace(/[\x00-\x1f]/g,lowbyte),"single",t)}function lowbyte(e){var t=e.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return r?"\\"+r:"\\x"+(t<16?"0":"")+t.toString(16).toUpperCase()}function markBoxed(e){return"Object("+e+")"}function weakCollectionOf(e){return e+" { ? }"}function collectionOf(e,t,r,n){return e+" ("+t+") {"+(n?indentedJoin(r,n):r.join(", "))+"}"}function singleLineValues(e){for(var t=0;t=0)return!1;return!0}function getIndent(e,t){var r;if("\t"===e.indent)r="\t";else{if(!("number"==typeof e.indent&&e.indent>0))return null;r=Array(e.indent+1).join(" ")}return{base:r,prev:Array(t+1).join(r)}}function indentedJoin(e,t){if(0===e.length)return"";var r="\n"+t.prev+t.base;return r+e.join(","+r)+"\n"+t.prev}function arrObjKeys(e,t){var r=isArray$3(e),n=[];if(r){n.length=e.length;for(var i=0;i1;){var t=e.pop(),r=t.obj[t.prop];if(isArray$2(r)){for(var n=[],i=0;i=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||i===formats.RFC1738&&(40===c||41===c)?o+=s.charAt(a):c<128?o+=hexTable[c]:c<2048?o+=hexTable[192|c>>6]+hexTable[128|63&c]:c<55296||c>=57344?o+=hexTable[224|c>>12]+hexTable[128|c>>6&63]+hexTable[128|63&c]:(a+=1,c=65536+((1023&c)<<10|1023&s.charCodeAt(a)),o+=hexTable[240|c>>18]+hexTable[128|c>>12&63]+hexTable[128|c>>6&63]+hexTable[128|63&c])}return o},compact=function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],n=0;n0?_.join(",")||null:void 0}];else if(isArray$1(a))m=a;else{var v=Object.keys(_);m=c?v.sort(c):v}for(var b=0;b0?d+p:""},has=Object.prototype.hasOwnProperty,isArray=Array.isArray,defaults={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:utils.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},interpretNumericEntities=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},parseArrayValue=function(e,t){return e&&"string"==typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function(e,t){var r,n={},i=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,s=t.parameterLimit===1/0?void 0:t.parameterLimit,o=i.split(t.delimiter,s),a=-1,c=t.charset;if(t.charsetSentinel)for(r=0;r-1&&(u=isArray(u)?[u]:u),has.call(n,l)?n[l]=utils.combine(n[l],u):n[l]=u}return n},parseObject=function(e,t,r,n){for(var i=n?t:parseArrayValue(t,r),s=e.length-1;s>=0;--s){var o,a=e[s];if("[]"===a&&r.parseArrays)o=[].concat(i);else{o=r.plainObjects?Object.create(null):{};var c="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,l=parseInt(c,10);r.parseArrays||""!==c?!isNaN(l)&&a!==c&&String(l)===c&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(o=[])[l]=i:o[c]=i:o={0:i}}i=o}return i},parseKeys=function(e,t,r,n){if(e){var i=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,s=/(\[[^[\]]*])/g,o=r.depth>0&&/(\[[^[\]]*])/.exec(i),a=o?i.slice(0,o.index):i,c=[];if(a){if(!r.plainObjects&&has.call(Object.prototype,a)&&!r.allowPrototypes)return;c.push(a)}for(var l=0;r.depth>0&&null!==(o=s.exec(i))&&l`wss://stream.data.alpaca.markets/v2/${e}`}};function account(e){if(e)try{return{...e,raw:()=>e,buying_power:number(e.buying_power),regt_buying_power:number(e.regt_buying_power),daytrading_buying_power:number(e.daytrading_buying_power),cash:number(e.cash),created_at:new Date(e.created_at),portfolio_value:number(e.portfolio_value),multiplier:number(e.multiplier),equity:number(e.equity),last_equity:number(e.last_equity),long_market_value:number(e.long_market_value),short_market_value:number(e.short_market_value),initial_margin:number(e.initial_margin),maintenance_margin:number(e.maintenance_margin),last_maintenance_margin:number(e.last_maintenance_margin),sma:number(e.sma),status:e.status}}catch(e){throw new Error(`Account parsing failed. ${e.message}`)}}function clock(e){if(e)try{return{raw:()=>e,timestamp:new Date(e.timestamp),is_open:e.is_open,next_open:new Date(e.next_open),next_close:new Date(e.next_close)}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function order(e){if(e)try{return{...e,raw:()=>e,created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),submitted_at:new Date(e.submitted_at),filled_at:new Date(e.filled_at),expired_at:new Date(e.expired_at),canceled_at:new Date(e.canceled_at),failed_at:new Date(e.failed_at),replaced_at:new Date(e.replaced_at),qty:number(e.qty),filled_qty:number(e.filled_qty),type:e.type,side:e.side,time_in_force:e.time_in_force,limit_price:number(e.limit_price),stop_price:number(e.stop_price),filled_avg_price:number(e.filled_avg_price),status:e.status,legs:orders(e.legs),trail_price:number(e.trail_price),trail_percent:number(e.trail_percent),hwm:number(e.hwm),order_class:e.order_class}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function orders(e){return e?e.map((e=>order(e))):void 0}function canceled_order(e){if(!e)return;let t=e.body;delete e.body;try{return{...e,order:{...t,raw:()=>t,created_at:new Date(t.created_at),updated_at:new Date(t.updated_at),submitted_at:new Date(t.submitted_at),filled_at:new Date(t.filled_at),expired_at:new Date(t.expired_at),canceled_at:new Date(t.canceled_at),failed_at:new Date(t.failed_at),replaced_at:new Date(t.replaced_at),qty:number(t.qty),filled_qty:number(t.filled_qty),type:t.type,side:t.side,time_in_force:t.time_in_force,limit_price:number(t.limit_price),stop_price:number(t.stop_price),filled_avg_price:number(t.filled_avg_price),status:t.status,legs:orders(t.legs),trail_price:number(t.trail_price),trail_percent:number(t.trail_percent),hwm:number(t.hwm),order_class:t.order_class}}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function canceled_orders(e){return e?e.map((e=>canceled_order(e))):void 0}function position(e){if(e)try{return{...e,raw:()=>e,avg_entry_price:number(e.avg_entry_price),qty:number(e.qty),side:e.side,market_value:number(e.market_value),cost_basis:number(e.cost_basis),unrealized_pl:number(e.unrealized_pl),unrealized_plpc:number(e.unrealized_plpc),unrealized_intraday_pl:number(e.unrealized_intraday_pl),unrealized_intraday_plpc:number(e.unrealized_intraday_plpc),current_price:number(e.current_price),lastday_price:number(e.lastday_price),change_today:number(e.change_today)}}catch(e){throw new Error(`Position parsing failed. ${e.message}`)}}function positions(e){return e?e.map((e=>position(e))):void 0}function tradeActivity(e){if(e)try{return{...e,raw:()=>e,cum_qty:number(e.cum_qty),leaves_qty:number(e.leaves_qty),price:number(e.price),qty:number(e.qty),side:e.side,type:e.type}}catch(e){throw new Error(`TradeActivity parsing failed. ${e.message}`)}}function nonTradeActivity(e){if(e)try{return{...e,raw:()=>e,net_amount:number(e.net_amount),qty:number(e.qty),per_share_amount:number(e.per_share_amount)}}catch(e){throw new Error(`NonTradeActivity parsing failed. ${e.message}`)}}function activities(e){if(e)try{return e.map((e=>"FILL"===e.activity_type?tradeActivity(e):nonTradeActivity(e)))}catch(e){throw new Error(`Activity parsing failed. ${e.message}`)}}function pageOfTrades(e){if(e)try{return{raw:()=>e,trades:(null==e.trades?[]:e.trades).map((e=>({raw:()=>e,...e,t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function pageOfQuotes(e){if(e)try{return{raw:()=>e,quotes:(null==e.quotes?[]:e.quotes).map((e=>({raw:()=>e,...e,t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function pageOfBars(e){if(e)try{return{raw:()=>e,bars:(null==e.bars?[]:e.bars).map((e=>({raw:()=>e,...e,t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function snapshot(e){if(e)try{return{...e,raw:()=>e,latestTrade:e.latestTrade?{...e.latestTrade,t:new Date(e.latestTrade.t)}:null,latestQuote:e.latestQuote?{...e.latestQuote,t:new Date(e.latestQuote.t)}:null,minuteBar:e.minuteBar?{...e.minuteBar,t:new Date(e.minuteBar.t)}:null,dailyBar:e.dailyBar?{...e.dailyBar,t:new Date(e.dailyBar.t)}:null,prevDailyBar:e.prevDailyBar?{...e.prevDailyBar,t:new Date(e.prevDailyBar.t)}:null}}catch(e){throw new Error(`Snapshot parsing failed "${e.message}"`)}}function snapshots(e){let t={};for(let[r,n]of Object.entries(e))t[r]=snapshot(n);return t}function number(e){if(void 0===e||null==e)return e;const t=parseFloat(e);return Number.isNaN(t)?null:t}function trade_update(e){if(e)return{raw:()=>e,event:e.event,execution_id:e.execution_id,order:order(e.order),...e.event_id&&{event_id:number(e.event_id)},...e.at&&{at:new Date(e.at)},...e.timestamp&&{timestamp:new Date(e.timestamp)},...e.position_qty&&{position_qty:number(e.position_qty)},...e.price&&{price:number(e.price)},...e.qty&&{qty:number(e.qty)}}}var parse={account:account,activities:activities,clock:clock,nonTradeActivity:nonTradeActivity,order:order,orders:orders,canceled_orders:canceled_orders,position:position,positions:positions,tradeActivity:tradeActivity,pageOfTrades:pageOfTrades,pageOfQuotes:pageOfQuotes,pageOfBars:pageOfBars,snapshot:snapshot,snapshots:snapshots,trade_update:trade_update};const unifetch="undefined"!=typeof fetch?fetch:browser$1;class AlpacaClient{params;limiter=new lib$1({reservoir:200,reservoirRefreshAmount:200,reservoirRefreshInterval:6e4,maxConcurrent:1,minTime:200});constructor(e){if(this.params=e,"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),"access_token"in e.credentials&&("key"in e.credentials||"secret"in e.credentials))throw new Error("can't create client with both default and oauth credentials")}async isAuthenticated(){try{return await this.getAccount(),!0}catch{return!1}}async getAccount(){return parse.account(await this.request({method:"GET",url:`${urls.rest.account}/account`}))}async getOrder(e){return parse.order(await this.request({method:"GET",url:`${urls.rest.account}/orders/${e.order_id||e.client_order_id}`,data:{nested:e.nested}}))}async getOrders(e={}){return parse.orders(await this.request({method:"GET",url:`${urls.rest.account}/orders`,data:{...e,symbols:e.symbols?e.symbols.join(","):void 0}}))}async placeOrder(e){return parse.order(await this.request({method:"POST",url:`${urls.rest.account}/orders`,data:e}))}async replaceOrder(e){return parse.order(await this.request({method:"PATCH",url:`${urls.rest.account}/orders/${e.order_id}`,data:e}))}cancelOrder(e){return this.request({method:"DELETE",url:`${urls.rest.account}/orders/${e.order_id}`,isJSON:!1})}async cancelOrders(){return parse.canceled_orders(await this.request({method:"DELETE",url:`${urls.rest.account}/orders`}))}async getPosition(e){return parse.position(await this.request({method:"GET",url:`${urls.rest.account}/positions/${e.symbol}`}))}async getPositions(){return parse.positions(await this.request({method:"GET",url:`${urls.rest.account}/positions`}))}async closePosition(e){return parse.order(await this.request({method:"DELETE",url:`${urls.rest.account}/positions/${e.symbol}`,data:e}))}async closePositions(e){return parse.orders(await this.request({method:"DELETE",url:`${urls.rest.account}/positions?cancel_orders=${JSON.stringify(e.cancel_orders??!1)}`}))}getAsset(e){return this.request({method:"GET",url:`${urls.rest.account}/assets/${e.asset_id_or_symbol}`})}getAssets(e){return this.request({method:"GET",url:`${urls.rest.account}/assets`,data:e})}getWatchlist(e){return this.request({method:"GET",url:`${urls.rest.account}/watchlists/${e.uuid}`})}getWatchlists(){return this.request({method:"GET",url:`${urls.rest.account}/watchlists`})}createWatchlist(e){return this.request({method:"POST",url:`${urls.rest.account}/watchlists`,data:e})}updateWatchlist(e){return this.request({method:"PUT",url:`${urls.rest.account}/watchlists/${e.uuid}`,data:e})}addToWatchlist(e){return this.request({method:"POST",url:`${urls.rest.account}/watchlists/${e.uuid}`,data:e})}removeFromWatchlist(e){return this.request({method:"DELETE",url:`${urls.rest.account}/watchlists/${e.uuid}/${e.symbol}`})}deleteWatchlist(e){return this.request({method:"DELETE",url:`${urls.rest.account}/watchlists/${e.uuid}`})}getCalendar(e){return this.request({method:"GET",url:`${urls.rest.account}/calendar`,data:e})}getNews(e){return this.request({method:"GET",url:`${urls.rest.beta}/news`,data:e})}async getClock(){return parse.clock(await this.request({method:"GET",url:`${urls.rest.account}/clock`}))}getAccountConfigurations(){return this.request({method:"GET",url:`${urls.rest.account}/account/configurations`})}updateAccountConfigurations(e){return this.request({method:"PATCH",url:`${urls.rest.account}/account/configurations`,data:e})}async getAccountActivities(e){return e.activity_types&&Array.isArray(e.activity_types)&&(e.activity_types=e.activity_types.join(",")),parse.activities(await this.request({method:"GET",url:`${urls.rest.account}/account/activities${e.activity_type?"/".concat(e.activity_type):""}`,data:{...e,activity_type:void 0}}))}getPortfolioHistory(e){return this.request({method:"GET",url:`${urls.rest.account}/account/portfolio/history`,data:e})}async getBars_v1(e){const t={...e,symbols:e.symbols.join(",")};return await this.request({method:"GET",url:`${urls.rest.market_data_v1}/bars/${e.timeframe}`,data:t})}async getLastTrade_v1(e){return await this.request({method:"GET",url:`${urls.rest.market_data_v1}/last/stocks/${e.symbol}`})}async getLastQuote_v1(e){return await this.request({method:"GET",url:`${urls.rest.market_data_v1}/last_quote/stocks/${e.symbol}`})}async getTrades(e){return parse.pageOfTrades(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/trades`,data:{...e,symbol:void 0}}))}async getQuotes(e){return parse.pageOfQuotes(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/quotes`,data:{...e,symbol:void 0}}))}async getBars(e){return parse.pageOfBars(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/bars`,data:{...e,symbol:void 0}}))}async getSnapshot(e){return parse.snapshot(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/snapshot`}))}async getSnapshots(e){return parse.snapshots(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/snapshots?symbols=${e.symbols.join(",")}`}))}async request(e){let t={};"access_token"in this.params.credentials?t.Authorization=`Bearer ${this.params.credentials.access_token}`:(t["APCA-API-KEY-ID"]=this.params.credentials.key,t["APCA-API-SECRET-KEY"]=this.params.credentials.secret),this.params.credentials.paper&&(e.url=e.url.replace("api.","paper-api."));let r="";if(e.data){for(let[t,r]of Object.entries(e.data))r instanceof Date&&(e.data[t]=r.toISOString());["POST","PATCH","PUT"].includes(e.method)||(r="?".concat(lib.stringify(e.data)),e.data=void 0)}const n=()=>unifetch(e.url.concat(r),{method:e.method,headers:t,body:JSON.stringify(e.data)}),i=this.params.rate_limit?()=>this.limiter.schedule(n):n;let s,o={};try{if(s=await i(),null!=e.isJSON&&!e.isJSON)return s.ok;o=await s.json()}catch(e){throw console.error(e),o}if("code"in o||"message"in o)throw o;return o}}var ws=null;"undefined"!=typeof WebSocket?ws=WebSocket:"undefined"!=typeof MozWebSocket?ws=MozWebSocket:void 0!==commonjsGlobal?ws=commonjsGlobal.WebSocket||commonjsGlobal.MozWebSocket:"undefined"!=typeof window?ws=window.WebSocket||window.MozWebSocket:"undefined"!=typeof self&&(ws=self.WebSocket||self.MozWebSocket);var browser=ws,eventemitter3=createCommonjsModule((function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}function i(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function s(e,t,n,s,o){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new i(n,s||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),a.prototype.eventNames=function(){var e,n,i=[];if(0===this._eventsCount)return i;for(n in e=this._events)t.call(e,n)&&i.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},a.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i"undefined"!=typeof Blob&&(e instanceof Blob||"[object Blob]"===Object.prototype.toString.call(e));class AlpacaStream extends eventemitter3{params;host;connection;authenticated;constructor(e){switch(super(),this.params=e,"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),e.type){case"account":this.host=e.credentials.paper?urls.websocket.account.replace("api.","paper-api."):urls.websocket.account;break;case"market_data":this.host=urls.websocket.market_data(this.params.source);break;default:this.host="unknown"}this.connection=new browser(this.host),this.connection.onopen=()=>{let t={};switch(this.params.type){case"account":t={action:"authenticate",data:{key_id:e.credentials.key,secret_key:e.credentials.secret}};break;case"market_data":t={action:"auth",...e.credentials}}this.connection.send(JSON.stringify(t)),this.emit("open",this)},this.connection.onclose=()=>this.emit("close",this),this.connection.onmessage=async e=>{let t=e.data;isBlob(t)?t=await e.data.text():t instanceof ArrayBuffer&&(t=String.fromCharCode(...new Uint8Array(e.data)));let r=JSON.parse(t);("account"==this.params.type?[r]:r).forEach((e=>{this.emit("message",e),("T"in e&&"authenticated"==e.msg||"stream"in e&&"authorization"==e.stream&&"authorized"==e.data.status)&&(this.authenticated=!0,this.emit("authenticated",this)),"stream"in e&&"trade_updates"==e.stream&&this.emit("trade_updates",parse.trade_update(e.data));const t={success:"success",subscription:"subscription",error:"error",t:"trade",q:"quote",b:"bar"};"T"in e&&this.emit(t[e.T.split(".")[0]],e)}))},this.connection.onerror=e=>{this.emit("error",e)}}getConnection(){return this.connection}subscribe(e,t=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"listen",data:{streams:[e]}}));break;case"market_data":let r={action:"subscribe"};r[e]=t,this.send(JSON.stringify(r))}return this}unsubscribe(e,t=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"unlisten",data:{streams:[e]}}));break;case"market_data":let r={action:"unsubscribe"};r[e]=t,this.send(JSON.stringify(r))}return this}send(e){if(!this.authenticated)throw new Error("not authenticated");return"object"==typeof e&&(e=JSON.stringify(e)),this.connection.send(e),this}}var index={AlpacaClient:AlpacaClient,AlpacaStream:AlpacaStream};exports.AlpacaClient=AlpacaClient,exports.AlpacaStream=AlpacaStream,exports.default=index,Object.defineProperty(exports,"__esModule",{value:!0})})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("util")):"function"==typeof define&&define.amd?define(["exports","util"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).alpaca={},e.require$$0$3)}(this,(function(exports,require$$0$3){"use strict";function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var require$$0__default=_interopDefaultLegacy(require$$0$3),load=function(e,t,r={}){var n,i,s;for(n in t)s=t[n],r[n]=null!=(i=e[n])?i:s;return r},overwrite=function(e,t,r={}){var n,i;for(n in e)i=e[n],void 0!==t[n]&&(r[n]=i);return r},parser$8={load:load,overwrite:overwrite},DLList$2;DLList$2=class{constructor(e,t){this.incr=e,this.decr=t,this._first=null,this._last=null,this.length=0}push(e){var t;this.length++,"function"==typeof this.incr&&this.incr(),t={value:e,prev:this._last,next:null},null!=this._last?(this._last.next=t,this._last=t):this._first=this._last=t}shift(){var e;if(null!=this._first)return this.length--,"function"==typeof this.decr&&this.decr(),e=this._first.value,null!=(this._first=this._first.next)?this._first.prev=null:this._last=null,e}first(){if(null!=this._first)return this._first.value}getArray(){var e,t,r;for(e=this._first,r=[];null!=e;)r.push((t=e,e=e.next,t.value));return r}forEachShift(e){var t;for(t=this.shift();null!=t;)e(t),t=this.shift()}debug(){var e,t,r,n,i;for(e=this._first,i=[];null!=e;)i.push((t=e,e=e.next,{value:t.value,prev:null!=(r=t.prev)?r.value:void 0,next:null!=(n=t.next)?n.value:void 0}));return i}};var DLList_1=DLList$2,Events$6;function asyncGeneratorStep$8(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$8(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$8(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$8(s,n,i,o,a,"throw",e)}o(void 0)}))}}Events$6=class{constructor(e){if(this.instance=e,this._events={},null!=this.instance.on||null!=this.instance.once||null!=this.instance.removeAllListeners)throw new Error("An Emitter already exists for this object");this.instance.on=(e,t)=>this._addListener(e,"many",t),this.instance.once=(e,t)=>this._addListener(e,"once",t),this.instance.removeAllListeners=(e=null)=>null!=e?delete this._events[e]:this._events={}}_addListener(e,t,r){var n;return null==(n=this._events)[e]&&(n[e]=[]),this._events[e].push({cb:r,status:t}),this.instance}listenerCount(e){return null!=this._events[e]?this._events[e].length:0}trigger(e,...t){var r=this;return _asyncToGenerator$8((function*(){var n,i;try{if("debug"!==e&&r.trigger("debug",`Event triggered: ${e}`,t),null==r._events[e])return;return r._events[e]=r._events[e].filter((function(e){return"none"!==e.status})),i=r._events[e].map(function(){var e=_asyncToGenerator$8((function*(e){var n,i;if("none"!==e.status){"once"===e.status&&(e.status="none");try{return"function"==typeof(null!=(i="function"==typeof e.cb?e.cb(...t):void 0)?i.then:void 0)?yield i:i}catch(e){return n=e,r.trigger("error",n),null}}}));return function(t){return e.apply(this,arguments)}}()),(yield Promise.all(i)).find((function(e){return null!=e}))}catch(e){return n=e,r.trigger("error",n),null}}))()}};var Events_1=Events$6,DLList$1,Events$5,Queues$1;DLList$1=DLList_1,Events$5=Events_1,Queues$1=class{constructor(e){this.Events=new Events$5(this),this._length=0,this._lists=function(){var t,r,n;for(n=[],t=1,r=e;1<=r?t<=r:t>=r;1<=r?++t:--t)n.push(new DLList$1((()=>this.incr()),(()=>this.decr())));return n}.call(this)}incr(){if(0==this._length++)return this.Events.trigger("leftzero")}decr(){if(0==--this._length)return this.Events.trigger("zero")}push(e){return this._lists[e.options.priority].push(e)}queued(e){return null!=e?this._lists[e].length:this._length}shiftAll(e){return this._lists.forEach((function(t){return t.forEachShift(e)}))}getFirst(e=this._lists){var t,r,n;for(t=0,r=e.length;t0)return n;return[]}shiftLastFrom(e){return this.getFirst(this._lists.slice(e).reverse()).shift()}};var Queues_1=Queues$1,BottleneckError$4;BottleneckError$4=class extends Error{};var BottleneckError_1=BottleneckError$4,BottleneckError$3,DEFAULT_PRIORITY$1,Job$1,NUM_PRIORITIES$1,parser$7;function asyncGeneratorStep$7(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$7(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$7(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$7(s,n,i,o,a,"throw",e)}o(void 0)}))}}NUM_PRIORITIES$1=10,DEFAULT_PRIORITY$1=5,parser$7=parser$8,BottleneckError$3=BottleneckError_1,Job$1=class{constructor(e,t,r,n,i,s,o,a){this.task=e,this.args=t,this.rejectOnDrop=i,this.Events=s,this._states=o,this.Promise=a,this.options=parser$7.load(r,n),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===n.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise(((e,t)=>{this._resolve=e,this._reject=t})),this.retryCount=0}_sanitizePriority(e){var t;return(t=~~e!==e?DEFAULT_PRIORITY$1:e)<0?0:t>NUM_PRIORITIES$1-1?NUM_PRIORITIES$1-1:t}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:e,message:t="This job has been dropped by Bottleneck"}={}){return!!this._states.remove(this.options.id)&&(this.rejectOnDrop&&this._reject(null!=e?e:new BottleneckError$3(t)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0)}_assertStatus(e){var t;if((t=this._states.jobStatus(this.options.id))!==e&&("DONE"!==e||null!==t))throw new BottleneckError$3(`Invalid job status ${t}, expected ${e}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(e,t){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:e,blocked:t})}doRun(){return 0===this.retryCount?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}doExecute(e,t,r,n){var i=this;return _asyncToGenerator$7((function*(){var s,o,a;0===i.retryCount?(i._assertStatus("RUNNING"),i._states.next(i.options.id)):i._assertStatus("EXECUTING"),o={args:i.args,options:i.options,retryCount:i.retryCount},i.Events.trigger("executing",o);try{if(a=yield null!=e?e.schedule(i.options,i.task,...i.args):i.task(...i.args),t())return i.doDone(o),yield n(i.options,o),i._assertStatus("DONE"),i._resolve(a)}catch(e){return s=e,i._onFailure(s,o,t,r,n)}}))()}doExpire(e,t,r){var n,i;return this._states.jobStatus("RUNNING"===this.options.id)&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),i={args:this.args,options:this.options,retryCount:this.retryCount},n=new BottleneckError$3(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(n,i,e,t,r)}_onFailure(e,t,r,n,i){var s=this;return _asyncToGenerator$7((function*(){var o,a;if(r())return null!=(o=yield s.Events.trigger("failed",e,t))?(a=~~o,s.Events.trigger("retry",`Retrying ${s.options.id} after ${a} ms`,t),s.retryCount++,n(a)):(s.doDone(t),yield i(s.options,t),s._assertStatus("DONE"),s._reject(e))}))()}doDone(e){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",e)}};var Job_1=Job$1,BottleneckError$2,LocalDatastore$1,parser$6;function asyncGeneratorStep$6(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$6(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$6(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$6(s,n,i,o,a,"throw",e)}o(void 0)}))}}parser$6=parser$8,BottleneckError$2=BottleneckError_1,LocalDatastore$1=class{constructor(e,t,r){this.instance=e,this.storeOptions=t,this.clientId=this.instance._randomIndex(),parser$6.load(r,r,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var e;return null==this.heartbeat&&(null!=this.storeOptions.reservoirRefreshInterval&&null!=this.storeOptions.reservoirRefreshAmount||null!=this.storeOptions.reservoirIncreaseInterval&&null!=this.storeOptions.reservoirIncreaseAmount)?"function"==typeof(e=this.heartbeat=setInterval((()=>{var e,t,r,n,i;if(n=Date.now(),null!=this.storeOptions.reservoirRefreshInterval&&n>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=n,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),null!=this.storeOptions.reservoirIncreaseInterval&&n>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval){var s=this.storeOptions;if(e=s.reservoirIncreaseAmount,r=s.reservoirIncreaseMaximum,i=s.reservoir,this._lastReservoirIncrease=n,(t=null!=r?Math.min(e,r-i):e)>0)return this.storeOptions.reservoir+=t,this.instance._drainAll(this.computeCapacity())}}),this.heartbeatInterval)).unref?e.unref():void 0:clearInterval(this.heartbeat)}__publish__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),t.instance.Events.trigger("message",e.toString())}))()}__disconnect__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),clearInterval(t.heartbeat),t.Promise.resolve()}))()}yieldLoop(e=0){return new this.Promise((function(t,r){return setTimeout(t,e)}))}computePenalty(){var e;return null!=(e=this.storeOptions.penalty)?e:15*this.storeOptions.minTime||5e3}__updateSettings__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),parser$6.overwrite(e,e,t.storeOptions),t._startHeartbeat(),t.instance._drainAll(t.computeCapacity()),!0}))()}__running__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e._running}))()}__queued__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e.instance.queued()}))()}__done__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e._done}))()}__groupCheck__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),t._nextRequest+t.timeout=e}check(e,t){return this.conditionsCheck(e)&&this._nextRequest-t<=0}__check__(e){var t=this;return _asyncToGenerator$6((function*(){var r;return yield t.yieldLoop(),r=Date.now(),t.check(e,r)}))()}__register__(e,t,r){var n=this;return _asyncToGenerator$6((function*(){var e,r;return yield n.yieldLoop(),e=Date.now(),n.conditionsCheck(t)?(n._running+=t,null!=n.storeOptions.reservoir&&(n.storeOptions.reservoir-=t),r=Math.max(n._nextRequest-e,0),n._nextRequest=e+r+n.storeOptions.minTime,{success:!0,wait:r,reservoir:n.storeOptions.reservoir}):{success:!1}}))()}strategyIsBlock(){return 3===this.storeOptions.strategy}__submit__(e,t){var r=this;return _asyncToGenerator$6((function*(){var n,i,s;if(yield r.yieldLoop(),null!=r.storeOptions.maxConcurrent&&t>r.storeOptions.maxConcurrent)throw new BottleneckError$2(`Impossible to add a job having a weight of ${t} to a limiter having a maxConcurrent setting of ${r.storeOptions.maxConcurrent}`);return i=Date.now(),s=null!=r.storeOptions.highWater&&e===r.storeOptions.highWater&&!r.check(t,i),(n=r.strategyIsBlock()&&(s||r.isBlocked(i)))&&(r._unblockTime=i+r.computePenalty(),r._nextRequest=r._unblockTime+r.storeOptions.minTime,r.instance._dropAllQueued()),{reachedHWM:s,blocked:n,strategy:r.storeOptions.strategy}}))()}__free__(e,t){var r=this;return _asyncToGenerator$6((function*(){return yield r.yieldLoop(),r._running-=t,r._done+=t,r.instance._drainAll(r.computeCapacity()),{running:r._running}}))()}};var LocalDatastore_1=LocalDatastore$1,commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getAugmentedNamespace(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})})),t}function createCommonjsModule(e){var t={exports:{}};return e(t,t.exports),t.exports}var require$$0$2={"blacklist_client.lua":"local blacklist = ARGV[num_static_argv + 1]\n\nif redis.call('zscore', client_last_seen_key, blacklist) then\n redis.call('zadd', client_last_seen_key, 0, blacklist)\nend\n\n\nreturn {}\n","check.lua":"local weight = tonumber(ARGV[num_static_argv + 1])\n\nlocal capacity = process_tick(now, false)['capacity']\nlocal nextRequest = tonumber(redis.call('hget', settings_key, 'nextRequest'))\n\nreturn conditions_check(capacity, weight) and nextRequest - now <= 0\n","conditions_check.lua":"local conditions_check = function (capacity, weight)\n return capacity == nil or weight <= capacity\nend\n","current_reservoir.lua":"return process_tick(now, false)['reservoir']\n","done.lua":"process_tick(now, false)\n\nreturn tonumber(redis.call('hget', settings_key, 'done'))\n","free.lua":"local index = ARGV[num_static_argv + 1]\n\nredis.call('zadd', job_expirations_key, 0, index)\n\nreturn process_tick(now, false)['running']\n","get_time.lua":"redis.replicate_commands()\n\nlocal get_time = function ()\n local time = redis.call('time')\n\n return tonumber(time[1]..string.sub(time[2], 1, 3))\nend\n","group_check.lua":"return not (redis.call('exists', settings_key) == 1)\n","heartbeat.lua":"process_tick(now, true)\n","increment_reservoir.lua":"local incr = tonumber(ARGV[num_static_argv + 1])\n\nredis.call('hincrby', settings_key, 'reservoir', incr)\n\nlocal reservoir = process_tick(now, true)['reservoir']\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn reservoir\n","init.lua":"local clear = tonumber(ARGV[num_static_argv + 1])\nlocal limiter_version = ARGV[num_static_argv + 2]\nlocal num_local_argv = num_static_argv + 2\n\nif clear == 1 then\n redis.call('del', unpack(KEYS))\nend\n\nif redis.call('exists', settings_key) == 0 then\n -- Create\n local args = {'hmset', settings_key}\n\n for i = num_local_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\n end\n\n redis.call(unpack(args))\n redis.call('hmset', settings_key,\n 'nextRequest', now,\n 'lastReservoirRefresh', now,\n 'lastReservoirIncrease', now,\n 'running', 0,\n 'done', 0,\n 'unblockTime', 0,\n 'capacityPriorityCounter', 0\n )\n\nelse\n -- Apply migrations\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'version'\n )\n local id = settings[1]\n local current_version = settings[2]\n\n if current_version ~= limiter_version then\n local version_digits = {}\n for k, v in string.gmatch(current_version, \"([^.]+)\") do\n table.insert(version_digits, tonumber(k))\n end\n\n -- 2.10.0\n if version_digits[2] < 10 then\n redis.call('hsetnx', settings_key, 'reservoirRefreshInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirRefreshAmount', '')\n redis.call('hsetnx', settings_key, 'lastReservoirRefresh', '')\n redis.call('hsetnx', settings_key, 'done', 0)\n redis.call('hset', settings_key, 'version', '2.10.0')\n end\n\n -- 2.11.1\n if version_digits[2] < 11 or (version_digits[2] == 11 and version_digits[3] < 1) then\n if redis.call('hstrlen', settings_key, 'lastReservoirRefresh') == 0 then\n redis.call('hmset', settings_key,\n 'lastReservoirRefresh', now,\n 'version', '2.11.1'\n )\n end\n end\n\n -- 2.14.0\n if version_digits[2] < 14 then\n local old_running_key = 'b_'..id..'_running'\n local old_executing_key = 'b_'..id..'_executing'\n\n if redis.call('exists', old_running_key) == 1 then\n redis.call('rename', old_running_key, job_weights_key)\n end\n if redis.call('exists', old_executing_key) == 1 then\n redis.call('rename', old_executing_key, job_expirations_key)\n end\n redis.call('hset', settings_key, 'version', '2.14.0')\n end\n\n -- 2.15.2\n if version_digits[2] < 15 or (version_digits[2] == 15 and version_digits[3] < 2) then\n redis.call('hsetnx', settings_key, 'capacityPriorityCounter', 0)\n redis.call('hset', settings_key, 'version', '2.15.2')\n end\n\n -- 2.17.0\n if version_digits[2] < 17 then\n redis.call('hsetnx', settings_key, 'clientTimeout', 10000)\n redis.call('hset', settings_key, 'version', '2.17.0')\n end\n\n -- 2.18.0\n if version_digits[2] < 18 then\n redis.call('hsetnx', settings_key, 'reservoirIncreaseInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseAmount', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseMaximum', '')\n redis.call('hsetnx', settings_key, 'lastReservoirIncrease', now)\n redis.call('hset', settings_key, 'version', '2.18.0')\n end\n\n end\n\n process_tick(now, false)\nend\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n","process_tick.lua":"local process_tick = function (now, always_publish)\n\n local compute_capacity = function (maxConcurrent, running, reservoir)\n if maxConcurrent ~= nil and reservoir ~= nil then\n return math.min((maxConcurrent - running), reservoir)\n elseif maxConcurrent ~= nil then\n return maxConcurrent - running\n elseif reservoir ~= nil then\n return reservoir\n else\n return nil\n end\n end\n\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'running',\n 'reservoir',\n 'reservoirRefreshInterval',\n 'reservoirRefreshAmount',\n 'lastReservoirRefresh',\n 'reservoirIncreaseInterval',\n 'reservoirIncreaseAmount',\n 'reservoirIncreaseMaximum',\n 'lastReservoirIncrease',\n 'capacityPriorityCounter',\n 'clientTimeout'\n )\n local id = settings[1]\n local maxConcurrent = tonumber(settings[2])\n local running = tonumber(settings[3])\n local reservoir = tonumber(settings[4])\n local reservoirRefreshInterval = tonumber(settings[5])\n local reservoirRefreshAmount = tonumber(settings[6])\n local lastReservoirRefresh = tonumber(settings[7])\n local reservoirIncreaseInterval = tonumber(settings[8])\n local reservoirIncreaseAmount = tonumber(settings[9])\n local reservoirIncreaseMaximum = tonumber(settings[10])\n local lastReservoirIncrease = tonumber(settings[11])\n local capacityPriorityCounter = tonumber(settings[12])\n local clientTimeout = tonumber(settings[13])\n\n local initial_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n --\n -- Process 'running' changes\n --\n local expired = redis.call('zrangebyscore', job_expirations_key, '-inf', '('..now)\n\n if #expired > 0 then\n redis.call('zremrangebyscore', job_expirations_key, '-inf', '('..now)\n\n local flush_batch = function (batch, acc)\n local weights = redis.call('hmget', job_weights_key, unpack(batch))\n redis.call('hdel', job_weights_key, unpack(batch))\n local clients = redis.call('hmget', job_clients_key, unpack(batch))\n redis.call('hdel', job_clients_key, unpack(batch))\n\n -- Calculate sum of removed weights\n for i = 1, #weights do\n acc['total'] = acc['total'] + (tonumber(weights[i]) or 0)\n end\n\n -- Calculate sum of removed weights by client\n local client_weights = {}\n for i = 1, #clients do\n local removed = tonumber(weights[i]) or 0\n if removed > 0 then\n acc['client_weights'][clients[i]] = (acc['client_weights'][clients[i]] or 0) + removed\n end\n end\n end\n\n local acc = {\n ['total'] = 0,\n ['client_weights'] = {}\n }\n local batch_size = 1000\n\n -- Compute changes to Zsets and apply changes to Hashes\n for i = 1, #expired, batch_size do\n local batch = {}\n for j = i, math.min(i + batch_size - 1, #expired) do\n table.insert(batch, expired[j])\n end\n\n flush_batch(batch, acc)\n end\n\n -- Apply changes to Zsets\n if acc['total'] > 0 then\n redis.call('hincrby', settings_key, 'done', acc['total'])\n running = tonumber(redis.call('hincrby', settings_key, 'running', -acc['total']))\n end\n\n for client, weight in pairs(acc['client_weights']) do\n redis.call('zincrby', client_running_key, -weight, client)\n end\n end\n\n --\n -- Process 'reservoir' changes\n --\n local reservoirRefreshActive = reservoirRefreshInterval ~= nil and reservoirRefreshAmount ~= nil\n if reservoirRefreshActive and now >= lastReservoirRefresh + reservoirRefreshInterval then\n reservoir = reservoirRefreshAmount\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirRefresh', now\n )\n end\n\n local reservoirIncreaseActive = reservoirIncreaseInterval ~= nil and reservoirIncreaseAmount ~= nil\n if reservoirIncreaseActive and now >= lastReservoirIncrease + reservoirIncreaseInterval then\n local num_intervals = math.floor((now - lastReservoirIncrease) / reservoirIncreaseInterval)\n local incr = reservoirIncreaseAmount * num_intervals\n if reservoirIncreaseMaximum ~= nil then\n incr = math.min(incr, reservoirIncreaseMaximum - (reservoir or 0))\n end\n if incr > 0 then\n reservoir = (reservoir or 0) + incr\n end\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirIncrease', lastReservoirIncrease + (num_intervals * reservoirIncreaseInterval)\n )\n end\n\n --\n -- Clear unresponsive clients\n --\n local unresponsive = redis.call('zrangebyscore', client_last_seen_key, '-inf', (now - clientTimeout))\n local unresponsive_lookup = {}\n local terminated_clients = {}\n for i = 1, #unresponsive do\n unresponsive_lookup[unresponsive[i]] = true\n if tonumber(redis.call('zscore', client_running_key, unresponsive[i])) == 0 then\n table.insert(terminated_clients, unresponsive[i])\n end\n end\n if #terminated_clients > 0 then\n redis.call('zrem', client_running_key, unpack(terminated_clients))\n redis.call('hdel', client_num_queued_key, unpack(terminated_clients))\n redis.call('zrem', client_last_registered_key, unpack(terminated_clients))\n redis.call('zrem', client_last_seen_key, unpack(terminated_clients))\n end\n\n --\n -- Broadcast capacity changes\n --\n local final_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n if always_publish or (initial_capacity ~= nil and final_capacity == nil) then\n -- always_publish or was not unlimited, now unlimited\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n\n elseif initial_capacity ~= nil and final_capacity ~= nil and final_capacity > initial_capacity then\n -- capacity was increased\n -- send the capacity message to the limiter having the lowest number of running jobs\n -- the tiebreaker is the limiter having not registered a job in the longest time\n\n local lowest_concurrency_value = nil\n local lowest_concurrency_clients = {}\n local lowest_concurrency_last_registered = {}\n local client_concurrencies = redis.call('zrange', client_running_key, 0, -1, 'withscores')\n\n for i = 1, #client_concurrencies, 2 do\n local client = client_concurrencies[i]\n local concurrency = tonumber(client_concurrencies[i+1])\n\n if (\n lowest_concurrency_value == nil or lowest_concurrency_value == concurrency\n ) and (\n not unresponsive_lookup[client]\n ) and (\n tonumber(redis.call('hget', client_num_queued_key, client)) > 0\n ) then\n lowest_concurrency_value = concurrency\n table.insert(lowest_concurrency_clients, client)\n local last_registered = tonumber(redis.call('zscore', client_last_registered_key, client))\n table.insert(lowest_concurrency_last_registered, last_registered)\n end\n end\n\n if #lowest_concurrency_clients > 0 then\n local position = 1\n local earliest = lowest_concurrency_last_registered[1]\n\n for i,v in ipairs(lowest_concurrency_last_registered) do\n if v < earliest then\n position = i\n earliest = v\n end\n end\n\n local next_client = lowest_concurrency_clients[position]\n redis.call('publish', 'b_'..id,\n 'capacity-priority:'..(final_capacity or '')..\n ':'..next_client..\n ':'..capacityPriorityCounter\n )\n redis.call('hincrby', settings_key, 'capacityPriorityCounter', '1')\n else\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n end\n end\n\n return {\n ['capacity'] = final_capacity,\n ['running'] = running,\n ['reservoir'] = reservoir\n }\nend\n","queued.lua":"local clientTimeout = tonumber(redis.call('hget', settings_key, 'clientTimeout'))\nlocal valid_clients = redis.call('zrangebyscore', client_last_seen_key, (now - clientTimeout), 'inf')\nlocal client_queued = redis.call('hmget', client_num_queued_key, unpack(valid_clients))\n\nlocal sum = 0\nfor i = 1, #client_queued do\n sum = sum + tonumber(client_queued[i])\nend\n\nreturn sum\n","refresh_expiration.lua":"local refresh_expiration = function (now, nextRequest, groupTimeout)\n\n if groupTimeout ~= nil then\n local ttl = (nextRequest + groupTimeout) - now\n\n for i = 1, #KEYS do\n redis.call('pexpire', KEYS[i], ttl)\n end\n end\n\nend\n","refs.lua":"local settings_key = KEYS[1]\nlocal job_weights_key = KEYS[2]\nlocal job_expirations_key = KEYS[3]\nlocal job_clients_key = KEYS[4]\nlocal client_running_key = KEYS[5]\nlocal client_num_queued_key = KEYS[6]\nlocal client_last_registered_key = KEYS[7]\nlocal client_last_seen_key = KEYS[8]\n\nlocal now = tonumber(ARGV[1])\nlocal client = ARGV[2]\n\nlocal num_static_argv = 2\n","register.lua":"local index = ARGV[num_static_argv + 1]\nlocal weight = tonumber(ARGV[num_static_argv + 2])\nlocal expiration = tonumber(ARGV[num_static_argv + 3])\n\nlocal state = process_tick(now, false)\nlocal capacity = state['capacity']\nlocal reservoir = state['reservoir']\n\nlocal settings = redis.call('hmget', settings_key,\n 'nextRequest',\n 'minTime',\n 'groupTimeout'\n)\nlocal nextRequest = tonumber(settings[1])\nlocal minTime = tonumber(settings[2])\nlocal groupTimeout = tonumber(settings[3])\n\nif conditions_check(capacity, weight) then\n\n redis.call('hincrby', settings_key, 'running', weight)\n redis.call('hset', job_weights_key, index, weight)\n if expiration ~= nil then\n redis.call('zadd', job_expirations_key, now + expiration, index)\n end\n redis.call('hset', job_clients_key, index, client)\n redis.call('zincrby', client_running_key, weight, client)\n redis.call('hincrby', client_num_queued_key, client, -1)\n redis.call('zadd', client_last_registered_key, now, client)\n\n local wait = math.max(nextRequest - now, 0)\n local newNextRequest = now + wait + minTime\n\n if reservoir == nil then\n redis.call('hset', settings_key,\n 'nextRequest', newNextRequest\n )\n else\n reservoir = reservoir - weight\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'nextRequest', newNextRequest\n )\n end\n\n refresh_expiration(now, newNextRequest, groupTimeout)\n\n return {true, wait, reservoir}\n\nelse\n return {false}\nend\n","register_client.lua":"local queued = tonumber(ARGV[num_static_argv + 1])\n\n-- Could have been re-registered concurrently\nif not redis.call('zscore', client_last_seen_key, client) then\n redis.call('zadd', client_running_key, 0, client)\n redis.call('hset', client_num_queued_key, client, queued)\n redis.call('zadd', client_last_registered_key, 0, client)\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n\nreturn {}\n","running.lua":"return process_tick(now, false)['running']\n","submit.lua":"local queueLength = tonumber(ARGV[num_static_argv + 1])\nlocal weight = tonumber(ARGV[num_static_argv + 2])\n\nlocal capacity = process_tick(now, false)['capacity']\n\nlocal settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'highWater',\n 'nextRequest',\n 'strategy',\n 'unblockTime',\n 'penalty',\n 'minTime',\n 'groupTimeout'\n)\nlocal id = settings[1]\nlocal maxConcurrent = tonumber(settings[2])\nlocal highWater = tonumber(settings[3])\nlocal nextRequest = tonumber(settings[4])\nlocal strategy = tonumber(settings[5])\nlocal unblockTime = tonumber(settings[6])\nlocal penalty = tonumber(settings[7])\nlocal minTime = tonumber(settings[8])\nlocal groupTimeout = tonumber(settings[9])\n\nif maxConcurrent ~= nil and weight > maxConcurrent then\n return redis.error_reply('OVERWEIGHT:'..weight..':'..maxConcurrent)\nend\n\nlocal reachedHWM = (highWater ~= nil and queueLength == highWater\n and not (\n conditions_check(capacity, weight)\n and nextRequest - now <= 0\n )\n)\n\nlocal blocked = strategy == 3 and (reachedHWM or unblockTime >= now)\n\nif blocked then\n local computedPenalty = penalty\n if computedPenalty == nil then\n if minTime == 0 then\n computedPenalty = 5000\n else\n computedPenalty = 15 * minTime\n end\n end\n\n local newNextRequest = now + computedPenalty + minTime\n\n redis.call('hmset', settings_key,\n 'unblockTime', now + computedPenalty,\n 'nextRequest', newNextRequest\n )\n\n local clients_queued_reset = redis.call('hkeys', client_num_queued_key)\n local queued_reset = {}\n for i = 1, #clients_queued_reset do\n table.insert(queued_reset, clients_queued_reset[i])\n table.insert(queued_reset, 0)\n end\n redis.call('hmset', client_num_queued_key, unpack(queued_reset))\n\n redis.call('publish', 'b_'..id, 'blocked:')\n\n refresh_expiration(now, newNextRequest, groupTimeout)\nend\n\nif not blocked and not reachedHWM then\n redis.call('hincrby', client_num_queued_key, client, 1)\nend\n\nreturn {reachedHWM, blocked, strategy}\n","update_settings.lua":"local args = {'hmset', settings_key}\n\nfor i = num_static_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\nend\n\nredis.call(unpack(args))\n\nprocess_tick(now, true)\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n","validate_client.lua":"if not redis.call('zscore', client_last_seen_key, client) then\n return redis.error_reply('UNKNOWN_CLIENT')\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n","validate_keys.lua":"if not (redis.call('exists', settings_key) == 1) then\n return redis.error_reply('SETTINGS_KEY_NOT_FOUND')\nend\n"},Scripts$3=createCommonjsModule((function(e,t){var r,n,i;r={refs:(n=require$$0$2)["refs.lua"],validate_keys:n["validate_keys.lua"],validate_client:n["validate_client.lua"],refresh_expiration:n["refresh_expiration.lua"],process_tick:n["process_tick.lua"],conditions_check:n["conditions_check.lua"],get_time:n["get_time.lua"]},t.allKeys=function(e){return[`b_${e}_settings`,`b_${e}_job_weights`,`b_${e}_job_expirations`,`b_${e}_job_clients`,`b_${e}_client_running`,`b_${e}_client_num_queued`,`b_${e}_client_last_registered`,`b_${e}_client_last_seen`]},i={init:{keys:t.allKeys,headers:["process_tick"],refresh_expiration:!0,code:n["init.lua"]},group_check:{keys:t.allKeys,headers:[],refresh_expiration:!1,code:n["group_check.lua"]},register_client:{keys:t.allKeys,headers:["validate_keys"],refresh_expiration:!1,code:n["register_client.lua"]},blacklist_client:{keys:t.allKeys,headers:["validate_keys","validate_client"],refresh_expiration:!1,code:n["blacklist_client.lua"]},heartbeat:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["heartbeat.lua"]},update_settings:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:n["update_settings.lua"]},running:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["running.lua"]},queued:{keys:t.allKeys,headers:["validate_keys","validate_client"],refresh_expiration:!1,code:n["queued.lua"]},done:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["done.lua"]},check:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!1,code:n["check.lua"]},submit:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!0,code:n["submit.lua"]},register:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!0,code:n["register.lua"]},free:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:n["free.lua"]},current_reservoir:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["current_reservoir.lua"]},increment_reservoir:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:n["increment_reservoir.lua"]}},t.names=Object.keys(i),t.keys=function(e,t){return i[e].keys(t)},t.payload=function(e){var t;return t=i[e],Array.prototype.concat(r.refs,t.headers.map((function(e){return r[e]})),t.refresh_expiration?r.refresh_expiration:"",t.code).join("\n")}})),Events$4,RedisConnection$2,Scripts$2,parser$5;function asyncGeneratorStep$5(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$5(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$5(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$5(s,n,i,o,a,"throw",e)}o(void 0)}))}}parser$5=parser$8,Events$4=Events_1,Scripts$2=Scripts$3,RedisConnection$2=function(){class RedisConnection{constructor(options={}){parser$5.load(options,this.defaults,this),null==this.Redis&&(this.Redis=eval("require")("redis")),null==this.Events&&(this.Events=new Events$4(this)),this.terminated=!1,null==this.client&&(this.client=this.Redis.createClient(this.clientOptions)),this.subscriber=this.client.duplicate(),this.limiters={},this.shas={},this.ready=this.Promise.all([this._setup(this.client,!1),this._setup(this.subscriber,!0)]).then((()=>this._loadScripts())).then((()=>({client:this.client,subscriber:this.subscriber})))}_setup(e,t){return e.setMaxListeners(0),new this.Promise(((r,n)=>(e.on("error",(e=>this.Events.trigger("error",e))),t&&e.on("message",((e,t)=>{var r;return null!=(r=this.limiters[e])?r._store.onMessage(e,t):void 0})),e.ready?r():e.once("ready",r))))}_loadScript(e){return new this.Promise(((t,r)=>{var n;return n=Scripts$2.payload(e),this.client.multi([["script","load",n]]).exec(((n,i)=>null!=n?r(n):(this.shas[e]=i[0],t(i[0]))))}))}_loadScripts(){return this.Promise.all(Scripts$2.names.map((e=>this._loadScript(e))))}__runCommand__(e){var t=this;return _asyncToGenerator$5((function*(){return yield t.ready,new t.Promise(((r,n)=>t.client.multi([e]).exec_atomic((function(e,t){return null!=e?n(e):r(t[0])}))))}))()}__addLimiter__(e){return this.Promise.all([e.channel(),e.channel_client()].map((t=>new this.Promise(((r,n)=>{var i;return i=n=>{if(n===t)return this.subscriber.removeListener("subscribe",i),this.limiters[t]=e,r()},this.subscriber.on("subscribe",i),this.subscriber.subscribe(t)})))))}__removeLimiter__(e){var t=this;return this.Promise.all([e.channel(),e.channel_client()].map(function(){var e=_asyncToGenerator$5((function*(e){return t.terminated||(yield new t.Promise(((r,n)=>t.subscriber.unsubscribe(e,(function(t,i){return null!=t?n(t):i===e?r():void 0}))))),delete t.limiters[e]}));return function(t){return e.apply(this,arguments)}}()))}__scriptArgs__(e,t,r,n){var i;return i=Scripts$2.keys(e,t),[this.shas[e],i.length].concat(i,r,n)}__scriptFn__(e){return this.client.evalsha.bind(this.client)}disconnect(e=!0){var t,r,n,i;for(t=0,n=(i=Object.keys(this.limiters)).length;t(this._loadScripts(),{client:this.client,subscriber:this.subscriber})))}_setup(e,t){return e.setMaxListeners(0),new this.Promise(((r,n)=>(e.on("error",(e=>this.Events.trigger("error",e))),t&&e.on("message",((e,t)=>{var r;return null!=(r=this.limiters[e])?r._store.onMessage(e,t):void 0})),"ready"===e.status?r():e.once("ready",r))))}_loadScripts(){return Scripts$1.names.forEach((e=>this.client.defineCommand(e,{lua:Scripts$1.payload(e)})))}__runCommand__(e){var t=this;return _asyncToGenerator$4((function*(){yield t.ready;var r=_slicedToArray$3(yield t.client.pipeline([e]).exec(),1);return _slicedToArray$3(r[0],2)[1]}))()}__addLimiter__(e){return this.Promise.all([e.channel(),e.channel_client()].map((t=>new this.Promise(((r,n)=>this.subscriber.subscribe(t,(()=>(this.limiters[t]=e,r()))))))))}__removeLimiter__(e){var t=this;return[e.channel(),e.channel_client()].forEach(function(){var e=_asyncToGenerator$4((function*(e){return t.terminated||(yield t.subscriber.unsubscribe(e)),delete t.limiters[e]}));return function(t){return e.apply(this,arguments)}}())}__scriptArgs__(e,t,r,n){var i;return[(i=Scripts$1.keys(e,t)).length].concat(i,r,n)}__scriptFn__(e){return this.client[e].bind(this.client)}disconnect(e=!0){var t,r,n,i;for(t=0,n=(i=Object.keys(this.limiters)).length;t(this.clients=e,this.runScript("init",this.prepareInitSettings(this.clearDatastore))))).then((()=>this.connection.__addLimiter__(this.instance))).then((()=>this.runScript("register_client",[this.instance.queued()]))).then((()=>{var e;return"function"==typeof(e=this.heartbeat=setInterval((()=>this.runScript("heartbeat",[]).catch((e=>this.instance.Events.trigger("error",e)))),this.heartbeatInterval)).unref&&e.unref(),this.clients}))}__publish__(e){var t=this;return _asyncToGenerator$3((function*(){return(yield t.ready).client.publish(t.instance.channel(),`message:${e.toString()}`)}))()}onMessage(e,t){var r=this;return _asyncToGenerator$3((function*(){var e,n,i,s,o,a,c,l,u,p;try{c=t.indexOf(":");var d=[t.slice(0,c),t.slice(c+1)];if(i=d[1],"capacity"===(p=d[0]))return yield r.instance._drainAll(i.length>0?~~i:void 0);if("capacity-priority"===p){var h=_slicedToArray$2(i.split(":"),3);return u=h[0],l=h[1],n=h[2],e=u.length>0?~~u:void 0,l===r.clientId?(s=yield r.instance._drainAll(e),a=null!=e?e-(s||0):"",yield r.clients.client.publish(r.instance.channel(),`capacity-priority:${a}::${n}`)):""===l?(clearTimeout(r.capacityPriorityCounters[n]),delete r.capacityPriorityCounters[n],r.instance._drainAll(e)):r.capacityPriorityCounters[n]=setTimeout(_asyncToGenerator$3((function*(){var t;try{return delete r.capacityPriorityCounters[n],yield r.runScript("blacklist_client",[l]),yield r.instance._drainAll(e)}catch(e){return t=e,r.instance.Events.trigger("error",t)}})),1e3)}if("message"===p)return r.instance.Events.trigger("message",i);if("blocked"===p)return yield r.instance._dropAllQueued()}catch(e){return o=e,r.instance.Events.trigger("error",o)}}))()}__disconnect__(e){return clearInterval(this.heartbeat),this.sharedConnection?this.connection.__removeLimiter__(this.instance):this.connection.disconnect(e)}runScript(e,t){var r=this;return _asyncToGenerator$3((function*(){return"init"!==e&&"register_client"!==e&&(yield r.ready),new r.Promise(((n,i)=>{var s,o;return s=[Date.now(),r.clientId].concat(t),r.instance.Events.trigger("debug",`Calling Redis script: ${e}.lua`,s),o=r.connection.__scriptArgs__(e,r.originalId,s,(function(e,t){return null!=e?i(e):n(t)})),r.connection.__scriptFn__(e)(...o)})).catch((n=>"SETTINGS_KEY_NOT_FOUND"===n.message?"heartbeat"===e?r.Promise.resolve():r.runScript("init",r.prepareInitSettings(!1)).then((()=>r.runScript(e,t))):"UNKNOWN_CLIENT"===n.message?r.runScript("register_client",[r.instance.queued()]).then((()=>r.runScript(e,t))):r.Promise.reject(n)))}))()}prepareArray(e){var t,r,n,i;for(n=[],t=0,r=e.length;t(e[this.status[r]]=t,e)),{})}};var States_1=States$1,DLList,Sync$1;function asyncGeneratorStep$2(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$2(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$2(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$2(s,n,i,o,a,"throw",e)}o(void 0)}))}}DLList=DLList_1,Sync$1=class{constructor(e,t){this.schedule=this.schedule.bind(this),this.name=e,this.Promise=t,this._running=0,this._queue=new DLList}isEmpty(){return 0===this._queue.length}_tryToRun(){var e=this;return _asyncToGenerator$2((function*(){var t,r,n,i,s,o,a;if(e._running<1&&e._queue.length>0){e._running++;var c=e._queue.shift();return a=c.task,t=c.args,s=c.resolve,i=c.reject,r=yield _asyncToGenerator$2((function*(){try{return o=yield a(...t),function(){return s(o)}}catch(e){return n=e,function(){return i(n)}}}))(),e._running--,e._tryToRun(),r()}}))()}schedule(e,...t){var r,n,i;return i=n=null,r=new this.Promise((function(e,t){return i=e,n=t})),this._queue.push({task:e,args:t,resolve:i,reject:n}),this._tryToRun(),r}};var Sync_1=Sync$1,version="2.19.5",require$$8={version:version},require$$0$1=Bottleneck_1,Events$2,Group,IORedisConnection,RedisConnection,Scripts,parser$2;function _slicedToArray$1(e,t){return _arrayWithHoles$1(e)||_iterableToArrayLimit$1(e,t)||_nonIterableRest$1()}function _nonIterableRest$1(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArrayLimit$1(e,t){var r=[],n=!0,i=!1,s=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==a.return||a.return()}finally{if(i)throw s}}return r}function _arrayWithHoles$1(e){if(Array.isArray(e))return e}function asyncGeneratorStep$1(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$1(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$1(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$1(s,n,i,o,a,"throw",e)}o(void 0)}))}}parser$2=parser$8,Events$2=Events_1,RedisConnection=RedisConnection_1,IORedisConnection=IORedisConnection_1,Scripts=Scripts$3,Group=function(){class e{constructor(e={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=e,parser$2.load(this.limiterOptions,this.defaults,this),this.Events=new Events$2(this),this.instances={},this.Bottleneck=require$$0$1,this._startAutoCleanup(),this.sharedConnection=null!=this.connection,null==this.connection&&("redis"===this.limiterOptions.datastore?this.connection=new RedisConnection(Object.assign({},this.limiterOptions,{Events:this.Events})):"ioredis"===this.limiterOptions.datastore&&(this.connection=new IORedisConnection(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(e=""){var t;return null!=(t=this.instances[e])?t:(()=>{var t;return t=this.instances[e]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${e}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",t,e),t})()}deleteKey(e=""){var t=this;return _asyncToGenerator$1((function*(){var r,n;return n=t.instances[e],t.connection&&(r=yield t.connection.__runCommand__(["del",...Scripts.allKeys(`${t.id}-${e}`)])),null!=n&&(delete t.instances[e],yield n.disconnect()),null!=n||r>0}))()}limiters(){var e,t,r,n;for(e in r=[],t=this.instances)n=t[e],r.push({key:e,limiter:n});return r}keys(){return Object.keys(this.instances)}clusterKeys(){var e=this;return _asyncToGenerator$1((function*(){var t,r,n,i,s,o,a,c;if(null==e.connection)return e.Promise.resolve(e.keys());for(o=[],t=null,c=`b_${e.id}-`.length,r="_settings".length;0!==t;){var l=_slicedToArray$1(yield e.connection.__runCommand__(["scan",null!=t?t:0,"match",`b_${e.id}-*_settings`,"count",1e4]),2);for(t=~~l[0],i=0,a=(n=l[1]).length;ithis._resolve=e))}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(e){var t;return this._arr.push(e),t=this._promise,this._arr.length===this.maxSize?this._flush():null!=this.maxTime&&1===this._arr.length&&(this._timeout=setTimeout((()=>this._flush()),this.maxTime)),t}}return e.prototype.defaults={maxTime:null,maxSize:null,Promise:Promise},e}.call(void 0);var Batcher_1=Batcher;function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _iterableToArrayLimit(e,t){var r=[],n=!0,i=!1,s=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==a.return||a.return()}finally{if(i)throw s}}return r}function _toArray(e){return _arrayWithHoles(e)||_iterableToArray(e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithHoles(e){if(Array.isArray(e))return e}function asyncGeneratorStep(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep(s,n,i,o,a,"throw",e)}o(void 0)}))}}var Bottleneck,DEFAULT_PRIORITY,Events,Job,LocalDatastore,NUM_PRIORITIES,Queues,RedisDatastore,States,Sync,parser,splice=[].splice;NUM_PRIORITIES=10,DEFAULT_PRIORITY=5,parser=parser$8,Queues=Queues_1,Job=Job_1,LocalDatastore=LocalDatastore_1,RedisDatastore=RedisDatastore_1,Events=Events_1,States=States_1,Sync=Sync_1,Bottleneck=function(){class e{constructor(t={},...r){var n,i;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(t,r),parser.load(t,this.instanceDefaults,this),this._queues=new Queues(NUM_PRIORITIES),this._scheduled={},this._states=new States(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new Events(this),this._submitLock=new Sync("submit",this.Promise),this._registerLock=new Sync("register",this.Promise),i=parser.load(t,this.storeDefaults,{}),this._store=function(){if("redis"===this.datastore||"ioredis"===this.datastore||null!=this.connection)return n=parser.load(t,this.redisStoreDefaults,{}),new RedisDatastore(this,i,n);if("local"===this.datastore)return n=parser.load(t,this.localStoreDefaults,{}),new LocalDatastore(this,i,n);throw new e.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",(()=>{var e;return null!=(e=this._store.heartbeat)&&"function"==typeof e.ref?e.ref():void 0})),this._queues.on("zero",(()=>{var e;return null!=(e=this._store.heartbeat)&&"function"==typeof e.unref?e.unref():void 0}))}_validateOptions(t,r){if(null==t||"object"!=typeof t||0!==r.length)throw new e.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(e){return this._store.__publish__(e)}disconnect(e=!0){return this._store.__disconnect__(e)}chain(e){return this._limiter=e,this}queued(e){return this._queues.queued(e)}clusterQueued(){return this._store.__queued__()}empty(){return 0===this.queued()&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(e){return this._states.jobStatus(e)}jobs(e){return this._states.statusJobs(e)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(e=1){return this._store.__check__(e)}_clearGlobalState(e){return null!=this._scheduled[e]&&(clearTimeout(this._scheduled[e].expiration),delete this._scheduled[e],!0)}_free(e,t,r,n){var i=this;return _asyncToGenerator((function*(){var t,s;try{if(s=(yield i._store.__free__(e,r.weight)).running,i.Events.trigger("debug",`Freed ${r.id}`,n),0===s&&i.empty())return i.Events.trigger("idle")}catch(e){return t=e,i.Events.trigger("error",t)}}))()}_run(e,t,r){var n,i,s;return t.doRun(),n=this._clearGlobalState.bind(this,e),s=this._run.bind(this,e,t),i=this._free.bind(this,e,t),this._scheduled[e]={timeout:setTimeout((()=>t.doExecute(this._limiter,n,s,i)),r),expiration:null!=t.options.expiration?setTimeout((function(){return t.doExpire(n,s,i)}),r+t.options.expiration):void 0,job:t}}_drainOne(e){return this._registerLock.schedule((()=>{var t,r,n,i,s;if(0===this.queued())return this.Promise.resolve(null);s=this._queues.getFirst();var o=n=s.first();return i=o.options,t=o.args,null!=e&&i.weight>e?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${i.id}`,{args:t,options:i}),r=this._randomIndex(),this._store.__register__(r,i.weight,i.expiration).then((({success:e,wait:o,reservoir:a})=>{var c;return this.Events.trigger("debug",`Drained ${i.id}`,{success:e,args:t,options:i}),e?(s.shift(),(c=this.empty())&&this.Events.trigger("empty"),0===a&&this.Events.trigger("depleted",c),this._run(r,n,o),this.Promise.resolve(i.weight)):this.Promise.resolve(null)})))}))}_drainAll(e,t=0){return this._drainOne(e).then((r=>{var n;return null!=r?(n=null!=e?e-r:e,this._drainAll(n,t+r)):this.Promise.resolve(t)})).catch((e=>this.Events.trigger("error",e)))}_dropAllQueued(e){return this._queues.shiftAll((function(t){return t.doDrop({message:e})}))}stop(t={}){var r,n;return t=parser.load(t,this.stopDefaults),n=e=>{var t;return t=()=>{var t;return(t=this._states.counts)[0]+t[1]+t[2]+t[3]===e},new this.Promise(((e,r)=>t()?e():this.on("done",(()=>{if(t())return this.removeAllListeners("done"),e()}))))},r=t.dropWaitingJobs?(this._run=function(e,r){return r.doDrop({message:t.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule((()=>this._submitLock.schedule((()=>{var e,r,i;for(e in r=this._scheduled)i=r[e],"RUNNING"===this.jobStatus(i.job.options.id)&&(clearTimeout(i.timeout),clearTimeout(i.expiration),i.job.doDrop({message:t.dropErrorMessage}));return this._dropAllQueued(t.dropErrorMessage),n(0)}))))):this.schedule({priority:NUM_PRIORITIES-1,weight:0},(()=>n(1))),this._receive=function(r){return r._reject(new e.prototype.BottleneckError(t.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new e.prototype.BottleneckError("stop() has already been called")),r}_addToQueue(t){var r=this;return _asyncToGenerator((function*(){var n,i,s,o,a,c,l;n=t.args,o=t.options;try{var u=yield r._store.__submit__(r.queued(),o.weight);a=u.reachedHWM,i=u.blocked,l=u.strategy}catch(e){return s=e,r.Events.trigger("debug",`Could not queue ${o.id}`,{args:n,options:o,error:s}),t.doDrop({error:s}),!1}return i?(t.doDrop(),!0):a&&(null!=(c=l===e.prototype.strategy.LEAK?r._queues.shiftLastFrom(o.priority):l===e.prototype.strategy.OVERFLOW_PRIORITY?r._queues.shiftLastFrom(o.priority+1):l===e.prototype.strategy.OVERFLOW?t:void 0)&&c.doDrop(),null==c||l===e.prototype.strategy.OVERFLOW)?(null==c&&t.doDrop(),a):(t.doQueue(a,i),r._queues.push(t),yield r._drainAll(),a)}))()}_receive(t){return null!=this._states.jobStatus(t.options.id)?(t._reject(new e.prototype.BottleneckError(`A job with the same id already exists (id=${t.options.id})`)),!1):(t.doReceive(),this._submitLock.schedule(this._addToQueue,t))}submit(...e){var t,r,n,i,s,o,a,c;"function"==typeof e[0]?(s=_toArray(e),r=s[0],e=s.slice(1),o=_slicedToArray(splice.call(e,-1),1),t=o[0],i=parser.load({},this.jobDefaults)):(i=(a=_toArray(e))[0],r=a[1],e=a.slice(2),c=_slicedToArray(splice.call(e,-1),1),t=c[0],i=parser.load(i,this.jobDefaults));return(n=new Job(((...e)=>new this.Promise((function(t,n){return r(...e,(function(...e){return(null!=e[0]?n:t)(e)}))}))),e,i,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise)).promise.then((function(e){return"function"==typeof t?t(...e):void 0})).catch((function(e){return Array.isArray(e)?"function"==typeof t?t(...e):void 0:"function"==typeof t?t(e):void 0})),this._receive(n)}schedule(...e){var t,r,n;if("function"==typeof e[0]){var i=_toArray(e);n=i[0],e=i.slice(1),r={}}else{var s=_toArray(e);r=s[0],n=s[1],e=s.slice(2)}return t=new Job(n,e,r,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(t),t.promise}wrap(e){var t,r;return t=this.schedule.bind(this),(r=function(...r){return t(e.bind(this),...r)}).withOptions=function(r,...n){return t(r,e,...n)},r}updateSettings(e={}){var t=this;return _asyncToGenerator((function*(){return yield t._store.__updateSettings__(parser.overwrite(e,t.storeDefaults)),parser.overwrite(e,t.instanceDefaults,t),t}))()}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(e=0){return this._store.__incrementReservoir__(e)}}return e.default=e,e.Events=Events,e.version=e.prototype.version=require$$8.version,e.strategy=e.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},e.BottleneckError=e.prototype.BottleneckError=BottleneckError_1,e.Group=e.prototype.Group=Group_1,e.RedisConnection=e.prototype.RedisConnection=RedisConnection_1,e.IORedisConnection=e.prototype.IORedisConnection=IORedisConnection_1,e.Batcher=e.prototype.Batcher=Batcher_1,e.prototype.jobDefaults={priority:DEFAULT_PRIORITY,weight:1,expiration:null,id:""},e.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:e.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},e.prototype.localStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:250},e.prototype.redisStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},e.prototype.instanceDefaults={datastore:"local",connection:null,id:"",rejectOnDrop:!0,trackDoneStatus:!1,Promise:Promise},e.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},e}.call(void 0);var Bottleneck_1=Bottleneck,lib$1=require$$0$1,shams=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0},origSymbol="undefined"!=typeof Symbol&&Symbol,hasSymbols$1=function(){return"function"==typeof origSymbol&&("function"==typeof Symbol&&("symbol"==typeof origSymbol("foo")&&("symbol"==typeof Symbol("bar")&&shams())))},ERROR_MESSAGE="Function.prototype.bind called on incompatible ",slice=Array.prototype.slice,toStr$1=Object.prototype.toString,funcType="[object Function]",implementation=function(e){var t=this;if("function"!=typeof t||toStr$1.call(t)!==funcType)throw new TypeError(ERROR_MESSAGE+t);for(var r,n=slice.call(arguments,1),i=function(){if(this instanceof r){var i=t.apply(this,n.concat(slice.call(arguments)));return Object(i)===i?i:this}return t.apply(e,n.concat(slice.call(arguments)))},s=Math.max(0,t.length-n.length),o=[],a=0;a1&&"boolean"!=typeof t)throw new $TypeError$1('"allowMissing" argument must be a boolean');var r=stringToPath(e),n=r.length>0?r[0]:"",i=getBaseIntrinsic("%"+n+"%",t),s=i.name,o=i.value,a=!1,c=i.alias;c&&(n=c[0],$spliceApply(r,$concat([0,1],c)));for(var l=1,u=!0;l=r.length){var y=$gOPD(o,p);o=(u=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:o[p]}else u=src(o,p),o=o[p];u&&!a&&(INTRINSICS[s]=o)}}return o},callBind=createCommonjsModule((function(e){var t=getIntrinsic("%Function.prototype.apply%"),r=getIntrinsic("%Function.prototype.call%"),n=getIntrinsic("%Reflect.apply%",!0)||functionBind.call(r,t),i=getIntrinsic("%Object.getOwnPropertyDescriptor%",!0),s=getIntrinsic("%Object.defineProperty%",!0),o=getIntrinsic("%Math.max%");if(s)try{s({},"a",{value:1})}catch(e){s=null}e.exports=function(e){var t=n(functionBind,r,arguments);if(i&&s){var a=i(t,"length");a.configurable&&s(t,"length",{value:1+o(0,e.length-(arguments.length-1))})}return t};var a=function(){return n(functionBind,t,arguments)};s?s(e.exports,"apply",{value:a}):e.exports.apply=a})),$indexOf=callBind(getIntrinsic("String.prototype.indexOf")),callBound=function(e,t){var r=getIntrinsic(e,!!t);return"function"==typeof r&&$indexOf(e,".prototype.")>-1?callBind(r):r},util_inspect=require$$0__default.default.inspect,hasMap="function"==typeof Map&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize=hasMap&&mapSizeDescriptor&&"function"==typeof mapSizeDescriptor.get?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet="function"==typeof Set&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&"function"==typeof setSizeDescriptor.get?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap="function"==typeof WeakMap&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet="function"==typeof WeakSet&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef="function"==typeof WeakRef&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString=Object.prototype.toString,functionToString=Function.prototype.toString,match=String.prototype.match,bigIntValueOf="function"==typeof BigInt?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,hasShammedSymbols="function"==typeof Symbol&&"object"==typeof Symbol.iterator,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null),inspectCustom=util_inspect.custom,inspectSymbol=inspectCustom&&isSymbol(inspectCustom)?inspectCustom:null,toStringTag="function"==typeof Symbol&&void 0!==Symbol.toStringTag?Symbol.toStringTag:null,objectInspect=function e(t,r,n,i){var s=r||{};if(has$3(s,"quoteStyle")&&"single"!==s.quoteStyle&&"double"!==s.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has$3(s,"maxStringLength")&&("number"==typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var o=!has$3(s,"customInspect")||s.customInspect;if("boolean"!=typeof o&&"symbol"!==o)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has$3(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('options "indent" must be "\\t", an integer > 0, or `null`');if(void 0===t)return"undefined";if(null===t)return"null";if("boolean"==typeof t)return t?"true":"false";if("string"==typeof t)return inspectString(t,s);if("number"==typeof t)return 0===t?1/0/t>0?"0":"-0":String(t);if("bigint"==typeof t)return String(t)+"n";var a=void 0===s.depth?5:s.depth;if(void 0===n&&(n=0),n>=a&&a>0&&"object"==typeof t)return isArray$3(t)?"[Array]":"[Object]";var c=getIndent(s,n);if(void 0===i)i=[];else if(indexOf(i,t)>=0)return"[Circular]";function l(t,r,o){if(r&&(i=i.slice()).push(r),o){var a={depth:s.depth};return has$3(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),e(t,a,n+1,i)}return e(t,s,n+1,i)}if("function"==typeof t){var u=nameOf(t),p=arrObjKeys(t,l);return"[Function"+(u?": "+u:" (anonymous)")+"]"+(p.length>0?" { "+p.join(", ")+" }":"")}if(isSymbol(t)){var d=hasShammedSymbols?String(t).replace(/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(t);return"object"!=typeof t||hasShammedSymbols?d:markBoxed(d)}if(isElement(t)){for(var h="<"+String(t.nodeName).toLowerCase(),y=t.attributes||[],f=0;f"}if(isArray$3(t)){if(0===t.length)return"[]";var _=arrObjKeys(t,l);return c&&!singleLineValues(_)?"["+indentedJoin(_,c)+"]":"[ "+_.join(", ")+" ]"}if(isError(t)){var m=arrObjKeys(t,l);return 0===m.length?"["+String(t)+"]":"{ ["+String(t)+"] "+m.join(", ")+" }"}if("object"==typeof t&&o){if(inspectSymbol&&"function"==typeof t[inspectSymbol])return t[inspectSymbol]();if("symbol"!==o&&"function"==typeof t.inspect)return t.inspect()}if(isMap(t)){var g=[];return mapForEach.call(t,(function(e,r){g.push(l(r,t,!0)+" => "+l(e,t))})),collectionOf("Map",mapSize.call(t),g,c)}if(isSet(t)){var v=[];return setForEach.call(t,(function(e){v.push(l(e,t))})),collectionOf("Set",setSize.call(t),v,c)}if(isWeakMap(t))return weakCollectionOf("WeakMap");if(isWeakSet(t))return weakCollectionOf("WeakSet");if(isWeakRef(t))return weakCollectionOf("WeakRef");if(isNumber(t))return markBoxed(l(Number(t)));if(isBigInt(t))return markBoxed(l(bigIntValueOf.call(t)));if(isBoolean(t))return markBoxed(booleanValueOf.call(t));if(isString(t))return markBoxed(l(String(t)));if(!isDate(t)&&!isRegExp$1(t)){var b=arrObjKeys(t,l),w=gPO?gPO(t)===Object.prototype:t instanceof Object||t.constructor===Object,$=t instanceof Object?"":"null prototype",S=!w&&toStringTag&&Object(t)===t&&toStringTag in t?toStr(t).slice(8,-1):$?"Object":"",k=(w||"function"!=typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(S||$?"["+[].concat(S||[],$||[]).join(": ")+"] ":"");return 0===b.length?k+"{}":c?k+"{"+indentedJoin(b,c)+"}":k+"{ "+b.join(", ")+" }"}return String(t)};function wrapQuotes(e,t,r){var n="double"===(r.quoteStyle||t)?'"':"'";return n+e+n}function quote(e){return String(e).replace(/"/g,""")}function isArray$3(e){return!("[object Array]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isDate(e){return!("[object Date]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isRegExp$1(e){return!("[object RegExp]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isError(e){return!("[object Error]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isString(e){return!("[object String]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isNumber(e){return!("[object Number]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isBoolean(e){return!("[object Boolean]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isSymbol(e){if(hasShammedSymbols)return e&&"object"==typeof e&&e instanceof Symbol;if("symbol"==typeof e)return!0;if(!e||"object"!=typeof e||!symToString)return!1;try{return symToString.call(e),!0}catch(e){}return!1}function isBigInt(e){if(!e||"object"!=typeof e||!bigIntValueOf)return!1;try{return bigIntValueOf.call(e),!0}catch(e){}return!1}var hasOwn=Object.prototype.hasOwnProperty||function(e){return e in this};function has$3(e,t){return hasOwn.call(e,t)}function toStr(e){return objectToString.call(e)}function nameOf(e){if(e.name)return e.name;var t=match.call(functionToString.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}function indexOf(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;rt.maxStringLength){var r=e.length-t.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return inspectString(e.slice(0,t.maxStringLength),t)+n}return wrapQuotes(e.replace(/(['\\])/g,"\\$1").replace(/[\x00-\x1f]/g,lowbyte),"single",t)}function lowbyte(e){var t=e.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return r?"\\"+r:"\\x"+(t<16?"0":"")+t.toString(16).toUpperCase()}function markBoxed(e){return"Object("+e+")"}function weakCollectionOf(e){return e+" { ? }"}function collectionOf(e,t,r,n){return e+" ("+t+") {"+(n?indentedJoin(r,n):r.join(", "))+"}"}function singleLineValues(e){for(var t=0;t=0)return!1;return!0}function getIndent(e,t){var r;if("\t"===e.indent)r="\t";else{if(!("number"==typeof e.indent&&e.indent>0))return null;r=Array(e.indent+1).join(" ")}return{base:r,prev:Array(t+1).join(r)}}function indentedJoin(e,t){if(0===e.length)return"";var r="\n"+t.prev+t.base;return r+e.join(","+r)+"\n"+t.prev}function arrObjKeys(e,t){var r=isArray$3(e),n=[];if(r){n.length=e.length;for(var i=0;i1;){var t=e.pop(),r=t.obj[t.prop];if(isArray$2(r)){for(var n=[],i=0;i=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||i===formats.RFC1738&&(40===c||41===c)?o+=s.charAt(a):c<128?o+=hexTable[c]:c<2048?o+=hexTable[192|c>>6]+hexTable[128|63&c]:c<55296||c>=57344?o+=hexTable[224|c>>12]+hexTable[128|c>>6&63]+hexTable[128|63&c]:(a+=1,c=65536+((1023&c)<<10|1023&s.charCodeAt(a)),o+=hexTable[240|c>>18]+hexTable[128|c>>12&63]+hexTable[128|c>>6&63]+hexTable[128|63&c])}return o},compact=function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],n=0;n0?_.join(",")||null:void 0}];else if(isArray$1(a))m=a;else{var v=Object.keys(_);m=c?v.sort(c):v}for(var b=0;b0?d+p:""},has=Object.prototype.hasOwnProperty,isArray=Array.isArray,defaults={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:utils.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},interpretNumericEntities=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},parseArrayValue=function(e,t){return e&&"string"==typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function(e,t){var r,n={},i=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,s=t.parameterLimit===1/0?void 0:t.parameterLimit,o=i.split(t.delimiter,s),a=-1,c=t.charset;if(t.charsetSentinel)for(r=0;r-1&&(u=isArray(u)?[u]:u),has.call(n,l)?n[l]=utils.combine(n[l],u):n[l]=u}return n},parseObject=function(e,t,r,n){for(var i=n?t:parseArrayValue(t,r),s=e.length-1;s>=0;--s){var o,a=e[s];if("[]"===a&&r.parseArrays)o=[].concat(i);else{o=r.plainObjects?Object.create(null):{};var c="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,l=parseInt(c,10);r.parseArrays||""!==c?!isNaN(l)&&a!==c&&String(l)===c&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(o=[])[l]=i:o[c]=i:o={0:i}}i=o}return i},parseKeys=function(e,t,r,n){if(e){var i=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,s=/(\[[^[\]]*])/g,o=r.depth>0&&/(\[[^[\]]*])/.exec(i),a=o?i.slice(0,o.index):i,c=[];if(a){if(!r.plainObjects&&has.call(Object.prototype,a)&&!r.allowPrototypes)return;c.push(a)}for(var l=0;r.depth>0&&null!==(o=s.exec(i))&&l`wss://stream.data.alpaca.markets/v2/${e}`}};function account(e){if(e)try{return{...e,raw:()=>e,buying_power:number(e.buying_power),regt_buying_power:number(e.regt_buying_power),daytrading_buying_power:number(e.daytrading_buying_power),cash:number(e.cash),created_at:new Date(e.created_at),portfolio_value:number(e.portfolio_value),multiplier:number(e.multiplier),equity:number(e.equity),last_equity:number(e.last_equity),long_market_value:number(e.long_market_value),short_market_value:number(e.short_market_value),initial_margin:number(e.initial_margin),maintenance_margin:number(e.maintenance_margin),last_maintenance_margin:number(e.last_maintenance_margin),sma:number(e.sma),status:e.status}}catch(e){throw new Error(`Account parsing failed. ${e.message}`)}}function clock(e){if(e)try{return{raw:()=>e,timestamp:new Date(e.timestamp),is_open:e.is_open,next_open:new Date(e.next_open),next_close:new Date(e.next_close)}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function order(e){if(e)try{return{...e,raw:()=>e,created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),submitted_at:new Date(e.submitted_at),filled_at:new Date(e.filled_at),expired_at:new Date(e.expired_at),canceled_at:new Date(e.canceled_at),failed_at:new Date(e.failed_at),replaced_at:new Date(e.replaced_at),qty:number(e.qty),filled_qty:number(e.filled_qty),type:e.type,side:e.side,time_in_force:e.time_in_force,limit_price:number(e.limit_price),stop_price:number(e.stop_price),filled_avg_price:number(e.filled_avg_price),status:e.status,legs:orders(e.legs),trail_price:number(e.trail_price),trail_percent:number(e.trail_percent),hwm:number(e.hwm),order_class:e.order_class}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function orders(e){return e?e.map((e=>order(e))):void 0}function canceled_order(e){if(!e)return;let t=e.body;delete e.body;try{return{...e,order:{...t,raw:()=>t,created_at:new Date(t.created_at),updated_at:new Date(t.updated_at),submitted_at:new Date(t.submitted_at),filled_at:new Date(t.filled_at),expired_at:new Date(t.expired_at),canceled_at:new Date(t.canceled_at),failed_at:new Date(t.failed_at),replaced_at:new Date(t.replaced_at),qty:number(t.qty),filled_qty:number(t.filled_qty),type:t.type,side:t.side,time_in_force:t.time_in_force,limit_price:number(t.limit_price),stop_price:number(t.stop_price),filled_avg_price:number(t.filled_avg_price),status:t.status,legs:orders(t.legs),trail_price:number(t.trail_price),trail_percent:number(t.trail_percent),hwm:number(t.hwm),order_class:t.order_class}}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function canceled_orders(e){return e?e.map((e=>canceled_order(e))):void 0}function position(e){if(e)try{return{...e,raw:()=>e,avg_entry_price:number(e.avg_entry_price),qty:number(e.qty),side:e.side,market_value:number(e.market_value),cost_basis:number(e.cost_basis),unrealized_pl:number(e.unrealized_pl),unrealized_plpc:number(e.unrealized_plpc),unrealized_intraday_pl:number(e.unrealized_intraday_pl),unrealized_intraday_plpc:number(e.unrealized_intraday_plpc),current_price:number(e.current_price),lastday_price:number(e.lastday_price),change_today:number(e.change_today)}}catch(e){throw new Error(`Position parsing failed. ${e.message}`)}}function positions(e){return e?e.map((e=>position(e))):void 0}function tradeActivity(e){if(e)try{return{...e,raw:()=>e,cum_qty:number(e.cum_qty),leaves_qty:number(e.leaves_qty),price:number(e.price),qty:number(e.qty),side:e.side,type:e.type}}catch(e){throw new Error(`TradeActivity parsing failed. ${e.message}`)}}function nonTradeActivity(e){if(e)try{return{...e,raw:()=>e,net_amount:number(e.net_amount),qty:number(e.qty),per_share_amount:number(e.per_share_amount)}}catch(e){throw new Error(`NonTradeActivity parsing failed. ${e.message}`)}}function activities(e){if(e)try{return e.map((e=>"FILL"===e.activity_type?tradeActivity(e):nonTradeActivity(e)))}catch(e){throw new Error(`Activity parsing failed. ${e.message}`)}}function pageOfTrades(e){if(e)try{return{raw:()=>e,trades:(null==e.trades?[]:e.trades).map((e=>({raw:()=>e,...e,t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function pageOfQuotes(e){if(e)try{return{raw:()=>e,quotes:(null==e.quotes?[]:e.quotes).map((e=>({raw:()=>e,...e,t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function pageOfBars(e){if(e)try{return{raw:()=>e,bars:(null==e.bars?[]:e.bars).map((e=>({raw:()=>e,...e,t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function snapshot(e){if(e)try{return{...e,raw:()=>e,latestTrade:e.latestTrade?{...e.latestTrade,t:new Date(e.latestTrade.t)}:null,latestQuote:e.latestQuote?{...e.latestQuote,t:new Date(e.latestQuote.t)}:null,minuteBar:e.minuteBar?{...e.minuteBar,t:new Date(e.minuteBar.t)}:null,dailyBar:e.dailyBar?{...e.dailyBar,t:new Date(e.dailyBar.t)}:null,prevDailyBar:e.prevDailyBar?{...e.prevDailyBar,t:new Date(e.prevDailyBar.t)}:null}}catch(e){throw new Error(`Snapshot parsing failed "${e.message}"`)}}function snapshots(e){let t={};for(let[r,n]of Object.entries(e))t[r]=snapshot(n);return t}function number(e){if(void 0===e||null==e)return e;const t=parseFloat(e);return Number.isNaN(t)?null:t}function trade_update(e){if(e)return{raw:()=>e,event:e.event,execution_id:e.execution_id,order:order(e.order),...e.event_id&&{event_id:number(e.event_id)},...e.at&&{at:new Date(e.at)},...e.timestamp&&{timestamp:new Date(e.timestamp)},...e.position_qty&&{position_qty:number(e.position_qty)},...e.price&&{price:number(e.price)},...e.qty&&{qty:number(e.qty)}}}var parse={account:account,activities:activities,clock:clock,nonTradeActivity:nonTradeActivity,order:order,orders:orders,canceled_orders:canceled_orders,position:position,positions:positions,tradeActivity:tradeActivity,pageOfTrades:pageOfTrades,pageOfQuotes:pageOfQuotes,pageOfBars:pageOfBars,snapshot:snapshot,snapshots:snapshots,trade_update:trade_update};const unifetch="undefined"!=typeof fetch?fetch:browser$1;class AlpacaClient{params;limiter=new lib$1({reservoir:200,reservoirRefreshAmount:200,reservoirRefreshInterval:6e4,maxConcurrent:1,minTime:200});constructor(e){if(this.params=e,"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),"access_token"in e.credentials&&("key"in e.credentials||"secret"in e.credentials))throw new Error("can't create client with both default and oauth credentials")}async isAuthenticated(){try{return await this.getAccount(),!0}catch{return!1}}async getAccount(){return parse.account(await this.request({method:"GET",url:`${urls.rest.account}/account`}))}async getOrder(e){return parse.order(await this.request({method:"GET",url:`${urls.rest.account}/orders/${e.order_id||e.client_order_id}`,data:{nested:e.nested}}))}async getOrders(e={}){return parse.orders(await this.request({method:"GET",url:`${urls.rest.account}/orders`,data:{...e,symbols:e.symbols?e.symbols.join(","):void 0}}))}async placeOrder(e){return parse.order(await this.request({method:"POST",url:`${urls.rest.account}/orders`,data:e}))}async replaceOrder(e){return parse.order(await this.request({method:"PATCH",url:`${urls.rest.account}/orders/${e.order_id}`,data:e}))}cancelOrder(e){return this.request({method:"DELETE",url:`${urls.rest.account}/orders/${e.order_id}`,isJSON:!1})}async cancelOrders(){return parse.canceled_orders(await this.request({method:"DELETE",url:`${urls.rest.account}/orders`}))}async getPosition(e){return parse.position(await this.request({method:"GET",url:`${urls.rest.account}/positions/${e.symbol}`}))}async getPositions(){return parse.positions(await this.request({method:"GET",url:`${urls.rest.account}/positions`}))}async closePosition(e){return parse.order(await this.request({method:"DELETE",url:`${urls.rest.account}/positions/${e.symbol}`,data:e}))}async closePositions(e){return parse.orders(await this.request({method:"DELETE",url:`${urls.rest.account}/positions?cancel_orders=${JSON.stringify(e.cancel_orders??!1)}`}))}getAsset(e){return this.request({method:"GET",url:`${urls.rest.account}/assets/${e.asset_id_or_symbol}`})}getAssets(e){return this.request({method:"GET",url:`${urls.rest.account}/assets`,data:e})}getWatchlist(e){return this.request({method:"GET",url:`${urls.rest.account}/watchlists/${e.uuid}`})}getWatchlists(){return this.request({method:"GET",url:`${urls.rest.account}/watchlists`})}createWatchlist(e){return this.request({method:"POST",url:`${urls.rest.account}/watchlists`,data:e})}updateWatchlist(e){return this.request({method:"PUT",url:`${urls.rest.account}/watchlists/${e.uuid}`,data:e})}addToWatchlist(e){return this.request({method:"POST",url:`${urls.rest.account}/watchlists/${e.uuid}`,data:e})}removeFromWatchlist(e){return this.request({method:"DELETE",url:`${urls.rest.account}/watchlists/${e.uuid}/${e.symbol}`})}deleteWatchlist(e){return this.request({method:"DELETE",url:`${urls.rest.account}/watchlists/${e.uuid}`})}getCalendar(e){return this.request({method:"GET",url:`${urls.rest.account}/calendar`,data:e})}getNews(e){return"symbols"in e&&Array.isArray(e.symbols)&&(e.symbols=e.symbols.join(",")),this.request({method:"GET",url:`${urls.rest.beta}/news`,data:e})}async getClock(){return parse.clock(await this.request({method:"GET",url:`${urls.rest.account}/clock`}))}getAccountConfigurations(){return this.request({method:"GET",url:`${urls.rest.account}/account/configurations`})}updateAccountConfigurations(e){return this.request({method:"PATCH",url:`${urls.rest.account}/account/configurations`,data:e})}async getAccountActivities(e){return e.activity_types&&Array.isArray(e.activity_types)&&(e.activity_types=e.activity_types.join(",")),parse.activities(await this.request({method:"GET",url:`${urls.rest.account}/account/activities${e.activity_type?"/".concat(e.activity_type):""}`,data:{...e,activity_type:void 0}}))}getPortfolioHistory(e){return this.request({method:"GET",url:`${urls.rest.account}/account/portfolio/history`,data:e})}async getBars_v1(e){const t={...e,symbols:e.symbols.join(",")};return await this.request({method:"GET",url:`${urls.rest.market_data_v1}/bars/${e.timeframe}`,data:t})}async getLastTrade_v1(e){return await this.request({method:"GET",url:`${urls.rest.market_data_v1}/last/stocks/${e.symbol}`})}async getLastQuote_v1(e){return await this.request({method:"GET",url:`${urls.rest.market_data_v1}/last_quote/stocks/${e.symbol}`})}async getTrades(e){return parse.pageOfTrades(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/trades`,data:{...e,symbol:void 0}}))}async getQuotes(e){return parse.pageOfQuotes(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/quotes`,data:{...e,symbol:void 0}}))}async getBars(e){return parse.pageOfBars(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/bars`,data:{...e,symbol:void 0}}))}async getSnapshot(e){return parse.snapshot(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/snapshot`}))}async getSnapshots(e){return parse.snapshots(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/snapshots?symbols=${e.symbols.join(",")}`}))}async request(e){let t={};"access_token"in this.params.credentials?t.Authorization=`Bearer ${this.params.credentials.access_token}`:(t["APCA-API-KEY-ID"]=this.params.credentials.key,t["APCA-API-SECRET-KEY"]=this.params.credentials.secret),this.params.credentials.paper&&(e.url=e.url.replace("api.","paper-api."));let r="";if(e.data){for(let[t,r]of Object.entries(e.data))r instanceof Date&&(e.data[t]=r.toISOString());["POST","PATCH","PUT"].includes(e.method)||(r="?".concat(lib.stringify(e.data)),e.data=void 0)}const n=()=>unifetch(e.url.concat(r),{method:e.method,headers:t,body:JSON.stringify(e.data)}),i=this.params.rate_limit?()=>this.limiter.schedule(n):n;let s,o={};try{if(s=await i(),null!=e.isJSON&&!e.isJSON)return s.ok;o=await s.json()}catch(e){throw console.error(e),o}if("code"in o||"message"in o)throw o;return o}}var ws=null;"undefined"!=typeof WebSocket?ws=WebSocket:"undefined"!=typeof MozWebSocket?ws=MozWebSocket:void 0!==commonjsGlobal?ws=commonjsGlobal.WebSocket||commonjsGlobal.MozWebSocket:"undefined"!=typeof window?ws=window.WebSocket||window.MozWebSocket:"undefined"!=typeof self&&(ws=self.WebSocket||self.MozWebSocket);var browser=ws,eventemitter3=createCommonjsModule((function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}function i(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function s(e,t,n,s,o){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new i(n,s||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),a.prototype.eventNames=function(){var e,n,i=[];if(0===this._eventsCount)return i;for(n in e=this._events)t.call(e,n)&&i.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},a.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i"undefined"!=typeof Blob&&(e instanceof Blob||"[object Blob]"===Object.prototype.toString.call(e));class AlpacaStream extends eventemitter3{params;host;connection;authenticated;constructor(e){switch(super(),this.params=e,"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),e.type){case"account":this.host=e.credentials.paper?urls.websocket.account.replace("api.","paper-api."):urls.websocket.account;break;case"market_data":this.host=urls.websocket.market_data(this.params.source);break;default:this.host="unknown"}this.connection=new browser(this.host),this.connection.onopen=()=>{let t={};switch(this.params.type){case"account":t={action:"authenticate",data:{key_id:e.credentials.key,secret_key:e.credentials.secret}};break;case"market_data":t={action:"auth",...e.credentials}}this.connection.send(JSON.stringify(t)),this.emit("open",this)},this.connection.onclose=()=>this.emit("close",this),this.connection.onmessage=async e=>{let t=e.data;isBlob(t)?t=await e.data.text():t instanceof ArrayBuffer&&(t=String.fromCharCode(...new Uint8Array(e.data)));let r=JSON.parse(t);("account"==this.params.type?[r]:r).forEach((e=>{this.emit("message",e),("T"in e&&"authenticated"==e.msg||"stream"in e&&"authorization"==e.stream&&"authorized"==e.data.status)&&(this.authenticated=!0,this.emit("authenticated",this)),"stream"in e&&"trade_updates"==e.stream&&this.emit("trade_updates",parse.trade_update(e.data));const t={success:"success",subscription:"subscription",error:"error",t:"trade",q:"quote",b:"bar"};"T"in e&&this.emit(t[e.T.split(".")[0]],e)}))},this.connection.onerror=e=>{this.emit("error",e)}}getConnection(){return this.connection}subscribe(e,t=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"listen",data:{streams:[e]}}));break;case"market_data":let r={action:"subscribe"};r[e]=t,this.send(JSON.stringify(r))}return this}unsubscribe(e,t=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"unlisten",data:{streams:[e]}}));break;case"market_data":let r={action:"unsubscribe"};r[e]=t,this.send(JSON.stringify(r))}return this}send(e){if(!this.authenticated)throw new Error("not authenticated");return"object"==typeof e&&(e=JSON.stringify(e)),this.connection.send(e),this}}var index={AlpacaClient:AlpacaClient,AlpacaStream:AlpacaStream};exports.AlpacaClient=AlpacaClient,exports.AlpacaStream=AlpacaStream,exports.default=index,Object.defineProperty(exports,"__esModule",{value:!0})})); diff --git a/dist/alpaca.browser.modern.js b/dist/alpaca.browser.modern.js index f049eb8..f01fde7 100644 --- a/dist/alpaca.browser.modern.js +++ b/dist/alpaca.browser.modern.js @@ -4810,7 +4810,7 @@ function order(rawOrder) { trail_price: number(rawOrder.trail_price), trail_percent: number(rawOrder.trail_percent), hwm: number(rawOrder.hwm), - order_class: rawOrder.order_class + order_class: rawOrder.order_class, }; } catch (err) { @@ -4853,7 +4853,7 @@ function canceled_order(input) { trail_price: number(order.trail_price), trail_percent: number(order.trail_percent), hwm: number(order.hwm), - order_class: order.order_class + order_class: order.order_class, }, }; } @@ -5074,12 +5074,18 @@ function trade_update(rawTradeUpdate) { event: rawTradeUpdate.event, execution_id: rawTradeUpdate.execution_id, order: order(rawTradeUpdate.order), - ...rawTradeUpdate.event_id && { event_id: number(rawTradeUpdate.event_id) }, - ...rawTradeUpdate.at && { at: new Date(rawTradeUpdate.at) }, - ...rawTradeUpdate.timestamp && { timestamp: new Date(rawTradeUpdate.timestamp) }, - ...rawTradeUpdate.position_qty && { position_qty: number(rawTradeUpdate.position_qty) }, - ...rawTradeUpdate.price && { price: number(rawTradeUpdate.price) }, - ...rawTradeUpdate.qty && { qty: number(rawTradeUpdate.qty) } + ...(rawTradeUpdate.event_id && { + event_id: number(rawTradeUpdate.event_id), + }), + ...(rawTradeUpdate.at && { at: new Date(rawTradeUpdate.at) }), + ...(rawTradeUpdate.timestamp && { + timestamp: new Date(rawTradeUpdate.timestamp), + }), + ...(rawTradeUpdate.position_qty && { + position_qty: number(rawTradeUpdate.position_qty), + }), + ...(rawTradeUpdate.price && { price: number(rawTradeUpdate.price) }), + ...(rawTradeUpdate.qty && { qty: number(rawTradeUpdate.qty) }), }; } var parse = { @@ -5098,7 +5104,7 @@ var parse = { pageOfBars, snapshot, snapshots, - trade_update + trade_update, }; const unifetch = typeof fetch !== 'undefined' ? fetch : browser$1; @@ -5272,6 +5278,9 @@ class AlpacaClient { }); } getNews(params) { + if ('symbols' in params && Array.isArray(params.symbols)) { + params.symbols = params.symbols.join(','); + } return this.request({ method: 'GET', url: `${urls.rest.beta}/news`, diff --git a/dist/alpaca.browser.modern.js.map b/dist/alpaca.browser.modern.js.map index ab95c1b..abe0ce8 100644 --- a/dist/alpaca.browser.modern.js.map +++ b/dist/alpaca.browser.modern.js.map @@ -1 +1 @@ -{"version":3,"file":"alpaca.browser.modern.js","sources":["../node_modules/bottleneck/lib/parser.js","../node_modules/bottleneck/lib/DLList.js","../node_modules/bottleneck/lib/Events.js","../node_modules/bottleneck/lib/Queues.js","../node_modules/bottleneck/lib/BottleneckError.js","../node_modules/bottleneck/lib/Job.js","../node_modules/bottleneck/lib/LocalDatastore.js","../node_modules/bottleneck/lib/Scripts.js","../node_modules/bottleneck/lib/RedisConnection.js","../node_modules/bottleneck/lib/IORedisConnection.js","../node_modules/bottleneck/lib/RedisDatastore.js","../node_modules/bottleneck/lib/States.js","../node_modules/bottleneck/lib/Sync.js","../node_modules/bottleneck/lib/Group.js","../node_modules/bottleneck/lib/Batcher.js","../node_modules/bottleneck/lib/Bottleneck.js","../node_modules/bottleneck/lib/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-symbols/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/has/src/index.js","../node_modules/get-intrinsic/index.js","../node_modules/call-bind/index.js","../node_modules/call-bind/callBound.js","../node_modules/object-inspect/util.inspect.js","../node_modules/object-inspect/index.js","../node_modules/side-channel/index.js","../node_modules/qs/lib/formats.js","../node_modules/qs/lib/utils.js","../node_modules/qs/lib/stringify.js","../node_modules/qs/lib/parse.js","../node_modules/qs/lib/index.js","../node_modules/unfetch/dist/unfetch.module.js","../node_modules/isomorphic-unfetch/browser.js","../src/urls.ts","../src/parse.ts","../src/client.ts","../node_modules/isomorphic-ws/browser.js","../node_modules/eventemitter3/index.js","../node_modules/is-blob/index.js","../src/stream.ts","../src/index.ts"],"sourcesContent":["\"use strict\";\n\nexports.load = function (received, defaults, onto = {}) {\n var k, ref, v;\n\n for (k in defaults) {\n v = defaults[k];\n onto[k] = (ref = received[k]) != null ? ref : v;\n }\n\n return onto;\n};\n\nexports.overwrite = function (received, defaults, onto = {}) {\n var k, v;\n\n for (k in received) {\n v = received[k];\n\n if (defaults[k] !== void 0) {\n onto[k] = v;\n }\n }\n\n return onto;\n};","\"use strict\";\n\nvar DLList;\nDLList = class DLList {\n constructor(incr, decr) {\n this.incr = incr;\n this.decr = decr;\n this._first = null;\n this._last = null;\n this.length = 0;\n }\n\n push(value) {\n var node;\n this.length++;\n\n if (typeof this.incr === \"function\") {\n this.incr();\n }\n\n node = {\n value,\n prev: this._last,\n next: null\n };\n\n if (this._last != null) {\n this._last.next = node;\n this._last = node;\n } else {\n this._first = this._last = node;\n }\n\n return void 0;\n }\n\n shift() {\n var value;\n\n if (this._first == null) {\n return;\n } else {\n this.length--;\n\n if (typeof this.decr === \"function\") {\n this.decr();\n }\n }\n\n value = this._first.value;\n\n if ((this._first = this._first.next) != null) {\n this._first.prev = null;\n } else {\n this._last = null;\n }\n\n return value;\n }\n\n first() {\n if (this._first != null) {\n return this._first.value;\n }\n }\n\n getArray() {\n var node, ref, results;\n node = this._first;\n results = [];\n\n while (node != null) {\n results.push((ref = node, node = node.next, ref.value));\n }\n\n return results;\n }\n\n forEachShift(cb) {\n var node;\n node = this.shift();\n\n while (node != null) {\n cb(node), node = this.shift();\n }\n\n return void 0;\n }\n\n debug() {\n var node, ref, ref1, ref2, results;\n node = this._first;\n results = [];\n\n while (node != null) {\n results.push((ref = node, node = node.next, {\n value: ref.value,\n prev: (ref1 = ref.prev) != null ? ref1.value : void 0,\n next: (ref2 = ref.next) != null ? ref2.value : void 0\n }));\n }\n\n return results;\n }\n\n};\nmodule.exports = DLList;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events;\nEvents = class Events {\n constructor(instance) {\n this.instance = instance;\n this._events = {};\n\n if (this.instance.on != null || this.instance.once != null || this.instance.removeAllListeners != null) {\n throw new Error(\"An Emitter already exists for this object\");\n }\n\n this.instance.on = (name, cb) => {\n return this._addListener(name, \"many\", cb);\n };\n\n this.instance.once = (name, cb) => {\n return this._addListener(name, \"once\", cb);\n };\n\n this.instance.removeAllListeners = (name = null) => {\n if (name != null) {\n return delete this._events[name];\n } else {\n return this._events = {};\n }\n };\n }\n\n _addListener(name, status, cb) {\n var base;\n\n if ((base = this._events)[name] == null) {\n base[name] = [];\n }\n\n this._events[name].push({\n cb,\n status\n });\n\n return this.instance;\n }\n\n listenerCount(name) {\n if (this._events[name] != null) {\n return this._events[name].length;\n } else {\n return 0;\n }\n }\n\n trigger(name, ...args) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var e, promises;\n\n try {\n if (name !== \"debug\") {\n _this.trigger(\"debug\", `Event triggered: ${name}`, args);\n }\n\n if (_this._events[name] == null) {\n return;\n }\n\n _this._events[name] = _this._events[name].filter(function (listener) {\n return listener.status !== \"none\";\n });\n promises = _this._events[name].map(\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(function* (listener) {\n var e, returned;\n\n if (listener.status === \"none\") {\n return;\n }\n\n if (listener.status === \"once\") {\n listener.status = \"none\";\n }\n\n try {\n returned = typeof listener.cb === \"function\" ? listener.cb(...args) : void 0;\n\n if (typeof (returned != null ? returned.then : void 0) === \"function\") {\n return yield returned;\n } else {\n return returned;\n }\n } catch (error) {\n e = error;\n\n if (\"name\" !== \"error\") {\n _this.trigger(\"error\", e);\n }\n\n return null;\n }\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n return (yield Promise.all(promises)).find(function (x) {\n return x != null;\n });\n } catch (error) {\n e = error;\n\n if (\"name\" !== \"error\") {\n _this.trigger(\"error\", e);\n }\n\n return null;\n }\n })();\n }\n\n};\nmodule.exports = Events;","\"use strict\";\n\nvar DLList, Events, Queues;\nDLList = require(\"./DLList\");\nEvents = require(\"./Events\");\nQueues = class Queues {\n constructor(num_priorities) {\n var i;\n this.Events = new Events(this);\n this._length = 0;\n\n this._lists = function () {\n var j, ref, results;\n results = [];\n\n for (i = j = 1, ref = num_priorities; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\n results.push(new DLList(() => {\n return this.incr();\n }, () => {\n return this.decr();\n }));\n }\n\n return results;\n }.call(this);\n }\n\n incr() {\n if (this._length++ === 0) {\n return this.Events.trigger(\"leftzero\");\n }\n }\n\n decr() {\n if (--this._length === 0) {\n return this.Events.trigger(\"zero\");\n }\n }\n\n push(job) {\n return this._lists[job.options.priority].push(job);\n }\n\n queued(priority) {\n if (priority != null) {\n return this._lists[priority].length;\n } else {\n return this._length;\n }\n }\n\n shiftAll(fn) {\n return this._lists.forEach(function (list) {\n return list.forEachShift(fn);\n });\n }\n\n getFirst(arr = this._lists) {\n var j, len, list;\n\n for (j = 0, len = arr.length; j < len; j++) {\n list = arr[j];\n\n if (list.length > 0) {\n return list;\n }\n }\n\n return [];\n }\n\n shiftLastFrom(priority) {\n return this.getFirst(this._lists.slice(priority).reverse()).shift();\n }\n\n};\nmodule.exports = Queues;","\"use strict\";\n\nvar BottleneckError;\nBottleneckError = class BottleneckError extends Error {};\nmodule.exports = BottleneckError;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, DEFAULT_PRIORITY, Job, NUM_PRIORITIES, parser;\nNUM_PRIORITIES = 10;\nDEFAULT_PRIORITY = 5;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nJob = class Job {\n constructor(task, args, options, jobDefaults, rejectOnDrop, Events, _states, Promise) {\n this.task = task;\n this.args = args;\n this.rejectOnDrop = rejectOnDrop;\n this.Events = Events;\n this._states = _states;\n this.Promise = Promise;\n this.options = parser.load(options, jobDefaults);\n this.options.priority = this._sanitizePriority(this.options.priority);\n\n if (this.options.id === jobDefaults.id) {\n this.options.id = `${this.options.id}-${this._randomIndex()}`;\n }\n\n this.promise = new this.Promise((_resolve, _reject) => {\n this._resolve = _resolve;\n this._reject = _reject;\n });\n this.retryCount = 0;\n }\n\n _sanitizePriority(priority) {\n var sProperty;\n sProperty = ~~priority !== priority ? DEFAULT_PRIORITY : priority;\n\n if (sProperty < 0) {\n return 0;\n } else if (sProperty > NUM_PRIORITIES - 1) {\n return NUM_PRIORITIES - 1;\n } else {\n return sProperty;\n }\n }\n\n _randomIndex() {\n return Math.random().toString(36).slice(2);\n }\n\n doDrop({\n error,\n message = \"This job has been dropped by Bottleneck\"\n } = {}) {\n if (this._states.remove(this.options.id)) {\n if (this.rejectOnDrop) {\n this._reject(error != null ? error : new BottleneckError(message));\n }\n\n this.Events.trigger(\"dropped\", {\n args: this.args,\n options: this.options,\n task: this.task,\n promise: this.promise\n });\n return true;\n } else {\n return false;\n }\n }\n\n _assertStatus(expected) {\n var status;\n status = this._states.jobStatus(this.options.id);\n\n if (!(status === expected || expected === \"DONE\" && status === null)) {\n throw new BottleneckError(`Invalid job status ${status}, expected ${expected}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`);\n }\n }\n\n doReceive() {\n this._states.start(this.options.id);\n\n return this.Events.trigger(\"received\", {\n args: this.args,\n options: this.options\n });\n }\n\n doQueue(reachedHWM, blocked) {\n this._assertStatus(\"RECEIVED\");\n\n this._states.next(this.options.id);\n\n return this.Events.trigger(\"queued\", {\n args: this.args,\n options: this.options,\n reachedHWM,\n blocked\n });\n }\n\n doRun() {\n if (this.retryCount === 0) {\n this._assertStatus(\"QUEUED\");\n\n this._states.next(this.options.id);\n } else {\n this._assertStatus(\"EXECUTING\");\n }\n\n return this.Events.trigger(\"scheduled\", {\n args: this.args,\n options: this.options\n });\n }\n\n doExecute(chained, clearGlobalState, run, free) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var error, eventInfo, passed;\n\n if (_this.retryCount === 0) {\n _this._assertStatus(\"RUNNING\");\n\n _this._states.next(_this.options.id);\n } else {\n _this._assertStatus(\"EXECUTING\");\n }\n\n eventInfo = {\n args: _this.args,\n options: _this.options,\n retryCount: _this.retryCount\n };\n\n _this.Events.trigger(\"executing\", eventInfo);\n\n try {\n passed = yield chained != null ? chained.schedule(_this.options, _this.task, ..._this.args) : _this.task(..._this.args);\n\n if (clearGlobalState()) {\n _this.doDone(eventInfo);\n\n yield free(_this.options, eventInfo);\n\n _this._assertStatus(\"DONE\");\n\n return _this._resolve(passed);\n }\n } catch (error1) {\n error = error1;\n return _this._onFailure(error, eventInfo, clearGlobalState, run, free);\n }\n })();\n }\n\n doExpire(clearGlobalState, run, free) {\n var error, eventInfo;\n\n if (this._states.jobStatus(this.options.id === \"RUNNING\")) {\n this._states.next(this.options.id);\n }\n\n this._assertStatus(\"EXECUTING\");\n\n eventInfo = {\n args: this.args,\n options: this.options,\n retryCount: this.retryCount\n };\n error = new BottleneckError(`This job timed out after ${this.options.expiration} ms.`);\n return this._onFailure(error, eventInfo, clearGlobalState, run, free);\n }\n\n _onFailure(error, eventInfo, clearGlobalState, run, free) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var retry, retryAfter;\n\n if (clearGlobalState()) {\n retry = yield _this2.Events.trigger(\"failed\", error, eventInfo);\n\n if (retry != null) {\n retryAfter = ~~retry;\n\n _this2.Events.trigger(\"retry\", `Retrying ${_this2.options.id} after ${retryAfter} ms`, eventInfo);\n\n _this2.retryCount++;\n return run(retryAfter);\n } else {\n _this2.doDone(eventInfo);\n\n yield free(_this2.options, eventInfo);\n\n _this2._assertStatus(\"DONE\");\n\n return _this2._reject(error);\n }\n }\n })();\n }\n\n doDone(eventInfo) {\n this._assertStatus(\"EXECUTING\");\n\n this._states.next(this.options.id);\n\n return this.Events.trigger(\"done\", eventInfo);\n }\n\n};\nmodule.exports = Job;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, LocalDatastore, parser;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nLocalDatastore = class LocalDatastore {\n constructor(instance, storeOptions, storeInstanceOptions) {\n this.instance = instance;\n this.storeOptions = storeOptions;\n this.clientId = this.instance._randomIndex();\n parser.load(storeInstanceOptions, storeInstanceOptions, this);\n this._nextRequest = this._lastReservoirRefresh = this._lastReservoirIncrease = Date.now();\n this._running = 0;\n this._done = 0;\n this._unblockTime = 0;\n this.ready = this.Promise.resolve();\n this.clients = {};\n\n this._startHeartbeat();\n }\n\n _startHeartbeat() {\n var base;\n\n if (this.heartbeat == null && (this.storeOptions.reservoirRefreshInterval != null && this.storeOptions.reservoirRefreshAmount != null || this.storeOptions.reservoirIncreaseInterval != null && this.storeOptions.reservoirIncreaseAmount != null)) {\n return typeof (base = this.heartbeat = setInterval(() => {\n var amount, incr, maximum, now, reservoir;\n now = Date.now();\n\n if (this.storeOptions.reservoirRefreshInterval != null && now >= this._lastReservoirRefresh + this.storeOptions.reservoirRefreshInterval) {\n this._lastReservoirRefresh = now;\n this.storeOptions.reservoir = this.storeOptions.reservoirRefreshAmount;\n\n this.instance._drainAll(this.computeCapacity());\n }\n\n if (this.storeOptions.reservoirIncreaseInterval != null && now >= this._lastReservoirIncrease + this.storeOptions.reservoirIncreaseInterval) {\n var _this$storeOptions = this.storeOptions;\n amount = _this$storeOptions.reservoirIncreaseAmount;\n maximum = _this$storeOptions.reservoirIncreaseMaximum;\n reservoir = _this$storeOptions.reservoir;\n this._lastReservoirIncrease = now;\n incr = maximum != null ? Math.min(amount, maximum - reservoir) : amount;\n\n if (incr > 0) {\n this.storeOptions.reservoir += incr;\n return this.instance._drainAll(this.computeCapacity());\n }\n }\n }, this.heartbeatInterval)).unref === \"function\" ? base.unref() : void 0;\n } else {\n return clearInterval(this.heartbeat);\n }\n }\n\n __publish__(message) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n yield _this.yieldLoop();\n return _this.instance.Events.trigger(\"message\", message.toString());\n })();\n }\n\n __disconnect__(flush) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n yield _this2.yieldLoop();\n clearInterval(_this2.heartbeat);\n return _this2.Promise.resolve();\n })();\n }\n\n yieldLoop(t = 0) {\n return new this.Promise(function (resolve, reject) {\n return setTimeout(resolve, t);\n });\n }\n\n computePenalty() {\n var ref;\n return (ref = this.storeOptions.penalty) != null ? ref : 15 * this.storeOptions.minTime || 5000;\n }\n\n __updateSettings__(options) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n yield _this3.yieldLoop();\n parser.overwrite(options, options, _this3.storeOptions);\n\n _this3._startHeartbeat();\n\n _this3.instance._drainAll(_this3.computeCapacity());\n\n return true;\n })();\n }\n\n __running__() {\n var _this4 = this;\n\n return _asyncToGenerator(function* () {\n yield _this4.yieldLoop();\n return _this4._running;\n })();\n }\n\n __queued__() {\n var _this5 = this;\n\n return _asyncToGenerator(function* () {\n yield _this5.yieldLoop();\n return _this5.instance.queued();\n })();\n }\n\n __done__() {\n var _this6 = this;\n\n return _asyncToGenerator(function* () {\n yield _this6.yieldLoop();\n return _this6._done;\n })();\n }\n\n __groupCheck__(time) {\n var _this7 = this;\n\n return _asyncToGenerator(function* () {\n yield _this7.yieldLoop();\n return _this7._nextRequest + _this7.timeout < time;\n })();\n }\n\n computeCapacity() {\n var maxConcurrent, reservoir;\n var _this$storeOptions2 = this.storeOptions;\n maxConcurrent = _this$storeOptions2.maxConcurrent;\n reservoir = _this$storeOptions2.reservoir;\n\n if (maxConcurrent != null && reservoir != null) {\n return Math.min(maxConcurrent - this._running, reservoir);\n } else if (maxConcurrent != null) {\n return maxConcurrent - this._running;\n } else if (reservoir != null) {\n return reservoir;\n } else {\n return null;\n }\n }\n\n conditionsCheck(weight) {\n var capacity;\n capacity = this.computeCapacity();\n return capacity == null || weight <= capacity;\n }\n\n __incrementReservoir__(incr) {\n var _this8 = this;\n\n return _asyncToGenerator(function* () {\n var reservoir;\n yield _this8.yieldLoop();\n reservoir = _this8.storeOptions.reservoir += incr;\n\n _this8.instance._drainAll(_this8.computeCapacity());\n\n return reservoir;\n })();\n }\n\n __currentReservoir__() {\n var _this9 = this;\n\n return _asyncToGenerator(function* () {\n yield _this9.yieldLoop();\n return _this9.storeOptions.reservoir;\n })();\n }\n\n isBlocked(now) {\n return this._unblockTime >= now;\n }\n\n check(weight, now) {\n return this.conditionsCheck(weight) && this._nextRequest - now <= 0;\n }\n\n __check__(weight) {\n var _this10 = this;\n\n return _asyncToGenerator(function* () {\n var now;\n yield _this10.yieldLoop();\n now = Date.now();\n return _this10.check(weight, now);\n })();\n }\n\n __register__(index, weight, expiration) {\n var _this11 = this;\n\n return _asyncToGenerator(function* () {\n var now, wait;\n yield _this11.yieldLoop();\n now = Date.now();\n\n if (_this11.conditionsCheck(weight)) {\n _this11._running += weight;\n\n if (_this11.storeOptions.reservoir != null) {\n _this11.storeOptions.reservoir -= weight;\n }\n\n wait = Math.max(_this11._nextRequest - now, 0);\n _this11._nextRequest = now + wait + _this11.storeOptions.minTime;\n return {\n success: true,\n wait,\n reservoir: _this11.storeOptions.reservoir\n };\n } else {\n return {\n success: false\n };\n }\n })();\n }\n\n strategyIsBlock() {\n return this.storeOptions.strategy === 3;\n }\n\n __submit__(queueLength, weight) {\n var _this12 = this;\n\n return _asyncToGenerator(function* () {\n var blocked, now, reachedHWM;\n yield _this12.yieldLoop();\n\n if (_this12.storeOptions.maxConcurrent != null && weight > _this12.storeOptions.maxConcurrent) {\n throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${_this12.storeOptions.maxConcurrent}`);\n }\n\n now = Date.now();\n reachedHWM = _this12.storeOptions.highWater != null && queueLength === _this12.storeOptions.highWater && !_this12.check(weight, now);\n blocked = _this12.strategyIsBlock() && (reachedHWM || _this12.isBlocked(now));\n\n if (blocked) {\n _this12._unblockTime = now + _this12.computePenalty();\n _this12._nextRequest = _this12._unblockTime + _this12.storeOptions.minTime;\n\n _this12.instance._dropAllQueued();\n }\n\n return {\n reachedHWM,\n blocked,\n strategy: _this12.storeOptions.strategy\n };\n })();\n }\n\n __free__(index, weight) {\n var _this13 = this;\n\n return _asyncToGenerator(function* () {\n yield _this13.yieldLoop();\n _this13._running -= weight;\n _this13._done += weight;\n\n _this13.instance._drainAll(_this13.computeCapacity());\n\n return {\n running: _this13._running\n };\n })();\n }\n\n};\nmodule.exports = LocalDatastore;","\"use strict\";\n\nvar headers, lua, templates;\nlua = require(\"./lua.json\");\nheaders = {\n refs: lua[\"refs.lua\"],\n validate_keys: lua[\"validate_keys.lua\"],\n validate_client: lua[\"validate_client.lua\"],\n refresh_expiration: lua[\"refresh_expiration.lua\"],\n process_tick: lua[\"process_tick.lua\"],\n conditions_check: lua[\"conditions_check.lua\"],\n get_time: lua[\"get_time.lua\"]\n};\n\nexports.allKeys = function (id) {\n return [\n /*\n HASH\n */\n `b_${id}_settings`,\n /*\n HASH\n job index -> weight\n */\n `b_${id}_job_weights`,\n /*\n ZSET\n job index -> expiration\n */\n `b_${id}_job_expirations`,\n /*\n HASH\n job index -> client\n */\n `b_${id}_job_clients`,\n /*\n ZSET\n client -> sum running\n */\n `b_${id}_client_running`,\n /*\n HASH\n client -> num queued\n */\n `b_${id}_client_num_queued`,\n /*\n ZSET\n client -> last job registered\n */\n `b_${id}_client_last_registered`,\n /*\n ZSET\n client -> last seen\n */\n `b_${id}_client_last_seen`];\n};\n\ntemplates = {\n init: {\n keys: exports.allKeys,\n headers: [\"process_tick\"],\n refresh_expiration: true,\n code: lua[\"init.lua\"]\n },\n group_check: {\n keys: exports.allKeys,\n headers: [],\n refresh_expiration: false,\n code: lua[\"group_check.lua\"]\n },\n register_client: {\n keys: exports.allKeys,\n headers: [\"validate_keys\"],\n refresh_expiration: false,\n code: lua[\"register_client.lua\"]\n },\n blacklist_client: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\"],\n refresh_expiration: false,\n code: lua[\"blacklist_client.lua\"]\n },\n heartbeat: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"heartbeat.lua\"]\n },\n update_settings: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"update_settings.lua\"]\n },\n running: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"running.lua\"]\n },\n queued: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\"],\n refresh_expiration: false,\n code: lua[\"queued.lua\"]\n },\n done: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"done.lua\"]\n },\n check: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: false,\n code: lua[\"check.lua\"]\n },\n submit: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: true,\n code: lua[\"submit.lua\"]\n },\n register: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: true,\n code: lua[\"register.lua\"]\n },\n free: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"free.lua\"]\n },\n current_reservoir: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"current_reservoir.lua\"]\n },\n increment_reservoir: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"increment_reservoir.lua\"]\n }\n};\nexports.names = Object.keys(templates);\n\nexports.keys = function (name, id) {\n return templates[name].keys(id);\n};\n\nexports.payload = function (name) {\n var template;\n template = templates[name];\n return Array.prototype.concat(headers.refs, template.headers.map(function (h) {\n return headers[h];\n }), template.refresh_expiration ? headers.refresh_expiration : \"\", template.code).join(\"\\n\");\n};","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, RedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nScripts = require(\"./Scripts\");\n\nRedisConnection = function () {\n class RedisConnection {\n constructor(options = {}) {\n parser.load(options, this.defaults, this);\n\n if (this.Redis == null) {\n this.Redis = eval(\"require\")(\"redis\"); // Obfuscated or else Webpack/Angular will try to inline the optional redis module. To override this behavior: pass the redis module to Bottleneck as the 'Redis' option.\n }\n\n if (this.Events == null) {\n this.Events = new Events(this);\n }\n\n this.terminated = false;\n\n if (this.client == null) {\n this.client = this.Redis.createClient(this.clientOptions);\n }\n\n this.subscriber = this.client.duplicate();\n this.limiters = {};\n this.shas = {};\n this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => {\n return this._loadScripts();\n }).then(() => {\n return {\n client: this.client,\n subscriber: this.subscriber\n };\n });\n }\n\n _setup(client, sub) {\n client.setMaxListeners(0);\n return new this.Promise((resolve, reject) => {\n client.on(\"error\", e => {\n return this.Events.trigger(\"error\", e);\n });\n\n if (sub) {\n client.on(\"message\", (channel, message) => {\n var ref;\n return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0;\n });\n }\n\n if (client.ready) {\n return resolve();\n } else {\n return client.once(\"ready\", resolve);\n }\n });\n }\n\n _loadScript(name) {\n return new this.Promise((resolve, reject) => {\n var payload;\n payload = Scripts.payload(name);\n return this.client.multi([[\"script\", \"load\", payload]]).exec((err, replies) => {\n if (err != null) {\n return reject(err);\n }\n\n this.shas[name] = replies[0];\n return resolve(replies[0]);\n });\n });\n }\n\n _loadScripts() {\n return this.Promise.all(Scripts.names.map(k => {\n return this._loadScript(k);\n }));\n }\n\n __runCommand__(cmd) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n yield _this.ready;\n return new _this.Promise((resolve, reject) => {\n return _this.client.multi([cmd]).exec_atomic(function (err, replies) {\n if (err != null) {\n return reject(err);\n } else {\n return resolve(replies[0]);\n }\n });\n });\n })();\n }\n\n __addLimiter__(instance) {\n return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => {\n return new this.Promise((resolve, reject) => {\n var handler;\n\n handler = chan => {\n if (chan === channel) {\n this.subscriber.removeListener(\"subscribe\", handler);\n this.limiters[channel] = instance;\n return resolve();\n }\n };\n\n this.subscriber.on(\"subscribe\", handler);\n return this.subscriber.subscribe(channel);\n });\n }));\n }\n\n __removeLimiter__(instance) {\n var _this2 = this;\n\n return this.Promise.all([instance.channel(), instance.channel_client()].map(\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(function* (channel) {\n if (!_this2.terminated) {\n yield new _this2.Promise((resolve, reject) => {\n return _this2.subscriber.unsubscribe(channel, function (err, chan) {\n if (err != null) {\n return reject(err);\n }\n\n if (chan === channel) {\n return resolve();\n }\n });\n });\n }\n\n return delete _this2.limiters[channel];\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()));\n }\n\n __scriptArgs__(name, id, args, cb) {\n var keys;\n keys = Scripts.keys(name, id);\n return [this.shas[name], keys.length].concat(keys, args, cb);\n }\n\n __scriptFn__(name) {\n return this.client.evalsha.bind(this.client);\n }\n\n disconnect(flush = true) {\n var i, k, len, ref;\n ref = Object.keys(this.limiters);\n\n for (i = 0, len = ref.length; i < len; i++) {\n k = ref[i];\n clearInterval(this.limiters[k]._store.heartbeat);\n }\n\n this.limiters = {};\n this.terminated = true;\n this.client.end(flush);\n this.subscriber.end(flush);\n return this.Promise.resolve();\n }\n\n }\n\n ;\n RedisConnection.prototype.datastore = \"redis\";\n RedisConnection.prototype.defaults = {\n Redis: null,\n clientOptions: {},\n client: null,\n Promise: Promise,\n Events: null\n };\n return RedisConnection;\n}.call(void 0);\n\nmodule.exports = RedisConnection;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, IORedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nScripts = require(\"./Scripts\");\n\nIORedisConnection = function () {\n class IORedisConnection {\n constructor(options = {}) {\n parser.load(options, this.defaults, this);\n\n if (this.Redis == null) {\n this.Redis = eval(\"require\")(\"ioredis\"); // Obfuscated or else Webpack/Angular will try to inline the optional ioredis module. To override this behavior: pass the ioredis module to Bottleneck as the 'Redis' option.\n }\n\n if (this.Events == null) {\n this.Events = new Events(this);\n }\n\n this.terminated = false;\n\n if (this.clusterNodes != null) {\n this.client = new this.Redis.Cluster(this.clusterNodes, this.clientOptions);\n this.subscriber = new this.Redis.Cluster(this.clusterNodes, this.clientOptions);\n } else if (this.client != null && this.client.duplicate == null) {\n this.subscriber = new this.Redis.Cluster(this.client.startupNodes, this.client.options);\n } else {\n if (this.client == null) {\n this.client = new this.Redis(this.clientOptions);\n }\n\n this.subscriber = this.client.duplicate();\n }\n\n this.limiters = {};\n this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => {\n this._loadScripts();\n\n return {\n client: this.client,\n subscriber: this.subscriber\n };\n });\n }\n\n _setup(client, sub) {\n client.setMaxListeners(0);\n return new this.Promise((resolve, reject) => {\n client.on(\"error\", e => {\n return this.Events.trigger(\"error\", e);\n });\n\n if (sub) {\n client.on(\"message\", (channel, message) => {\n var ref;\n return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0;\n });\n }\n\n if (client.status === \"ready\") {\n return resolve();\n } else {\n return client.once(\"ready\", resolve);\n }\n });\n }\n\n _loadScripts() {\n return Scripts.names.forEach(name => {\n return this.client.defineCommand(name, {\n lua: Scripts.payload(name)\n });\n });\n }\n\n __runCommand__(cmd) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var _, deleted;\n\n yield _this.ready;\n\n var _ref = yield _this.client.pipeline([cmd]).exec();\n\n var _ref2 = _slicedToArray(_ref, 1);\n\n var _ref2$ = _slicedToArray(_ref2[0], 2);\n\n _ = _ref2$[0];\n deleted = _ref2$[1];\n return deleted;\n })();\n }\n\n __addLimiter__(instance) {\n return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => {\n return new this.Promise((resolve, reject) => {\n return this.subscriber.subscribe(channel, () => {\n this.limiters[channel] = instance;\n return resolve();\n });\n });\n }));\n }\n\n __removeLimiter__(instance) {\n var _this2 = this;\n\n return [instance.channel(), instance.channel_client()].forEach(\n /*#__PURE__*/\n function () {\n var _ref3 = _asyncToGenerator(function* (channel) {\n if (!_this2.terminated) {\n yield _this2.subscriber.unsubscribe(channel);\n }\n\n return delete _this2.limiters[channel];\n });\n\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }());\n }\n\n __scriptArgs__(name, id, args, cb) {\n var keys;\n keys = Scripts.keys(name, id);\n return [keys.length].concat(keys, args, cb);\n }\n\n __scriptFn__(name) {\n return this.client[name].bind(this.client);\n }\n\n disconnect(flush = true) {\n var i, k, len, ref;\n ref = Object.keys(this.limiters);\n\n for (i = 0, len = ref.length; i < len; i++) {\n k = ref[i];\n clearInterval(this.limiters[k]._store.heartbeat);\n }\n\n this.limiters = {};\n this.terminated = true;\n\n if (flush) {\n return this.Promise.all([this.client.quit(), this.subscriber.quit()]);\n } else {\n this.client.disconnect();\n this.subscriber.disconnect();\n return this.Promise.resolve();\n }\n }\n\n }\n\n ;\n IORedisConnection.prototype.datastore = \"ioredis\";\n IORedisConnection.prototype.defaults = {\n Redis: null,\n clientOptions: {},\n clusterNodes: null,\n client: null,\n Promise: Promise,\n Events: null\n };\n return IORedisConnection;\n}.call(void 0);\n\nmodule.exports = IORedisConnection;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, IORedisConnection, RedisConnection, RedisDatastore, parser;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nRedisConnection = require(\"./RedisConnection\");\nIORedisConnection = require(\"./IORedisConnection\");\nRedisDatastore = class RedisDatastore {\n constructor(instance, storeOptions, storeInstanceOptions) {\n this.instance = instance;\n this.storeOptions = storeOptions;\n this.originalId = this.instance.id;\n this.clientId = this.instance._randomIndex();\n parser.load(storeInstanceOptions, storeInstanceOptions, this);\n this.clients = {};\n this.capacityPriorityCounters = {};\n this.sharedConnection = this.connection != null;\n\n if (this.connection == null) {\n this.connection = this.instance.datastore === \"redis\" ? new RedisConnection({\n Redis: this.Redis,\n clientOptions: this.clientOptions,\n Promise: this.Promise,\n Events: this.instance.Events\n }) : this.instance.datastore === \"ioredis\" ? new IORedisConnection({\n Redis: this.Redis,\n clientOptions: this.clientOptions,\n clusterNodes: this.clusterNodes,\n Promise: this.Promise,\n Events: this.instance.Events\n }) : void 0;\n }\n\n this.instance.connection = this.connection;\n this.instance.datastore = this.connection.datastore;\n this.ready = this.connection.ready.then(clients => {\n this.clients = clients;\n return this.runScript(\"init\", this.prepareInitSettings(this.clearDatastore));\n }).then(() => {\n return this.connection.__addLimiter__(this.instance);\n }).then(() => {\n return this.runScript(\"register_client\", [this.instance.queued()]);\n }).then(() => {\n var base;\n\n if (typeof (base = this.heartbeat = setInterval(() => {\n return this.runScript(\"heartbeat\", []).catch(e => {\n return this.instance.Events.trigger(\"error\", e);\n });\n }, this.heartbeatInterval)).unref === \"function\") {\n base.unref();\n }\n\n return this.clients;\n });\n }\n\n __publish__(message) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var client;\n\n var _ref = yield _this.ready;\n\n client = _ref.client;\n return client.publish(_this.instance.channel(), `message:${message.toString()}`);\n })();\n }\n\n onMessage(channel, message) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var capacity, counter, data, drained, e, newCapacity, pos, priorityClient, rawCapacity, type;\n\n try {\n pos = message.indexOf(\":\");\n var _ref2 = [message.slice(0, pos), message.slice(pos + 1)];\n type = _ref2[0];\n data = _ref2[1];\n\n if (type === \"capacity\") {\n return yield _this2.instance._drainAll(data.length > 0 ? ~~data : void 0);\n } else if (type === \"capacity-priority\") {\n var _data$split = data.split(\":\");\n\n var _data$split2 = _slicedToArray(_data$split, 3);\n\n rawCapacity = _data$split2[0];\n priorityClient = _data$split2[1];\n counter = _data$split2[2];\n capacity = rawCapacity.length > 0 ? ~~rawCapacity : void 0;\n\n if (priorityClient === _this2.clientId) {\n drained = yield _this2.instance._drainAll(capacity);\n newCapacity = capacity != null ? capacity - (drained || 0) : \"\";\n return yield _this2.clients.client.publish(_this2.instance.channel(), `capacity-priority:${newCapacity}::${counter}`);\n } else if (priorityClient === \"\") {\n clearTimeout(_this2.capacityPriorityCounters[counter]);\n delete _this2.capacityPriorityCounters[counter];\n return _this2.instance._drainAll(capacity);\n } else {\n return _this2.capacityPriorityCounters[counter] = setTimeout(\n /*#__PURE__*/\n _asyncToGenerator(function* () {\n var e;\n\n try {\n delete _this2.capacityPriorityCounters[counter];\n yield _this2.runScript(\"blacklist_client\", [priorityClient]);\n return yield _this2.instance._drainAll(capacity);\n } catch (error) {\n e = error;\n return _this2.instance.Events.trigger(\"error\", e);\n }\n }), 1000);\n }\n } else if (type === \"message\") {\n return _this2.instance.Events.trigger(\"message\", data);\n } else if (type === \"blocked\") {\n return yield _this2.instance._dropAllQueued();\n }\n } catch (error) {\n e = error;\n return _this2.instance.Events.trigger(\"error\", e);\n }\n })();\n }\n\n __disconnect__(flush) {\n clearInterval(this.heartbeat);\n\n if (this.sharedConnection) {\n return this.connection.__removeLimiter__(this.instance);\n } else {\n return this.connection.disconnect(flush);\n }\n }\n\n runScript(name, args) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n if (!(name === \"init\" || name === \"register_client\")) {\n yield _this3.ready;\n }\n\n return new _this3.Promise((resolve, reject) => {\n var all_args, arr;\n all_args = [Date.now(), _this3.clientId].concat(args);\n\n _this3.instance.Events.trigger(\"debug\", `Calling Redis script: ${name}.lua`, all_args);\n\n arr = _this3.connection.__scriptArgs__(name, _this3.originalId, all_args, function (err, replies) {\n if (err != null) {\n return reject(err);\n }\n\n return resolve(replies);\n });\n return _this3.connection.__scriptFn__(name)(...arr);\n }).catch(e => {\n if (e.message === \"SETTINGS_KEY_NOT_FOUND\") {\n if (name === \"heartbeat\") {\n return _this3.Promise.resolve();\n } else {\n return _this3.runScript(\"init\", _this3.prepareInitSettings(false)).then(() => {\n return _this3.runScript(name, args);\n });\n }\n } else if (e.message === \"UNKNOWN_CLIENT\") {\n return _this3.runScript(\"register_client\", [_this3.instance.queued()]).then(() => {\n return _this3.runScript(name, args);\n });\n } else {\n return _this3.Promise.reject(e);\n }\n });\n })();\n }\n\n prepareArray(arr) {\n var i, len, results, x;\n results = [];\n\n for (i = 0, len = arr.length; i < len; i++) {\n x = arr[i];\n results.push(x != null ? x.toString() : \"\");\n }\n\n return results;\n }\n\n prepareObject(obj) {\n var arr, k, v;\n arr = [];\n\n for (k in obj) {\n v = obj[k];\n arr.push(k, v != null ? v.toString() : \"\");\n }\n\n return arr;\n }\n\n prepareInitSettings(clear) {\n var args;\n args = this.prepareObject(Object.assign({}, this.storeOptions, {\n id: this.originalId,\n version: this.instance.version,\n groupTimeout: this.timeout,\n clientTimeout: this.clientTimeout\n }));\n args.unshift(clear ? 1 : 0, this.instance.version);\n return args;\n }\n\n convertBool(b) {\n return !!b;\n }\n\n __updateSettings__(options) {\n var _this4 = this;\n\n return _asyncToGenerator(function* () {\n yield _this4.runScript(\"update_settings\", _this4.prepareObject(options));\n return parser.overwrite(options, options, _this4.storeOptions);\n })();\n }\n\n __running__() {\n return this.runScript(\"running\", []);\n }\n\n __queued__() {\n return this.runScript(\"queued\", []);\n }\n\n __done__() {\n return this.runScript(\"done\", []);\n }\n\n __groupCheck__() {\n var _this5 = this;\n\n return _asyncToGenerator(function* () {\n return _this5.convertBool((yield _this5.runScript(\"group_check\", [])));\n })();\n }\n\n __incrementReservoir__(incr) {\n return this.runScript(\"increment_reservoir\", [incr]);\n }\n\n __currentReservoir__() {\n return this.runScript(\"current_reservoir\", []);\n }\n\n __check__(weight) {\n var _this6 = this;\n\n return _asyncToGenerator(function* () {\n return _this6.convertBool((yield _this6.runScript(\"check\", _this6.prepareArray([weight]))));\n })();\n }\n\n __register__(index, weight, expiration) {\n var _this7 = this;\n\n return _asyncToGenerator(function* () {\n var reservoir, success, wait;\n\n var _ref4 = yield _this7.runScript(\"register\", _this7.prepareArray([index, weight, expiration]));\n\n var _ref5 = _slicedToArray(_ref4, 3);\n\n success = _ref5[0];\n wait = _ref5[1];\n reservoir = _ref5[2];\n return {\n success: _this7.convertBool(success),\n wait,\n reservoir\n };\n })();\n }\n\n __submit__(queueLength, weight) {\n var _this8 = this;\n\n return _asyncToGenerator(function* () {\n var blocked, e, maxConcurrent, overweight, reachedHWM, strategy;\n\n try {\n var _ref6 = yield _this8.runScript(\"submit\", _this8.prepareArray([queueLength, weight]));\n\n var _ref7 = _slicedToArray(_ref6, 3);\n\n reachedHWM = _ref7[0];\n blocked = _ref7[1];\n strategy = _ref7[2];\n return {\n reachedHWM: _this8.convertBool(reachedHWM),\n blocked: _this8.convertBool(blocked),\n strategy\n };\n } catch (error) {\n e = error;\n\n if (e.message.indexOf(\"OVERWEIGHT\") === 0) {\n var _e$message$split = e.message.split(\":\");\n\n var _e$message$split2 = _slicedToArray(_e$message$split, 3);\n\n overweight = _e$message$split2[0];\n weight = _e$message$split2[1];\n maxConcurrent = _e$message$split2[2];\n throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${maxConcurrent}`);\n } else {\n throw e;\n }\n }\n })();\n }\n\n __free__(index, weight) {\n var _this9 = this;\n\n return _asyncToGenerator(function* () {\n var running;\n running = yield _this9.runScript(\"free\", _this9.prepareArray([index]));\n return {\n running\n };\n })();\n }\n\n};\nmodule.exports = RedisDatastore;","\"use strict\";\n\nvar BottleneckError, States;\nBottleneckError = require(\"./BottleneckError\");\nStates = class States {\n constructor(status1) {\n this.status = status1;\n this._jobs = {};\n this.counts = this.status.map(function () {\n return 0;\n });\n }\n\n next(id) {\n var current, next;\n current = this._jobs[id];\n next = current + 1;\n\n if (current != null && next < this.status.length) {\n this.counts[current]--;\n this.counts[next]++;\n return this._jobs[id]++;\n } else if (current != null) {\n this.counts[current]--;\n return delete this._jobs[id];\n }\n }\n\n start(id) {\n var initial;\n initial = 0;\n this._jobs[id] = initial;\n return this.counts[initial]++;\n }\n\n remove(id) {\n var current;\n current = this._jobs[id];\n\n if (current != null) {\n this.counts[current]--;\n delete this._jobs[id];\n }\n\n return current != null;\n }\n\n jobStatus(id) {\n var ref;\n return (ref = this.status[this._jobs[id]]) != null ? ref : null;\n }\n\n statusJobs(status) {\n var k, pos, ref, results, v;\n\n if (status != null) {\n pos = this.status.indexOf(status);\n\n if (pos < 0) {\n throw new BottleneckError(`status must be one of ${this.status.join(', ')}`);\n }\n\n ref = this._jobs;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n\n if (v === pos) {\n results.push(k);\n }\n }\n\n return results;\n } else {\n return Object.keys(this._jobs);\n }\n }\n\n statusCounts() {\n return this.counts.reduce((acc, v, i) => {\n acc[this.status[i]] = v;\n return acc;\n }, {});\n }\n\n};\nmodule.exports = States;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar DLList, Sync;\nDLList = require(\"./DLList\");\nSync = class Sync {\n constructor(name, Promise) {\n this.schedule = this.schedule.bind(this);\n this.name = name;\n this.Promise = Promise;\n this._running = 0;\n this._queue = new DLList();\n }\n\n isEmpty() {\n return this._queue.length === 0;\n }\n\n _tryToRun() {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var args, cb, error, reject, resolve, returned, task;\n\n if (_this._running < 1 && _this._queue.length > 0) {\n _this._running++;\n\n var _this$_queue$shift = _this._queue.shift();\n\n task = _this$_queue$shift.task;\n args = _this$_queue$shift.args;\n resolve = _this$_queue$shift.resolve;\n reject = _this$_queue$shift.reject;\n cb = yield _asyncToGenerator(function* () {\n try {\n returned = yield task(...args);\n return function () {\n return resolve(returned);\n };\n } catch (error1) {\n error = error1;\n return function () {\n return reject(error);\n };\n }\n })();\n _this._running--;\n\n _this._tryToRun();\n\n return cb();\n }\n })();\n }\n\n schedule(task, ...args) {\n var promise, reject, resolve;\n resolve = reject = null;\n promise = new this.Promise(function (_resolve, _reject) {\n resolve = _resolve;\n return reject = _reject;\n });\n\n this._queue.push({\n task,\n args,\n resolve,\n reject\n });\n\n this._tryToRun();\n\n return promise;\n }\n\n};\nmodule.exports = Sync;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, Group, IORedisConnection, RedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nRedisConnection = require(\"./RedisConnection\");\nIORedisConnection = require(\"./IORedisConnection\");\nScripts = require(\"./Scripts\");\n\nGroup = function () {\n class Group {\n constructor(limiterOptions = {}) {\n this.deleteKey = this.deleteKey.bind(this);\n this.limiterOptions = limiterOptions;\n parser.load(this.limiterOptions, this.defaults, this);\n this.Events = new Events(this);\n this.instances = {};\n this.Bottleneck = require(\"./Bottleneck\");\n\n this._startAutoCleanup();\n\n this.sharedConnection = this.connection != null;\n\n if (this.connection == null) {\n if (this.limiterOptions.datastore === \"redis\") {\n this.connection = new RedisConnection(Object.assign({}, this.limiterOptions, {\n Events: this.Events\n }));\n } else if (this.limiterOptions.datastore === \"ioredis\") {\n this.connection = new IORedisConnection(Object.assign({}, this.limiterOptions, {\n Events: this.Events\n }));\n }\n }\n }\n\n key(key = \"\") {\n var ref;\n return (ref = this.instances[key]) != null ? ref : (() => {\n var limiter;\n limiter = this.instances[key] = new this.Bottleneck(Object.assign(this.limiterOptions, {\n id: `${this.id}-${key}`,\n timeout: this.timeout,\n connection: this.connection\n }));\n this.Events.trigger(\"created\", limiter, key);\n return limiter;\n })();\n }\n\n deleteKey(key = \"\") {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var deleted, instance;\n instance = _this.instances[key];\n\n if (_this.connection) {\n deleted = yield _this.connection.__runCommand__(['del', ...Scripts.allKeys(`${_this.id}-${key}`)]);\n }\n\n if (instance != null) {\n delete _this.instances[key];\n yield instance.disconnect();\n }\n\n return instance != null || deleted > 0;\n })();\n }\n\n limiters() {\n var k, ref, results, v;\n ref = this.instances;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n results.push({\n key: k,\n limiter: v\n });\n }\n\n return results;\n }\n\n keys() {\n return Object.keys(this.instances);\n }\n\n clusterKeys() {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var cursor, end, found, i, k, keys, len, next, start;\n\n if (_this2.connection == null) {\n return _this2.Promise.resolve(_this2.keys());\n }\n\n keys = [];\n cursor = null;\n start = `b_${_this2.id}-`.length;\n end = \"_settings\".length;\n\n while (cursor !== 0) {\n var _ref = yield _this2.connection.__runCommand__([\"scan\", cursor != null ? cursor : 0, \"match\", `b_${_this2.id}-*_settings`, \"count\", 10000]);\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n next = _ref2[0];\n found = _ref2[1];\n cursor = ~~next;\n\n for (i = 0, len = found.length; i < len; i++) {\n k = found[i];\n keys.push(k.slice(start, -end));\n }\n }\n\n return keys;\n })();\n }\n\n _startAutoCleanup() {\n var _this3 = this;\n\n var base;\n clearInterval(this.interval);\n return typeof (base = this.interval = setInterval(\n /*#__PURE__*/\n _asyncToGenerator(function* () {\n var e, k, ref, results, time, v;\n time = Date.now();\n ref = _this3.instances;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n\n try {\n if (yield v._store.__groupCheck__(time)) {\n results.push(_this3.deleteKey(k));\n } else {\n results.push(void 0);\n }\n } catch (error) {\n e = error;\n results.push(v.Events.trigger(\"error\", e));\n }\n }\n\n return results;\n }), this.timeout / 2)).unref === \"function\" ? base.unref() : void 0;\n }\n\n updateSettings(options = {}) {\n parser.overwrite(options, this.defaults, this);\n parser.overwrite(options, options, this.limiterOptions);\n\n if (options.timeout != null) {\n return this._startAutoCleanup();\n }\n }\n\n disconnect(flush = true) {\n var ref;\n\n if (!this.sharedConnection) {\n return (ref = this.connection) != null ? ref.disconnect(flush) : void 0;\n }\n }\n\n }\n\n ;\n Group.prototype.defaults = {\n timeout: 1000 * 60 * 5,\n connection: null,\n Promise: Promise,\n id: \"group-key\"\n };\n return Group;\n}.call(void 0);\n\nmodule.exports = Group;","\"use strict\";\n\nvar Batcher, Events, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\n\nBatcher = function () {\n class Batcher {\n constructor(options = {}) {\n this.options = options;\n parser.load(this.options, this.defaults, this);\n this.Events = new Events(this);\n this._arr = [];\n\n this._resetPromise();\n\n this._lastFlush = Date.now();\n }\n\n _resetPromise() {\n return this._promise = new this.Promise((res, rej) => {\n return this._resolve = res;\n });\n }\n\n _flush() {\n clearTimeout(this._timeout);\n this._lastFlush = Date.now();\n\n this._resolve();\n\n this.Events.trigger(\"batch\", this._arr);\n this._arr = [];\n return this._resetPromise();\n }\n\n add(data) {\n var ret;\n\n this._arr.push(data);\n\n ret = this._promise;\n\n if (this._arr.length === this.maxSize) {\n this._flush();\n } else if (this.maxTime != null && this._arr.length === 1) {\n this._timeout = setTimeout(() => {\n return this._flush();\n }, this.maxTime);\n }\n\n return ret;\n }\n\n }\n\n ;\n Batcher.prototype.defaults = {\n maxTime: null,\n maxSize: null,\n Promise: Promise\n };\n return Batcher;\n}.call(void 0);\n\nmodule.exports = Batcher;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Bottleneck,\n DEFAULT_PRIORITY,\n Events,\n Job,\n LocalDatastore,\n NUM_PRIORITIES,\n Queues,\n RedisDatastore,\n States,\n Sync,\n parser,\n splice = [].splice;\nNUM_PRIORITIES = 10;\nDEFAULT_PRIORITY = 5;\nparser = require(\"./parser\");\nQueues = require(\"./Queues\");\nJob = require(\"./Job\");\nLocalDatastore = require(\"./LocalDatastore\");\nRedisDatastore = require(\"./RedisDatastore\");\nEvents = require(\"./Events\");\nStates = require(\"./States\");\nSync = require(\"./Sync\");\n\nBottleneck = function () {\n class Bottleneck {\n constructor(options = {}, ...invalid) {\n var storeInstanceOptions, storeOptions;\n this._addToQueue = this._addToQueue.bind(this);\n\n this._validateOptions(options, invalid);\n\n parser.load(options, this.instanceDefaults, this);\n this._queues = new Queues(NUM_PRIORITIES);\n this._scheduled = {};\n this._states = new States([\"RECEIVED\", \"QUEUED\", \"RUNNING\", \"EXECUTING\"].concat(this.trackDoneStatus ? [\"DONE\"] : []));\n this._limiter = null;\n this.Events = new Events(this);\n this._submitLock = new Sync(\"submit\", this.Promise);\n this._registerLock = new Sync(\"register\", this.Promise);\n storeOptions = parser.load(options, this.storeDefaults, {});\n\n this._store = function () {\n if (this.datastore === \"redis\" || this.datastore === \"ioredis\" || this.connection != null) {\n storeInstanceOptions = parser.load(options, this.redisStoreDefaults, {});\n return new RedisDatastore(this, storeOptions, storeInstanceOptions);\n } else if (this.datastore === \"local\") {\n storeInstanceOptions = parser.load(options, this.localStoreDefaults, {});\n return new LocalDatastore(this, storeOptions, storeInstanceOptions);\n } else {\n throw new Bottleneck.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`);\n }\n }.call(this);\n\n this._queues.on(\"leftzero\", () => {\n var ref;\n return (ref = this._store.heartbeat) != null ? typeof ref.ref === \"function\" ? ref.ref() : void 0 : void 0;\n });\n\n this._queues.on(\"zero\", () => {\n var ref;\n return (ref = this._store.heartbeat) != null ? typeof ref.unref === \"function\" ? ref.unref() : void 0 : void 0;\n });\n }\n\n _validateOptions(options, invalid) {\n if (!(options != null && typeof options === \"object\" && invalid.length === 0)) {\n throw new Bottleneck.prototype.BottleneckError(\"Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.\");\n }\n }\n\n ready() {\n return this._store.ready;\n }\n\n clients() {\n return this._store.clients;\n }\n\n channel() {\n return `b_${this.id}`;\n }\n\n channel_client() {\n return `b_${this.id}_${this._store.clientId}`;\n }\n\n publish(message) {\n return this._store.__publish__(message);\n }\n\n disconnect(flush = true) {\n return this._store.__disconnect__(flush);\n }\n\n chain(_limiter) {\n this._limiter = _limiter;\n return this;\n }\n\n queued(priority) {\n return this._queues.queued(priority);\n }\n\n clusterQueued() {\n return this._store.__queued__();\n }\n\n empty() {\n return this.queued() === 0 && this._submitLock.isEmpty();\n }\n\n running() {\n return this._store.__running__();\n }\n\n done() {\n return this._store.__done__();\n }\n\n jobStatus(id) {\n return this._states.jobStatus(id);\n }\n\n jobs(status) {\n return this._states.statusJobs(status);\n }\n\n counts() {\n return this._states.statusCounts();\n }\n\n _randomIndex() {\n return Math.random().toString(36).slice(2);\n }\n\n check(weight = 1) {\n return this._store.__check__(weight);\n }\n\n _clearGlobalState(index) {\n if (this._scheduled[index] != null) {\n clearTimeout(this._scheduled[index].expiration);\n delete this._scheduled[index];\n return true;\n } else {\n return false;\n }\n }\n\n _free(index, job, options, eventInfo) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var e, running;\n\n try {\n var _ref = yield _this._store.__free__(index, options.weight);\n\n running = _ref.running;\n\n _this.Events.trigger(\"debug\", `Freed ${options.id}`, eventInfo);\n\n if (running === 0 && _this.empty()) {\n return _this.Events.trigger(\"idle\");\n }\n } catch (error1) {\n e = error1;\n return _this.Events.trigger(\"error\", e);\n }\n })();\n }\n\n _run(index, job, wait) {\n var clearGlobalState, free, run;\n job.doRun();\n clearGlobalState = this._clearGlobalState.bind(this, index);\n run = this._run.bind(this, index, job);\n free = this._free.bind(this, index, job);\n return this._scheduled[index] = {\n timeout: setTimeout(() => {\n return job.doExecute(this._limiter, clearGlobalState, run, free);\n }, wait),\n expiration: job.options.expiration != null ? setTimeout(function () {\n return job.doExpire(clearGlobalState, run, free);\n }, wait + job.options.expiration) : void 0,\n job: job\n };\n }\n\n _drainOne(capacity) {\n return this._registerLock.schedule(() => {\n var args, index, next, options, queue;\n\n if (this.queued() === 0) {\n return this.Promise.resolve(null);\n }\n\n queue = this._queues.getFirst();\n\n var _next2 = next = queue.first();\n\n options = _next2.options;\n args = _next2.args;\n\n if (capacity != null && options.weight > capacity) {\n return this.Promise.resolve(null);\n }\n\n this.Events.trigger(\"debug\", `Draining ${options.id}`, {\n args,\n options\n });\n index = this._randomIndex();\n return this._store.__register__(index, options.weight, options.expiration).then(({\n success,\n wait,\n reservoir\n }) => {\n var empty;\n this.Events.trigger(\"debug\", `Drained ${options.id}`, {\n success,\n args,\n options\n });\n\n if (success) {\n queue.shift();\n empty = this.empty();\n\n if (empty) {\n this.Events.trigger(\"empty\");\n }\n\n if (reservoir === 0) {\n this.Events.trigger(\"depleted\", empty);\n }\n\n this._run(index, next, wait);\n\n return this.Promise.resolve(options.weight);\n } else {\n return this.Promise.resolve(null);\n }\n });\n });\n }\n\n _drainAll(capacity, total = 0) {\n return this._drainOne(capacity).then(drained => {\n var newCapacity;\n\n if (drained != null) {\n newCapacity = capacity != null ? capacity - drained : capacity;\n return this._drainAll(newCapacity, total + drained);\n } else {\n return this.Promise.resolve(total);\n }\n }).catch(e => {\n return this.Events.trigger(\"error\", e);\n });\n }\n\n _dropAllQueued(message) {\n return this._queues.shiftAll(function (job) {\n return job.doDrop({\n message\n });\n });\n }\n\n stop(options = {}) {\n var done, waitForExecuting;\n options = parser.load(options, this.stopDefaults);\n\n waitForExecuting = at => {\n var finished;\n\n finished = () => {\n var counts;\n counts = this._states.counts;\n return counts[0] + counts[1] + counts[2] + counts[3] === at;\n };\n\n return new this.Promise((resolve, reject) => {\n if (finished()) {\n return resolve();\n } else {\n return this.on(\"done\", () => {\n if (finished()) {\n this.removeAllListeners(\"done\");\n return resolve();\n }\n });\n }\n });\n };\n\n done = options.dropWaitingJobs ? (this._run = function (index, next) {\n return next.doDrop({\n message: options.dropErrorMessage\n });\n }, this._drainOne = () => {\n return this.Promise.resolve(null);\n }, this._registerLock.schedule(() => {\n return this._submitLock.schedule(() => {\n var k, ref, v;\n ref = this._scheduled;\n\n for (k in ref) {\n v = ref[k];\n\n if (this.jobStatus(v.job.options.id) === \"RUNNING\") {\n clearTimeout(v.timeout);\n clearTimeout(v.expiration);\n v.job.doDrop({\n message: options.dropErrorMessage\n });\n }\n }\n\n this._dropAllQueued(options.dropErrorMessage);\n\n return waitForExecuting(0);\n });\n })) : this.schedule({\n priority: NUM_PRIORITIES - 1,\n weight: 0\n }, () => {\n return waitForExecuting(1);\n });\n\n this._receive = function (job) {\n return job._reject(new Bottleneck.prototype.BottleneckError(options.enqueueErrorMessage));\n };\n\n this.stop = () => {\n return this.Promise.reject(new Bottleneck.prototype.BottleneckError(\"stop() has already been called\"));\n };\n\n return done;\n }\n\n _addToQueue(job) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var args, blocked, error, options, reachedHWM, shifted, strategy;\n args = job.args;\n options = job.options;\n\n try {\n var _ref2 = yield _this2._store.__submit__(_this2.queued(), options.weight);\n\n reachedHWM = _ref2.reachedHWM;\n blocked = _ref2.blocked;\n strategy = _ref2.strategy;\n } catch (error1) {\n error = error1;\n\n _this2.Events.trigger(\"debug\", `Could not queue ${options.id}`, {\n args,\n options,\n error\n });\n\n job.doDrop({\n error\n });\n return false;\n }\n\n if (blocked) {\n job.doDrop();\n return true;\n } else if (reachedHWM) {\n shifted = strategy === Bottleneck.prototype.strategy.LEAK ? _this2._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? _this2._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0;\n\n if (shifted != null) {\n shifted.doDrop();\n }\n\n if (shifted == null || strategy === Bottleneck.prototype.strategy.OVERFLOW) {\n if (shifted == null) {\n job.doDrop();\n }\n\n return reachedHWM;\n }\n }\n\n job.doQueue(reachedHWM, blocked);\n\n _this2._queues.push(job);\n\n yield _this2._drainAll();\n return reachedHWM;\n })();\n }\n\n _receive(job) {\n if (this._states.jobStatus(job.options.id) != null) {\n job._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${job.options.id})`));\n\n return false;\n } else {\n job.doReceive();\n return this._submitLock.schedule(this._addToQueue, job);\n }\n }\n\n submit(...args) {\n var cb, fn, job, options, ref, ref1, task;\n\n if (typeof args[0] === \"function\") {\n var _ref3, _ref4, _splice$call, _splice$call2;\n\n ref = args, (_ref3 = ref, _ref4 = _toArray(_ref3), fn = _ref4[0], args = _ref4.slice(1), _ref3), (_splice$call = splice.call(args, -1), _splice$call2 = _slicedToArray(_splice$call, 1), cb = _splice$call2[0], _splice$call);\n options = parser.load({}, this.jobDefaults);\n } else {\n var _ref5, _ref6, _splice$call3, _splice$call4;\n\n ref1 = args, (_ref5 = ref1, _ref6 = _toArray(_ref5), options = _ref6[0], fn = _ref6[1], args = _ref6.slice(2), _ref5), (_splice$call3 = splice.call(args, -1), _splice$call4 = _slicedToArray(_splice$call3, 1), cb = _splice$call4[0], _splice$call3);\n options = parser.load(options, this.jobDefaults);\n }\n\n task = (...args) => {\n return new this.Promise(function (resolve, reject) {\n return fn(...args, function (...args) {\n return (args[0] != null ? reject : resolve)(args);\n });\n });\n };\n\n job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise);\n job.promise.then(function (args) {\n return typeof cb === \"function\" ? cb(...args) : void 0;\n }).catch(function (args) {\n if (Array.isArray(args)) {\n return typeof cb === \"function\" ? cb(...args) : void 0;\n } else {\n return typeof cb === \"function\" ? cb(args) : void 0;\n }\n });\n return this._receive(job);\n }\n\n schedule(...args) {\n var job, options, task;\n\n if (typeof args[0] === \"function\") {\n var _args = args;\n\n var _args2 = _toArray(_args);\n\n task = _args2[0];\n args = _args2.slice(1);\n options = {};\n } else {\n var _args3 = args;\n\n var _args4 = _toArray(_args3);\n\n options = _args4[0];\n task = _args4[1];\n args = _args4.slice(2);\n }\n\n job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise);\n\n this._receive(job);\n\n return job.promise;\n }\n\n wrap(fn) {\n var schedule, wrapped;\n schedule = this.schedule.bind(this);\n\n wrapped = function wrapped(...args) {\n return schedule(fn.bind(this), ...args);\n };\n\n wrapped.withOptions = function (options, ...args) {\n return schedule(options, fn, ...args);\n };\n\n return wrapped;\n }\n\n updateSettings(options = {}) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n yield _this3._store.__updateSettings__(parser.overwrite(options, _this3.storeDefaults));\n parser.overwrite(options, _this3.instanceDefaults, _this3);\n return _this3;\n })();\n }\n\n currentReservoir() {\n return this._store.__currentReservoir__();\n }\n\n incrementReservoir(incr = 0) {\n return this._store.__incrementReservoir__(incr);\n }\n\n }\n\n ;\n Bottleneck.default = Bottleneck;\n Bottleneck.Events = Events;\n Bottleneck.version = Bottleneck.prototype.version = require(\"./version.json\").version;\n Bottleneck.strategy = Bottleneck.prototype.strategy = {\n LEAK: 1,\n OVERFLOW: 2,\n OVERFLOW_PRIORITY: 4,\n BLOCK: 3\n };\n Bottleneck.BottleneckError = Bottleneck.prototype.BottleneckError = require(\"./BottleneckError\");\n Bottleneck.Group = Bottleneck.prototype.Group = require(\"./Group\");\n Bottleneck.RedisConnection = Bottleneck.prototype.RedisConnection = require(\"./RedisConnection\");\n Bottleneck.IORedisConnection = Bottleneck.prototype.IORedisConnection = require(\"./IORedisConnection\");\n Bottleneck.Batcher = Bottleneck.prototype.Batcher = require(\"./Batcher\");\n Bottleneck.prototype.jobDefaults = {\n priority: DEFAULT_PRIORITY,\n weight: 1,\n expiration: null,\n id: \"\"\n };\n Bottleneck.prototype.storeDefaults = {\n maxConcurrent: null,\n minTime: 0,\n highWater: null,\n strategy: Bottleneck.prototype.strategy.LEAK,\n penalty: null,\n reservoir: null,\n reservoirRefreshInterval: null,\n reservoirRefreshAmount: null,\n reservoirIncreaseInterval: null,\n reservoirIncreaseAmount: null,\n reservoirIncreaseMaximum: null\n };\n Bottleneck.prototype.localStoreDefaults = {\n Promise: Promise,\n timeout: null,\n heartbeatInterval: 250\n };\n Bottleneck.prototype.redisStoreDefaults = {\n Promise: Promise,\n timeout: null,\n heartbeatInterval: 5000,\n clientTimeout: 10000,\n Redis: null,\n clientOptions: {},\n clusterNodes: null,\n clearDatastore: false,\n connection: null\n };\n Bottleneck.prototype.instanceDefaults = {\n datastore: \"local\",\n connection: null,\n id: \"\",\n rejectOnDrop: true,\n trackDoneStatus: false,\n Promise: Promise\n };\n Bottleneck.prototype.stopDefaults = {\n enqueueErrorMessage: \"This limiter has been stopped and cannot accept new jobs.\",\n dropWaitingJobs: true,\n dropErrorMessage: \"This limiter has been stopped.\"\n };\n return Bottleneck;\n}.call(void 0);\n\nmodule.exports = Bottleneck;","\"use strict\";\n\nmodule.exports = require(\"./Bottleneck\");","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","module.exports = require('util').inspect;\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar match = String.prototype.match;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\nvar toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('options \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n return String(obj);\n }\n if (typeof obj === 'bigint') {\n return String(obj) + 'n';\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = seen.slice();\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + String(obj.nodeName).toLowerCase();\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + xs.join(', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + ys.join(', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return String(s).replace(/\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = str.replace(/(['\\\\])/g, '\\\\$1').replace(/[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = Array(opts.indent + 1).join(' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: Array(depth + 1).join(baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + xs.join(',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ((/[^\\w$]/).test(key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n if (sideChannel.has(object)) {\n throw new RangeError('Cyclic object value');\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, true);\n var valueSideChannel = getSideChannel();\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","export default function(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)})}\n//# sourceMappingURL=unfetch.module.js.map\n","module.exports = self.fetch || (self.fetch = require('unfetch').default || require('unfetch'));\n",null,null,null,"// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\n\nvar ws = null\n\nif (typeof WebSocket !== 'undefined') {\n ws = WebSocket\n} else if (typeof MozWebSocket !== 'undefined') {\n ws = MozWebSocket\n} else if (typeof global !== 'undefined') {\n ws = global.WebSocket || global.MozWebSocket\n} else if (typeof window !== 'undefined') {\n ws = window.WebSocket || window.MozWebSocket\n} else if (typeof self !== 'undefined') {\n ws = self.WebSocket || self.MozWebSocket\n}\n\nmodule.exports = ws\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\n\nmodule.exports = value => {\n\tif (typeof Blob === 'undefined') {\n\t\treturn false;\n\t}\n\n\treturn value instanceof Blob || Object.prototype.toString.call(value) === '[object Blob]';\n};\n",null,null],"names":["DLList","asyncGeneratorStep","_asyncToGenerator","Events","Queues","require$$0","require$$1","BottleneckError","DEFAULT_PRIORITY","Job","NUM_PRIORITIES","parser","LocalDatastore","RedisConnection","Scripts","require$$2","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","IORedisConnection","RedisDatastore","require$$3","States","Sync","require$$4","require$$5","require$$6","require$$7","require$$9","require$$10","require$$11","require$$12","require$$13","hasSymbolSham","toStr","bind","undefined","$TypeError","hasOwn","GetIntrinsic","has","isArray","isRegExp","inspect","defaults","sideChannel","getSideChannel","parse","stringify","isofetch","Bottleneck","qs","global","EventEmitter","WebSocket"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"alpaca.browser.modern.js","sources":["../node_modules/bottleneck/lib/parser.js","../node_modules/bottleneck/lib/DLList.js","../node_modules/bottleneck/lib/Events.js","../node_modules/bottleneck/lib/Queues.js","../node_modules/bottleneck/lib/BottleneckError.js","../node_modules/bottleneck/lib/Job.js","../node_modules/bottleneck/lib/LocalDatastore.js","../node_modules/bottleneck/lib/Scripts.js","../node_modules/bottleneck/lib/RedisConnection.js","../node_modules/bottleneck/lib/IORedisConnection.js","../node_modules/bottleneck/lib/RedisDatastore.js","../node_modules/bottleneck/lib/States.js","../node_modules/bottleneck/lib/Sync.js","../node_modules/bottleneck/lib/Group.js","../node_modules/bottleneck/lib/Batcher.js","../node_modules/bottleneck/lib/Bottleneck.js","../node_modules/bottleneck/lib/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-symbols/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/has/src/index.js","../node_modules/get-intrinsic/index.js","../node_modules/call-bind/index.js","../node_modules/call-bind/callBound.js","../node_modules/object-inspect/util.inspect.js","../node_modules/object-inspect/index.js","../node_modules/side-channel/index.js","../node_modules/qs/lib/formats.js","../node_modules/qs/lib/utils.js","../node_modules/qs/lib/stringify.js","../node_modules/qs/lib/parse.js","../node_modules/qs/lib/index.js","../node_modules/unfetch/dist/unfetch.module.js","../node_modules/isomorphic-unfetch/browser.js","../src/urls.ts","../src/parse.ts","../src/client.ts","../node_modules/isomorphic-ws/browser.js","../node_modules/eventemitter3/index.js","../node_modules/is-blob/index.js","../src/stream.ts","../src/index.ts"],"sourcesContent":["\"use strict\";\n\nexports.load = function (received, defaults, onto = {}) {\n var k, ref, v;\n\n for (k in defaults) {\n v = defaults[k];\n onto[k] = (ref = received[k]) != null ? ref : v;\n }\n\n return onto;\n};\n\nexports.overwrite = function (received, defaults, onto = {}) {\n var k, v;\n\n for (k in received) {\n v = received[k];\n\n if (defaults[k] !== void 0) {\n onto[k] = v;\n }\n }\n\n return onto;\n};","\"use strict\";\n\nvar DLList;\nDLList = class DLList {\n constructor(incr, decr) {\n this.incr = incr;\n this.decr = decr;\n this._first = null;\n this._last = null;\n this.length = 0;\n }\n\n push(value) {\n var node;\n this.length++;\n\n if (typeof this.incr === \"function\") {\n this.incr();\n }\n\n node = {\n value,\n prev: this._last,\n next: null\n };\n\n if (this._last != null) {\n this._last.next = node;\n this._last = node;\n } else {\n this._first = this._last = node;\n }\n\n return void 0;\n }\n\n shift() {\n var value;\n\n if (this._first == null) {\n return;\n } else {\n this.length--;\n\n if (typeof this.decr === \"function\") {\n this.decr();\n }\n }\n\n value = this._first.value;\n\n if ((this._first = this._first.next) != null) {\n this._first.prev = null;\n } else {\n this._last = null;\n }\n\n return value;\n }\n\n first() {\n if (this._first != null) {\n return this._first.value;\n }\n }\n\n getArray() {\n var node, ref, results;\n node = this._first;\n results = [];\n\n while (node != null) {\n results.push((ref = node, node = node.next, ref.value));\n }\n\n return results;\n }\n\n forEachShift(cb) {\n var node;\n node = this.shift();\n\n while (node != null) {\n cb(node), node = this.shift();\n }\n\n return void 0;\n }\n\n debug() {\n var node, ref, ref1, ref2, results;\n node = this._first;\n results = [];\n\n while (node != null) {\n results.push((ref = node, node = node.next, {\n value: ref.value,\n prev: (ref1 = ref.prev) != null ? ref1.value : void 0,\n next: (ref2 = ref.next) != null ? ref2.value : void 0\n }));\n }\n\n return results;\n }\n\n};\nmodule.exports = DLList;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events;\nEvents = class Events {\n constructor(instance) {\n this.instance = instance;\n this._events = {};\n\n if (this.instance.on != null || this.instance.once != null || this.instance.removeAllListeners != null) {\n throw new Error(\"An Emitter already exists for this object\");\n }\n\n this.instance.on = (name, cb) => {\n return this._addListener(name, \"many\", cb);\n };\n\n this.instance.once = (name, cb) => {\n return this._addListener(name, \"once\", cb);\n };\n\n this.instance.removeAllListeners = (name = null) => {\n if (name != null) {\n return delete this._events[name];\n } else {\n return this._events = {};\n }\n };\n }\n\n _addListener(name, status, cb) {\n var base;\n\n if ((base = this._events)[name] == null) {\n base[name] = [];\n }\n\n this._events[name].push({\n cb,\n status\n });\n\n return this.instance;\n }\n\n listenerCount(name) {\n if (this._events[name] != null) {\n return this._events[name].length;\n } else {\n return 0;\n }\n }\n\n trigger(name, ...args) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var e, promises;\n\n try {\n if (name !== \"debug\") {\n _this.trigger(\"debug\", `Event triggered: ${name}`, args);\n }\n\n if (_this._events[name] == null) {\n return;\n }\n\n _this._events[name] = _this._events[name].filter(function (listener) {\n return listener.status !== \"none\";\n });\n promises = _this._events[name].map(\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(function* (listener) {\n var e, returned;\n\n if (listener.status === \"none\") {\n return;\n }\n\n if (listener.status === \"once\") {\n listener.status = \"none\";\n }\n\n try {\n returned = typeof listener.cb === \"function\" ? listener.cb(...args) : void 0;\n\n if (typeof (returned != null ? returned.then : void 0) === \"function\") {\n return yield returned;\n } else {\n return returned;\n }\n } catch (error) {\n e = error;\n\n if (\"name\" !== \"error\") {\n _this.trigger(\"error\", e);\n }\n\n return null;\n }\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n return (yield Promise.all(promises)).find(function (x) {\n return x != null;\n });\n } catch (error) {\n e = error;\n\n if (\"name\" !== \"error\") {\n _this.trigger(\"error\", e);\n }\n\n return null;\n }\n })();\n }\n\n};\nmodule.exports = Events;","\"use strict\";\n\nvar DLList, Events, Queues;\nDLList = require(\"./DLList\");\nEvents = require(\"./Events\");\nQueues = class Queues {\n constructor(num_priorities) {\n var i;\n this.Events = new Events(this);\n this._length = 0;\n\n this._lists = function () {\n var j, ref, results;\n results = [];\n\n for (i = j = 1, ref = num_priorities; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\n results.push(new DLList(() => {\n return this.incr();\n }, () => {\n return this.decr();\n }));\n }\n\n return results;\n }.call(this);\n }\n\n incr() {\n if (this._length++ === 0) {\n return this.Events.trigger(\"leftzero\");\n }\n }\n\n decr() {\n if (--this._length === 0) {\n return this.Events.trigger(\"zero\");\n }\n }\n\n push(job) {\n return this._lists[job.options.priority].push(job);\n }\n\n queued(priority) {\n if (priority != null) {\n return this._lists[priority].length;\n } else {\n return this._length;\n }\n }\n\n shiftAll(fn) {\n return this._lists.forEach(function (list) {\n return list.forEachShift(fn);\n });\n }\n\n getFirst(arr = this._lists) {\n var j, len, list;\n\n for (j = 0, len = arr.length; j < len; j++) {\n list = arr[j];\n\n if (list.length > 0) {\n return list;\n }\n }\n\n return [];\n }\n\n shiftLastFrom(priority) {\n return this.getFirst(this._lists.slice(priority).reverse()).shift();\n }\n\n};\nmodule.exports = Queues;","\"use strict\";\n\nvar BottleneckError;\nBottleneckError = class BottleneckError extends Error {};\nmodule.exports = BottleneckError;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, DEFAULT_PRIORITY, Job, NUM_PRIORITIES, parser;\nNUM_PRIORITIES = 10;\nDEFAULT_PRIORITY = 5;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nJob = class Job {\n constructor(task, args, options, jobDefaults, rejectOnDrop, Events, _states, Promise) {\n this.task = task;\n this.args = args;\n this.rejectOnDrop = rejectOnDrop;\n this.Events = Events;\n this._states = _states;\n this.Promise = Promise;\n this.options = parser.load(options, jobDefaults);\n this.options.priority = this._sanitizePriority(this.options.priority);\n\n if (this.options.id === jobDefaults.id) {\n this.options.id = `${this.options.id}-${this._randomIndex()}`;\n }\n\n this.promise = new this.Promise((_resolve, _reject) => {\n this._resolve = _resolve;\n this._reject = _reject;\n });\n this.retryCount = 0;\n }\n\n _sanitizePriority(priority) {\n var sProperty;\n sProperty = ~~priority !== priority ? DEFAULT_PRIORITY : priority;\n\n if (sProperty < 0) {\n return 0;\n } else if (sProperty > NUM_PRIORITIES - 1) {\n return NUM_PRIORITIES - 1;\n } else {\n return sProperty;\n }\n }\n\n _randomIndex() {\n return Math.random().toString(36).slice(2);\n }\n\n doDrop({\n error,\n message = \"This job has been dropped by Bottleneck\"\n } = {}) {\n if (this._states.remove(this.options.id)) {\n if (this.rejectOnDrop) {\n this._reject(error != null ? error : new BottleneckError(message));\n }\n\n this.Events.trigger(\"dropped\", {\n args: this.args,\n options: this.options,\n task: this.task,\n promise: this.promise\n });\n return true;\n } else {\n return false;\n }\n }\n\n _assertStatus(expected) {\n var status;\n status = this._states.jobStatus(this.options.id);\n\n if (!(status === expected || expected === \"DONE\" && status === null)) {\n throw new BottleneckError(`Invalid job status ${status}, expected ${expected}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`);\n }\n }\n\n doReceive() {\n this._states.start(this.options.id);\n\n return this.Events.trigger(\"received\", {\n args: this.args,\n options: this.options\n });\n }\n\n doQueue(reachedHWM, blocked) {\n this._assertStatus(\"RECEIVED\");\n\n this._states.next(this.options.id);\n\n return this.Events.trigger(\"queued\", {\n args: this.args,\n options: this.options,\n reachedHWM,\n blocked\n });\n }\n\n doRun() {\n if (this.retryCount === 0) {\n this._assertStatus(\"QUEUED\");\n\n this._states.next(this.options.id);\n } else {\n this._assertStatus(\"EXECUTING\");\n }\n\n return this.Events.trigger(\"scheduled\", {\n args: this.args,\n options: this.options\n });\n }\n\n doExecute(chained, clearGlobalState, run, free) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var error, eventInfo, passed;\n\n if (_this.retryCount === 0) {\n _this._assertStatus(\"RUNNING\");\n\n _this._states.next(_this.options.id);\n } else {\n _this._assertStatus(\"EXECUTING\");\n }\n\n eventInfo = {\n args: _this.args,\n options: _this.options,\n retryCount: _this.retryCount\n };\n\n _this.Events.trigger(\"executing\", eventInfo);\n\n try {\n passed = yield chained != null ? chained.schedule(_this.options, _this.task, ..._this.args) : _this.task(..._this.args);\n\n if (clearGlobalState()) {\n _this.doDone(eventInfo);\n\n yield free(_this.options, eventInfo);\n\n _this._assertStatus(\"DONE\");\n\n return _this._resolve(passed);\n }\n } catch (error1) {\n error = error1;\n return _this._onFailure(error, eventInfo, clearGlobalState, run, free);\n }\n })();\n }\n\n doExpire(clearGlobalState, run, free) {\n var error, eventInfo;\n\n if (this._states.jobStatus(this.options.id === \"RUNNING\")) {\n this._states.next(this.options.id);\n }\n\n this._assertStatus(\"EXECUTING\");\n\n eventInfo = {\n args: this.args,\n options: this.options,\n retryCount: this.retryCount\n };\n error = new BottleneckError(`This job timed out after ${this.options.expiration} ms.`);\n return this._onFailure(error, eventInfo, clearGlobalState, run, free);\n }\n\n _onFailure(error, eventInfo, clearGlobalState, run, free) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var retry, retryAfter;\n\n if (clearGlobalState()) {\n retry = yield _this2.Events.trigger(\"failed\", error, eventInfo);\n\n if (retry != null) {\n retryAfter = ~~retry;\n\n _this2.Events.trigger(\"retry\", `Retrying ${_this2.options.id} after ${retryAfter} ms`, eventInfo);\n\n _this2.retryCount++;\n return run(retryAfter);\n } else {\n _this2.doDone(eventInfo);\n\n yield free(_this2.options, eventInfo);\n\n _this2._assertStatus(\"DONE\");\n\n return _this2._reject(error);\n }\n }\n })();\n }\n\n doDone(eventInfo) {\n this._assertStatus(\"EXECUTING\");\n\n this._states.next(this.options.id);\n\n return this.Events.trigger(\"done\", eventInfo);\n }\n\n};\nmodule.exports = Job;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, LocalDatastore, parser;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nLocalDatastore = class LocalDatastore {\n constructor(instance, storeOptions, storeInstanceOptions) {\n this.instance = instance;\n this.storeOptions = storeOptions;\n this.clientId = this.instance._randomIndex();\n parser.load(storeInstanceOptions, storeInstanceOptions, this);\n this._nextRequest = this._lastReservoirRefresh = this._lastReservoirIncrease = Date.now();\n this._running = 0;\n this._done = 0;\n this._unblockTime = 0;\n this.ready = this.Promise.resolve();\n this.clients = {};\n\n this._startHeartbeat();\n }\n\n _startHeartbeat() {\n var base;\n\n if (this.heartbeat == null && (this.storeOptions.reservoirRefreshInterval != null && this.storeOptions.reservoirRefreshAmount != null || this.storeOptions.reservoirIncreaseInterval != null && this.storeOptions.reservoirIncreaseAmount != null)) {\n return typeof (base = this.heartbeat = setInterval(() => {\n var amount, incr, maximum, now, reservoir;\n now = Date.now();\n\n if (this.storeOptions.reservoirRefreshInterval != null && now >= this._lastReservoirRefresh + this.storeOptions.reservoirRefreshInterval) {\n this._lastReservoirRefresh = now;\n this.storeOptions.reservoir = this.storeOptions.reservoirRefreshAmount;\n\n this.instance._drainAll(this.computeCapacity());\n }\n\n if (this.storeOptions.reservoirIncreaseInterval != null && now >= this._lastReservoirIncrease + this.storeOptions.reservoirIncreaseInterval) {\n var _this$storeOptions = this.storeOptions;\n amount = _this$storeOptions.reservoirIncreaseAmount;\n maximum = _this$storeOptions.reservoirIncreaseMaximum;\n reservoir = _this$storeOptions.reservoir;\n this._lastReservoirIncrease = now;\n incr = maximum != null ? Math.min(amount, maximum - reservoir) : amount;\n\n if (incr > 0) {\n this.storeOptions.reservoir += incr;\n return this.instance._drainAll(this.computeCapacity());\n }\n }\n }, this.heartbeatInterval)).unref === \"function\" ? base.unref() : void 0;\n } else {\n return clearInterval(this.heartbeat);\n }\n }\n\n __publish__(message) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n yield _this.yieldLoop();\n return _this.instance.Events.trigger(\"message\", message.toString());\n })();\n }\n\n __disconnect__(flush) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n yield _this2.yieldLoop();\n clearInterval(_this2.heartbeat);\n return _this2.Promise.resolve();\n })();\n }\n\n yieldLoop(t = 0) {\n return new this.Promise(function (resolve, reject) {\n return setTimeout(resolve, t);\n });\n }\n\n computePenalty() {\n var ref;\n return (ref = this.storeOptions.penalty) != null ? ref : 15 * this.storeOptions.minTime || 5000;\n }\n\n __updateSettings__(options) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n yield _this3.yieldLoop();\n parser.overwrite(options, options, _this3.storeOptions);\n\n _this3._startHeartbeat();\n\n _this3.instance._drainAll(_this3.computeCapacity());\n\n return true;\n })();\n }\n\n __running__() {\n var _this4 = this;\n\n return _asyncToGenerator(function* () {\n yield _this4.yieldLoop();\n return _this4._running;\n })();\n }\n\n __queued__() {\n var _this5 = this;\n\n return _asyncToGenerator(function* () {\n yield _this5.yieldLoop();\n return _this5.instance.queued();\n })();\n }\n\n __done__() {\n var _this6 = this;\n\n return _asyncToGenerator(function* () {\n yield _this6.yieldLoop();\n return _this6._done;\n })();\n }\n\n __groupCheck__(time) {\n var _this7 = this;\n\n return _asyncToGenerator(function* () {\n yield _this7.yieldLoop();\n return _this7._nextRequest + _this7.timeout < time;\n })();\n }\n\n computeCapacity() {\n var maxConcurrent, reservoir;\n var _this$storeOptions2 = this.storeOptions;\n maxConcurrent = _this$storeOptions2.maxConcurrent;\n reservoir = _this$storeOptions2.reservoir;\n\n if (maxConcurrent != null && reservoir != null) {\n return Math.min(maxConcurrent - this._running, reservoir);\n } else if (maxConcurrent != null) {\n return maxConcurrent - this._running;\n } else if (reservoir != null) {\n return reservoir;\n } else {\n return null;\n }\n }\n\n conditionsCheck(weight) {\n var capacity;\n capacity = this.computeCapacity();\n return capacity == null || weight <= capacity;\n }\n\n __incrementReservoir__(incr) {\n var _this8 = this;\n\n return _asyncToGenerator(function* () {\n var reservoir;\n yield _this8.yieldLoop();\n reservoir = _this8.storeOptions.reservoir += incr;\n\n _this8.instance._drainAll(_this8.computeCapacity());\n\n return reservoir;\n })();\n }\n\n __currentReservoir__() {\n var _this9 = this;\n\n return _asyncToGenerator(function* () {\n yield _this9.yieldLoop();\n return _this9.storeOptions.reservoir;\n })();\n }\n\n isBlocked(now) {\n return this._unblockTime >= now;\n }\n\n check(weight, now) {\n return this.conditionsCheck(weight) && this._nextRequest - now <= 0;\n }\n\n __check__(weight) {\n var _this10 = this;\n\n return _asyncToGenerator(function* () {\n var now;\n yield _this10.yieldLoop();\n now = Date.now();\n return _this10.check(weight, now);\n })();\n }\n\n __register__(index, weight, expiration) {\n var _this11 = this;\n\n return _asyncToGenerator(function* () {\n var now, wait;\n yield _this11.yieldLoop();\n now = Date.now();\n\n if (_this11.conditionsCheck(weight)) {\n _this11._running += weight;\n\n if (_this11.storeOptions.reservoir != null) {\n _this11.storeOptions.reservoir -= weight;\n }\n\n wait = Math.max(_this11._nextRequest - now, 0);\n _this11._nextRequest = now + wait + _this11.storeOptions.minTime;\n return {\n success: true,\n wait,\n reservoir: _this11.storeOptions.reservoir\n };\n } else {\n return {\n success: false\n };\n }\n })();\n }\n\n strategyIsBlock() {\n return this.storeOptions.strategy === 3;\n }\n\n __submit__(queueLength, weight) {\n var _this12 = this;\n\n return _asyncToGenerator(function* () {\n var blocked, now, reachedHWM;\n yield _this12.yieldLoop();\n\n if (_this12.storeOptions.maxConcurrent != null && weight > _this12.storeOptions.maxConcurrent) {\n throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${_this12.storeOptions.maxConcurrent}`);\n }\n\n now = Date.now();\n reachedHWM = _this12.storeOptions.highWater != null && queueLength === _this12.storeOptions.highWater && !_this12.check(weight, now);\n blocked = _this12.strategyIsBlock() && (reachedHWM || _this12.isBlocked(now));\n\n if (blocked) {\n _this12._unblockTime = now + _this12.computePenalty();\n _this12._nextRequest = _this12._unblockTime + _this12.storeOptions.minTime;\n\n _this12.instance._dropAllQueued();\n }\n\n return {\n reachedHWM,\n blocked,\n strategy: _this12.storeOptions.strategy\n };\n })();\n }\n\n __free__(index, weight) {\n var _this13 = this;\n\n return _asyncToGenerator(function* () {\n yield _this13.yieldLoop();\n _this13._running -= weight;\n _this13._done += weight;\n\n _this13.instance._drainAll(_this13.computeCapacity());\n\n return {\n running: _this13._running\n };\n })();\n }\n\n};\nmodule.exports = LocalDatastore;","\"use strict\";\n\nvar headers, lua, templates;\nlua = require(\"./lua.json\");\nheaders = {\n refs: lua[\"refs.lua\"],\n validate_keys: lua[\"validate_keys.lua\"],\n validate_client: lua[\"validate_client.lua\"],\n refresh_expiration: lua[\"refresh_expiration.lua\"],\n process_tick: lua[\"process_tick.lua\"],\n conditions_check: lua[\"conditions_check.lua\"],\n get_time: lua[\"get_time.lua\"]\n};\n\nexports.allKeys = function (id) {\n return [\n /*\n HASH\n */\n `b_${id}_settings`,\n /*\n HASH\n job index -> weight\n */\n `b_${id}_job_weights`,\n /*\n ZSET\n job index -> expiration\n */\n `b_${id}_job_expirations`,\n /*\n HASH\n job index -> client\n */\n `b_${id}_job_clients`,\n /*\n ZSET\n client -> sum running\n */\n `b_${id}_client_running`,\n /*\n HASH\n client -> num queued\n */\n `b_${id}_client_num_queued`,\n /*\n ZSET\n client -> last job registered\n */\n `b_${id}_client_last_registered`,\n /*\n ZSET\n client -> last seen\n */\n `b_${id}_client_last_seen`];\n};\n\ntemplates = {\n init: {\n keys: exports.allKeys,\n headers: [\"process_tick\"],\n refresh_expiration: true,\n code: lua[\"init.lua\"]\n },\n group_check: {\n keys: exports.allKeys,\n headers: [],\n refresh_expiration: false,\n code: lua[\"group_check.lua\"]\n },\n register_client: {\n keys: exports.allKeys,\n headers: [\"validate_keys\"],\n refresh_expiration: false,\n code: lua[\"register_client.lua\"]\n },\n blacklist_client: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\"],\n refresh_expiration: false,\n code: lua[\"blacklist_client.lua\"]\n },\n heartbeat: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"heartbeat.lua\"]\n },\n update_settings: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"update_settings.lua\"]\n },\n running: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"running.lua\"]\n },\n queued: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\"],\n refresh_expiration: false,\n code: lua[\"queued.lua\"]\n },\n done: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"done.lua\"]\n },\n check: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: false,\n code: lua[\"check.lua\"]\n },\n submit: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: true,\n code: lua[\"submit.lua\"]\n },\n register: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: true,\n code: lua[\"register.lua\"]\n },\n free: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"free.lua\"]\n },\n current_reservoir: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"current_reservoir.lua\"]\n },\n increment_reservoir: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"increment_reservoir.lua\"]\n }\n};\nexports.names = Object.keys(templates);\n\nexports.keys = function (name, id) {\n return templates[name].keys(id);\n};\n\nexports.payload = function (name) {\n var template;\n template = templates[name];\n return Array.prototype.concat(headers.refs, template.headers.map(function (h) {\n return headers[h];\n }), template.refresh_expiration ? headers.refresh_expiration : \"\", template.code).join(\"\\n\");\n};","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, RedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nScripts = require(\"./Scripts\");\n\nRedisConnection = function () {\n class RedisConnection {\n constructor(options = {}) {\n parser.load(options, this.defaults, this);\n\n if (this.Redis == null) {\n this.Redis = eval(\"require\")(\"redis\"); // Obfuscated or else Webpack/Angular will try to inline the optional redis module. To override this behavior: pass the redis module to Bottleneck as the 'Redis' option.\n }\n\n if (this.Events == null) {\n this.Events = new Events(this);\n }\n\n this.terminated = false;\n\n if (this.client == null) {\n this.client = this.Redis.createClient(this.clientOptions);\n }\n\n this.subscriber = this.client.duplicate();\n this.limiters = {};\n this.shas = {};\n this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => {\n return this._loadScripts();\n }).then(() => {\n return {\n client: this.client,\n subscriber: this.subscriber\n };\n });\n }\n\n _setup(client, sub) {\n client.setMaxListeners(0);\n return new this.Promise((resolve, reject) => {\n client.on(\"error\", e => {\n return this.Events.trigger(\"error\", e);\n });\n\n if (sub) {\n client.on(\"message\", (channel, message) => {\n var ref;\n return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0;\n });\n }\n\n if (client.ready) {\n return resolve();\n } else {\n return client.once(\"ready\", resolve);\n }\n });\n }\n\n _loadScript(name) {\n return new this.Promise((resolve, reject) => {\n var payload;\n payload = Scripts.payload(name);\n return this.client.multi([[\"script\", \"load\", payload]]).exec((err, replies) => {\n if (err != null) {\n return reject(err);\n }\n\n this.shas[name] = replies[0];\n return resolve(replies[0]);\n });\n });\n }\n\n _loadScripts() {\n return this.Promise.all(Scripts.names.map(k => {\n return this._loadScript(k);\n }));\n }\n\n __runCommand__(cmd) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n yield _this.ready;\n return new _this.Promise((resolve, reject) => {\n return _this.client.multi([cmd]).exec_atomic(function (err, replies) {\n if (err != null) {\n return reject(err);\n } else {\n return resolve(replies[0]);\n }\n });\n });\n })();\n }\n\n __addLimiter__(instance) {\n return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => {\n return new this.Promise((resolve, reject) => {\n var handler;\n\n handler = chan => {\n if (chan === channel) {\n this.subscriber.removeListener(\"subscribe\", handler);\n this.limiters[channel] = instance;\n return resolve();\n }\n };\n\n this.subscriber.on(\"subscribe\", handler);\n return this.subscriber.subscribe(channel);\n });\n }));\n }\n\n __removeLimiter__(instance) {\n var _this2 = this;\n\n return this.Promise.all([instance.channel(), instance.channel_client()].map(\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(function* (channel) {\n if (!_this2.terminated) {\n yield new _this2.Promise((resolve, reject) => {\n return _this2.subscriber.unsubscribe(channel, function (err, chan) {\n if (err != null) {\n return reject(err);\n }\n\n if (chan === channel) {\n return resolve();\n }\n });\n });\n }\n\n return delete _this2.limiters[channel];\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()));\n }\n\n __scriptArgs__(name, id, args, cb) {\n var keys;\n keys = Scripts.keys(name, id);\n return [this.shas[name], keys.length].concat(keys, args, cb);\n }\n\n __scriptFn__(name) {\n return this.client.evalsha.bind(this.client);\n }\n\n disconnect(flush = true) {\n var i, k, len, ref;\n ref = Object.keys(this.limiters);\n\n for (i = 0, len = ref.length; i < len; i++) {\n k = ref[i];\n clearInterval(this.limiters[k]._store.heartbeat);\n }\n\n this.limiters = {};\n this.terminated = true;\n this.client.end(flush);\n this.subscriber.end(flush);\n return this.Promise.resolve();\n }\n\n }\n\n ;\n RedisConnection.prototype.datastore = \"redis\";\n RedisConnection.prototype.defaults = {\n Redis: null,\n clientOptions: {},\n client: null,\n Promise: Promise,\n Events: null\n };\n return RedisConnection;\n}.call(void 0);\n\nmodule.exports = RedisConnection;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, IORedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nScripts = require(\"./Scripts\");\n\nIORedisConnection = function () {\n class IORedisConnection {\n constructor(options = {}) {\n parser.load(options, this.defaults, this);\n\n if (this.Redis == null) {\n this.Redis = eval(\"require\")(\"ioredis\"); // Obfuscated or else Webpack/Angular will try to inline the optional ioredis module. To override this behavior: pass the ioredis module to Bottleneck as the 'Redis' option.\n }\n\n if (this.Events == null) {\n this.Events = new Events(this);\n }\n\n this.terminated = false;\n\n if (this.clusterNodes != null) {\n this.client = new this.Redis.Cluster(this.clusterNodes, this.clientOptions);\n this.subscriber = new this.Redis.Cluster(this.clusterNodes, this.clientOptions);\n } else if (this.client != null && this.client.duplicate == null) {\n this.subscriber = new this.Redis.Cluster(this.client.startupNodes, this.client.options);\n } else {\n if (this.client == null) {\n this.client = new this.Redis(this.clientOptions);\n }\n\n this.subscriber = this.client.duplicate();\n }\n\n this.limiters = {};\n this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => {\n this._loadScripts();\n\n return {\n client: this.client,\n subscriber: this.subscriber\n };\n });\n }\n\n _setup(client, sub) {\n client.setMaxListeners(0);\n return new this.Promise((resolve, reject) => {\n client.on(\"error\", e => {\n return this.Events.trigger(\"error\", e);\n });\n\n if (sub) {\n client.on(\"message\", (channel, message) => {\n var ref;\n return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0;\n });\n }\n\n if (client.status === \"ready\") {\n return resolve();\n } else {\n return client.once(\"ready\", resolve);\n }\n });\n }\n\n _loadScripts() {\n return Scripts.names.forEach(name => {\n return this.client.defineCommand(name, {\n lua: Scripts.payload(name)\n });\n });\n }\n\n __runCommand__(cmd) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var _, deleted;\n\n yield _this.ready;\n\n var _ref = yield _this.client.pipeline([cmd]).exec();\n\n var _ref2 = _slicedToArray(_ref, 1);\n\n var _ref2$ = _slicedToArray(_ref2[0], 2);\n\n _ = _ref2$[0];\n deleted = _ref2$[1];\n return deleted;\n })();\n }\n\n __addLimiter__(instance) {\n return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => {\n return new this.Promise((resolve, reject) => {\n return this.subscriber.subscribe(channel, () => {\n this.limiters[channel] = instance;\n return resolve();\n });\n });\n }));\n }\n\n __removeLimiter__(instance) {\n var _this2 = this;\n\n return [instance.channel(), instance.channel_client()].forEach(\n /*#__PURE__*/\n function () {\n var _ref3 = _asyncToGenerator(function* (channel) {\n if (!_this2.terminated) {\n yield _this2.subscriber.unsubscribe(channel);\n }\n\n return delete _this2.limiters[channel];\n });\n\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }());\n }\n\n __scriptArgs__(name, id, args, cb) {\n var keys;\n keys = Scripts.keys(name, id);\n return [keys.length].concat(keys, args, cb);\n }\n\n __scriptFn__(name) {\n return this.client[name].bind(this.client);\n }\n\n disconnect(flush = true) {\n var i, k, len, ref;\n ref = Object.keys(this.limiters);\n\n for (i = 0, len = ref.length; i < len; i++) {\n k = ref[i];\n clearInterval(this.limiters[k]._store.heartbeat);\n }\n\n this.limiters = {};\n this.terminated = true;\n\n if (flush) {\n return this.Promise.all([this.client.quit(), this.subscriber.quit()]);\n } else {\n this.client.disconnect();\n this.subscriber.disconnect();\n return this.Promise.resolve();\n }\n }\n\n }\n\n ;\n IORedisConnection.prototype.datastore = \"ioredis\";\n IORedisConnection.prototype.defaults = {\n Redis: null,\n clientOptions: {},\n clusterNodes: null,\n client: null,\n Promise: Promise,\n Events: null\n };\n return IORedisConnection;\n}.call(void 0);\n\nmodule.exports = IORedisConnection;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, IORedisConnection, RedisConnection, RedisDatastore, parser;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nRedisConnection = require(\"./RedisConnection\");\nIORedisConnection = require(\"./IORedisConnection\");\nRedisDatastore = class RedisDatastore {\n constructor(instance, storeOptions, storeInstanceOptions) {\n this.instance = instance;\n this.storeOptions = storeOptions;\n this.originalId = this.instance.id;\n this.clientId = this.instance._randomIndex();\n parser.load(storeInstanceOptions, storeInstanceOptions, this);\n this.clients = {};\n this.capacityPriorityCounters = {};\n this.sharedConnection = this.connection != null;\n\n if (this.connection == null) {\n this.connection = this.instance.datastore === \"redis\" ? new RedisConnection({\n Redis: this.Redis,\n clientOptions: this.clientOptions,\n Promise: this.Promise,\n Events: this.instance.Events\n }) : this.instance.datastore === \"ioredis\" ? new IORedisConnection({\n Redis: this.Redis,\n clientOptions: this.clientOptions,\n clusterNodes: this.clusterNodes,\n Promise: this.Promise,\n Events: this.instance.Events\n }) : void 0;\n }\n\n this.instance.connection = this.connection;\n this.instance.datastore = this.connection.datastore;\n this.ready = this.connection.ready.then(clients => {\n this.clients = clients;\n return this.runScript(\"init\", this.prepareInitSettings(this.clearDatastore));\n }).then(() => {\n return this.connection.__addLimiter__(this.instance);\n }).then(() => {\n return this.runScript(\"register_client\", [this.instance.queued()]);\n }).then(() => {\n var base;\n\n if (typeof (base = this.heartbeat = setInterval(() => {\n return this.runScript(\"heartbeat\", []).catch(e => {\n return this.instance.Events.trigger(\"error\", e);\n });\n }, this.heartbeatInterval)).unref === \"function\") {\n base.unref();\n }\n\n return this.clients;\n });\n }\n\n __publish__(message) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var client;\n\n var _ref = yield _this.ready;\n\n client = _ref.client;\n return client.publish(_this.instance.channel(), `message:${message.toString()}`);\n })();\n }\n\n onMessage(channel, message) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var capacity, counter, data, drained, e, newCapacity, pos, priorityClient, rawCapacity, type;\n\n try {\n pos = message.indexOf(\":\");\n var _ref2 = [message.slice(0, pos), message.slice(pos + 1)];\n type = _ref2[0];\n data = _ref2[1];\n\n if (type === \"capacity\") {\n return yield _this2.instance._drainAll(data.length > 0 ? ~~data : void 0);\n } else if (type === \"capacity-priority\") {\n var _data$split = data.split(\":\");\n\n var _data$split2 = _slicedToArray(_data$split, 3);\n\n rawCapacity = _data$split2[0];\n priorityClient = _data$split2[1];\n counter = _data$split2[2];\n capacity = rawCapacity.length > 0 ? ~~rawCapacity : void 0;\n\n if (priorityClient === _this2.clientId) {\n drained = yield _this2.instance._drainAll(capacity);\n newCapacity = capacity != null ? capacity - (drained || 0) : \"\";\n return yield _this2.clients.client.publish(_this2.instance.channel(), `capacity-priority:${newCapacity}::${counter}`);\n } else if (priorityClient === \"\") {\n clearTimeout(_this2.capacityPriorityCounters[counter]);\n delete _this2.capacityPriorityCounters[counter];\n return _this2.instance._drainAll(capacity);\n } else {\n return _this2.capacityPriorityCounters[counter] = setTimeout(\n /*#__PURE__*/\n _asyncToGenerator(function* () {\n var e;\n\n try {\n delete _this2.capacityPriorityCounters[counter];\n yield _this2.runScript(\"blacklist_client\", [priorityClient]);\n return yield _this2.instance._drainAll(capacity);\n } catch (error) {\n e = error;\n return _this2.instance.Events.trigger(\"error\", e);\n }\n }), 1000);\n }\n } else if (type === \"message\") {\n return _this2.instance.Events.trigger(\"message\", data);\n } else if (type === \"blocked\") {\n return yield _this2.instance._dropAllQueued();\n }\n } catch (error) {\n e = error;\n return _this2.instance.Events.trigger(\"error\", e);\n }\n })();\n }\n\n __disconnect__(flush) {\n clearInterval(this.heartbeat);\n\n if (this.sharedConnection) {\n return this.connection.__removeLimiter__(this.instance);\n } else {\n return this.connection.disconnect(flush);\n }\n }\n\n runScript(name, args) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n if (!(name === \"init\" || name === \"register_client\")) {\n yield _this3.ready;\n }\n\n return new _this3.Promise((resolve, reject) => {\n var all_args, arr;\n all_args = [Date.now(), _this3.clientId].concat(args);\n\n _this3.instance.Events.trigger(\"debug\", `Calling Redis script: ${name}.lua`, all_args);\n\n arr = _this3.connection.__scriptArgs__(name, _this3.originalId, all_args, function (err, replies) {\n if (err != null) {\n return reject(err);\n }\n\n return resolve(replies);\n });\n return _this3.connection.__scriptFn__(name)(...arr);\n }).catch(e => {\n if (e.message === \"SETTINGS_KEY_NOT_FOUND\") {\n if (name === \"heartbeat\") {\n return _this3.Promise.resolve();\n } else {\n return _this3.runScript(\"init\", _this3.prepareInitSettings(false)).then(() => {\n return _this3.runScript(name, args);\n });\n }\n } else if (e.message === \"UNKNOWN_CLIENT\") {\n return _this3.runScript(\"register_client\", [_this3.instance.queued()]).then(() => {\n return _this3.runScript(name, args);\n });\n } else {\n return _this3.Promise.reject(e);\n }\n });\n })();\n }\n\n prepareArray(arr) {\n var i, len, results, x;\n results = [];\n\n for (i = 0, len = arr.length; i < len; i++) {\n x = arr[i];\n results.push(x != null ? x.toString() : \"\");\n }\n\n return results;\n }\n\n prepareObject(obj) {\n var arr, k, v;\n arr = [];\n\n for (k in obj) {\n v = obj[k];\n arr.push(k, v != null ? v.toString() : \"\");\n }\n\n return arr;\n }\n\n prepareInitSettings(clear) {\n var args;\n args = this.prepareObject(Object.assign({}, this.storeOptions, {\n id: this.originalId,\n version: this.instance.version,\n groupTimeout: this.timeout,\n clientTimeout: this.clientTimeout\n }));\n args.unshift(clear ? 1 : 0, this.instance.version);\n return args;\n }\n\n convertBool(b) {\n return !!b;\n }\n\n __updateSettings__(options) {\n var _this4 = this;\n\n return _asyncToGenerator(function* () {\n yield _this4.runScript(\"update_settings\", _this4.prepareObject(options));\n return parser.overwrite(options, options, _this4.storeOptions);\n })();\n }\n\n __running__() {\n return this.runScript(\"running\", []);\n }\n\n __queued__() {\n return this.runScript(\"queued\", []);\n }\n\n __done__() {\n return this.runScript(\"done\", []);\n }\n\n __groupCheck__() {\n var _this5 = this;\n\n return _asyncToGenerator(function* () {\n return _this5.convertBool((yield _this5.runScript(\"group_check\", [])));\n })();\n }\n\n __incrementReservoir__(incr) {\n return this.runScript(\"increment_reservoir\", [incr]);\n }\n\n __currentReservoir__() {\n return this.runScript(\"current_reservoir\", []);\n }\n\n __check__(weight) {\n var _this6 = this;\n\n return _asyncToGenerator(function* () {\n return _this6.convertBool((yield _this6.runScript(\"check\", _this6.prepareArray([weight]))));\n })();\n }\n\n __register__(index, weight, expiration) {\n var _this7 = this;\n\n return _asyncToGenerator(function* () {\n var reservoir, success, wait;\n\n var _ref4 = yield _this7.runScript(\"register\", _this7.prepareArray([index, weight, expiration]));\n\n var _ref5 = _slicedToArray(_ref4, 3);\n\n success = _ref5[0];\n wait = _ref5[1];\n reservoir = _ref5[2];\n return {\n success: _this7.convertBool(success),\n wait,\n reservoir\n };\n })();\n }\n\n __submit__(queueLength, weight) {\n var _this8 = this;\n\n return _asyncToGenerator(function* () {\n var blocked, e, maxConcurrent, overweight, reachedHWM, strategy;\n\n try {\n var _ref6 = yield _this8.runScript(\"submit\", _this8.prepareArray([queueLength, weight]));\n\n var _ref7 = _slicedToArray(_ref6, 3);\n\n reachedHWM = _ref7[0];\n blocked = _ref7[1];\n strategy = _ref7[2];\n return {\n reachedHWM: _this8.convertBool(reachedHWM),\n blocked: _this8.convertBool(blocked),\n strategy\n };\n } catch (error) {\n e = error;\n\n if (e.message.indexOf(\"OVERWEIGHT\") === 0) {\n var _e$message$split = e.message.split(\":\");\n\n var _e$message$split2 = _slicedToArray(_e$message$split, 3);\n\n overweight = _e$message$split2[0];\n weight = _e$message$split2[1];\n maxConcurrent = _e$message$split2[2];\n throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${maxConcurrent}`);\n } else {\n throw e;\n }\n }\n })();\n }\n\n __free__(index, weight) {\n var _this9 = this;\n\n return _asyncToGenerator(function* () {\n var running;\n running = yield _this9.runScript(\"free\", _this9.prepareArray([index]));\n return {\n running\n };\n })();\n }\n\n};\nmodule.exports = RedisDatastore;","\"use strict\";\n\nvar BottleneckError, States;\nBottleneckError = require(\"./BottleneckError\");\nStates = class States {\n constructor(status1) {\n this.status = status1;\n this._jobs = {};\n this.counts = this.status.map(function () {\n return 0;\n });\n }\n\n next(id) {\n var current, next;\n current = this._jobs[id];\n next = current + 1;\n\n if (current != null && next < this.status.length) {\n this.counts[current]--;\n this.counts[next]++;\n return this._jobs[id]++;\n } else if (current != null) {\n this.counts[current]--;\n return delete this._jobs[id];\n }\n }\n\n start(id) {\n var initial;\n initial = 0;\n this._jobs[id] = initial;\n return this.counts[initial]++;\n }\n\n remove(id) {\n var current;\n current = this._jobs[id];\n\n if (current != null) {\n this.counts[current]--;\n delete this._jobs[id];\n }\n\n return current != null;\n }\n\n jobStatus(id) {\n var ref;\n return (ref = this.status[this._jobs[id]]) != null ? ref : null;\n }\n\n statusJobs(status) {\n var k, pos, ref, results, v;\n\n if (status != null) {\n pos = this.status.indexOf(status);\n\n if (pos < 0) {\n throw new BottleneckError(`status must be one of ${this.status.join(', ')}`);\n }\n\n ref = this._jobs;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n\n if (v === pos) {\n results.push(k);\n }\n }\n\n return results;\n } else {\n return Object.keys(this._jobs);\n }\n }\n\n statusCounts() {\n return this.counts.reduce((acc, v, i) => {\n acc[this.status[i]] = v;\n return acc;\n }, {});\n }\n\n};\nmodule.exports = States;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar DLList, Sync;\nDLList = require(\"./DLList\");\nSync = class Sync {\n constructor(name, Promise) {\n this.schedule = this.schedule.bind(this);\n this.name = name;\n this.Promise = Promise;\n this._running = 0;\n this._queue = new DLList();\n }\n\n isEmpty() {\n return this._queue.length === 0;\n }\n\n _tryToRun() {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var args, cb, error, reject, resolve, returned, task;\n\n if (_this._running < 1 && _this._queue.length > 0) {\n _this._running++;\n\n var _this$_queue$shift = _this._queue.shift();\n\n task = _this$_queue$shift.task;\n args = _this$_queue$shift.args;\n resolve = _this$_queue$shift.resolve;\n reject = _this$_queue$shift.reject;\n cb = yield _asyncToGenerator(function* () {\n try {\n returned = yield task(...args);\n return function () {\n return resolve(returned);\n };\n } catch (error1) {\n error = error1;\n return function () {\n return reject(error);\n };\n }\n })();\n _this._running--;\n\n _this._tryToRun();\n\n return cb();\n }\n })();\n }\n\n schedule(task, ...args) {\n var promise, reject, resolve;\n resolve = reject = null;\n promise = new this.Promise(function (_resolve, _reject) {\n resolve = _resolve;\n return reject = _reject;\n });\n\n this._queue.push({\n task,\n args,\n resolve,\n reject\n });\n\n this._tryToRun();\n\n return promise;\n }\n\n};\nmodule.exports = Sync;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, Group, IORedisConnection, RedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nRedisConnection = require(\"./RedisConnection\");\nIORedisConnection = require(\"./IORedisConnection\");\nScripts = require(\"./Scripts\");\n\nGroup = function () {\n class Group {\n constructor(limiterOptions = {}) {\n this.deleteKey = this.deleteKey.bind(this);\n this.limiterOptions = limiterOptions;\n parser.load(this.limiterOptions, this.defaults, this);\n this.Events = new Events(this);\n this.instances = {};\n this.Bottleneck = require(\"./Bottleneck\");\n\n this._startAutoCleanup();\n\n this.sharedConnection = this.connection != null;\n\n if (this.connection == null) {\n if (this.limiterOptions.datastore === \"redis\") {\n this.connection = new RedisConnection(Object.assign({}, this.limiterOptions, {\n Events: this.Events\n }));\n } else if (this.limiterOptions.datastore === \"ioredis\") {\n this.connection = new IORedisConnection(Object.assign({}, this.limiterOptions, {\n Events: this.Events\n }));\n }\n }\n }\n\n key(key = \"\") {\n var ref;\n return (ref = this.instances[key]) != null ? ref : (() => {\n var limiter;\n limiter = this.instances[key] = new this.Bottleneck(Object.assign(this.limiterOptions, {\n id: `${this.id}-${key}`,\n timeout: this.timeout,\n connection: this.connection\n }));\n this.Events.trigger(\"created\", limiter, key);\n return limiter;\n })();\n }\n\n deleteKey(key = \"\") {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var deleted, instance;\n instance = _this.instances[key];\n\n if (_this.connection) {\n deleted = yield _this.connection.__runCommand__(['del', ...Scripts.allKeys(`${_this.id}-${key}`)]);\n }\n\n if (instance != null) {\n delete _this.instances[key];\n yield instance.disconnect();\n }\n\n return instance != null || deleted > 0;\n })();\n }\n\n limiters() {\n var k, ref, results, v;\n ref = this.instances;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n results.push({\n key: k,\n limiter: v\n });\n }\n\n return results;\n }\n\n keys() {\n return Object.keys(this.instances);\n }\n\n clusterKeys() {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var cursor, end, found, i, k, keys, len, next, start;\n\n if (_this2.connection == null) {\n return _this2.Promise.resolve(_this2.keys());\n }\n\n keys = [];\n cursor = null;\n start = `b_${_this2.id}-`.length;\n end = \"_settings\".length;\n\n while (cursor !== 0) {\n var _ref = yield _this2.connection.__runCommand__([\"scan\", cursor != null ? cursor : 0, \"match\", `b_${_this2.id}-*_settings`, \"count\", 10000]);\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n next = _ref2[0];\n found = _ref2[1];\n cursor = ~~next;\n\n for (i = 0, len = found.length; i < len; i++) {\n k = found[i];\n keys.push(k.slice(start, -end));\n }\n }\n\n return keys;\n })();\n }\n\n _startAutoCleanup() {\n var _this3 = this;\n\n var base;\n clearInterval(this.interval);\n return typeof (base = this.interval = setInterval(\n /*#__PURE__*/\n _asyncToGenerator(function* () {\n var e, k, ref, results, time, v;\n time = Date.now();\n ref = _this3.instances;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n\n try {\n if (yield v._store.__groupCheck__(time)) {\n results.push(_this3.deleteKey(k));\n } else {\n results.push(void 0);\n }\n } catch (error) {\n e = error;\n results.push(v.Events.trigger(\"error\", e));\n }\n }\n\n return results;\n }), this.timeout / 2)).unref === \"function\" ? base.unref() : void 0;\n }\n\n updateSettings(options = {}) {\n parser.overwrite(options, this.defaults, this);\n parser.overwrite(options, options, this.limiterOptions);\n\n if (options.timeout != null) {\n return this._startAutoCleanup();\n }\n }\n\n disconnect(flush = true) {\n var ref;\n\n if (!this.sharedConnection) {\n return (ref = this.connection) != null ? ref.disconnect(flush) : void 0;\n }\n }\n\n }\n\n ;\n Group.prototype.defaults = {\n timeout: 1000 * 60 * 5,\n connection: null,\n Promise: Promise,\n id: \"group-key\"\n };\n return Group;\n}.call(void 0);\n\nmodule.exports = Group;","\"use strict\";\n\nvar Batcher, Events, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\n\nBatcher = function () {\n class Batcher {\n constructor(options = {}) {\n this.options = options;\n parser.load(this.options, this.defaults, this);\n this.Events = new Events(this);\n this._arr = [];\n\n this._resetPromise();\n\n this._lastFlush = Date.now();\n }\n\n _resetPromise() {\n return this._promise = new this.Promise((res, rej) => {\n return this._resolve = res;\n });\n }\n\n _flush() {\n clearTimeout(this._timeout);\n this._lastFlush = Date.now();\n\n this._resolve();\n\n this.Events.trigger(\"batch\", this._arr);\n this._arr = [];\n return this._resetPromise();\n }\n\n add(data) {\n var ret;\n\n this._arr.push(data);\n\n ret = this._promise;\n\n if (this._arr.length === this.maxSize) {\n this._flush();\n } else if (this.maxTime != null && this._arr.length === 1) {\n this._timeout = setTimeout(() => {\n return this._flush();\n }, this.maxTime);\n }\n\n return ret;\n }\n\n }\n\n ;\n Batcher.prototype.defaults = {\n maxTime: null,\n maxSize: null,\n Promise: Promise\n };\n return Batcher;\n}.call(void 0);\n\nmodule.exports = Batcher;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Bottleneck,\n DEFAULT_PRIORITY,\n Events,\n Job,\n LocalDatastore,\n NUM_PRIORITIES,\n Queues,\n RedisDatastore,\n States,\n Sync,\n parser,\n splice = [].splice;\nNUM_PRIORITIES = 10;\nDEFAULT_PRIORITY = 5;\nparser = require(\"./parser\");\nQueues = require(\"./Queues\");\nJob = require(\"./Job\");\nLocalDatastore = require(\"./LocalDatastore\");\nRedisDatastore = require(\"./RedisDatastore\");\nEvents = require(\"./Events\");\nStates = require(\"./States\");\nSync = require(\"./Sync\");\n\nBottleneck = function () {\n class Bottleneck {\n constructor(options = {}, ...invalid) {\n var storeInstanceOptions, storeOptions;\n this._addToQueue = this._addToQueue.bind(this);\n\n this._validateOptions(options, invalid);\n\n parser.load(options, this.instanceDefaults, this);\n this._queues = new Queues(NUM_PRIORITIES);\n this._scheduled = {};\n this._states = new States([\"RECEIVED\", \"QUEUED\", \"RUNNING\", \"EXECUTING\"].concat(this.trackDoneStatus ? [\"DONE\"] : []));\n this._limiter = null;\n this.Events = new Events(this);\n this._submitLock = new Sync(\"submit\", this.Promise);\n this._registerLock = new Sync(\"register\", this.Promise);\n storeOptions = parser.load(options, this.storeDefaults, {});\n\n this._store = function () {\n if (this.datastore === \"redis\" || this.datastore === \"ioredis\" || this.connection != null) {\n storeInstanceOptions = parser.load(options, this.redisStoreDefaults, {});\n return new RedisDatastore(this, storeOptions, storeInstanceOptions);\n } else if (this.datastore === \"local\") {\n storeInstanceOptions = parser.load(options, this.localStoreDefaults, {});\n return new LocalDatastore(this, storeOptions, storeInstanceOptions);\n } else {\n throw new Bottleneck.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`);\n }\n }.call(this);\n\n this._queues.on(\"leftzero\", () => {\n var ref;\n return (ref = this._store.heartbeat) != null ? typeof ref.ref === \"function\" ? ref.ref() : void 0 : void 0;\n });\n\n this._queues.on(\"zero\", () => {\n var ref;\n return (ref = this._store.heartbeat) != null ? typeof ref.unref === \"function\" ? ref.unref() : void 0 : void 0;\n });\n }\n\n _validateOptions(options, invalid) {\n if (!(options != null && typeof options === \"object\" && invalid.length === 0)) {\n throw new Bottleneck.prototype.BottleneckError(\"Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.\");\n }\n }\n\n ready() {\n return this._store.ready;\n }\n\n clients() {\n return this._store.clients;\n }\n\n channel() {\n return `b_${this.id}`;\n }\n\n channel_client() {\n return `b_${this.id}_${this._store.clientId}`;\n }\n\n publish(message) {\n return this._store.__publish__(message);\n }\n\n disconnect(flush = true) {\n return this._store.__disconnect__(flush);\n }\n\n chain(_limiter) {\n this._limiter = _limiter;\n return this;\n }\n\n queued(priority) {\n return this._queues.queued(priority);\n }\n\n clusterQueued() {\n return this._store.__queued__();\n }\n\n empty() {\n return this.queued() === 0 && this._submitLock.isEmpty();\n }\n\n running() {\n return this._store.__running__();\n }\n\n done() {\n return this._store.__done__();\n }\n\n jobStatus(id) {\n return this._states.jobStatus(id);\n }\n\n jobs(status) {\n return this._states.statusJobs(status);\n }\n\n counts() {\n return this._states.statusCounts();\n }\n\n _randomIndex() {\n return Math.random().toString(36).slice(2);\n }\n\n check(weight = 1) {\n return this._store.__check__(weight);\n }\n\n _clearGlobalState(index) {\n if (this._scheduled[index] != null) {\n clearTimeout(this._scheduled[index].expiration);\n delete this._scheduled[index];\n return true;\n } else {\n return false;\n }\n }\n\n _free(index, job, options, eventInfo) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var e, running;\n\n try {\n var _ref = yield _this._store.__free__(index, options.weight);\n\n running = _ref.running;\n\n _this.Events.trigger(\"debug\", `Freed ${options.id}`, eventInfo);\n\n if (running === 0 && _this.empty()) {\n return _this.Events.trigger(\"idle\");\n }\n } catch (error1) {\n e = error1;\n return _this.Events.trigger(\"error\", e);\n }\n })();\n }\n\n _run(index, job, wait) {\n var clearGlobalState, free, run;\n job.doRun();\n clearGlobalState = this._clearGlobalState.bind(this, index);\n run = this._run.bind(this, index, job);\n free = this._free.bind(this, index, job);\n return this._scheduled[index] = {\n timeout: setTimeout(() => {\n return job.doExecute(this._limiter, clearGlobalState, run, free);\n }, wait),\n expiration: job.options.expiration != null ? setTimeout(function () {\n return job.doExpire(clearGlobalState, run, free);\n }, wait + job.options.expiration) : void 0,\n job: job\n };\n }\n\n _drainOne(capacity) {\n return this._registerLock.schedule(() => {\n var args, index, next, options, queue;\n\n if (this.queued() === 0) {\n return this.Promise.resolve(null);\n }\n\n queue = this._queues.getFirst();\n\n var _next2 = next = queue.first();\n\n options = _next2.options;\n args = _next2.args;\n\n if (capacity != null && options.weight > capacity) {\n return this.Promise.resolve(null);\n }\n\n this.Events.trigger(\"debug\", `Draining ${options.id}`, {\n args,\n options\n });\n index = this._randomIndex();\n return this._store.__register__(index, options.weight, options.expiration).then(({\n success,\n wait,\n reservoir\n }) => {\n var empty;\n this.Events.trigger(\"debug\", `Drained ${options.id}`, {\n success,\n args,\n options\n });\n\n if (success) {\n queue.shift();\n empty = this.empty();\n\n if (empty) {\n this.Events.trigger(\"empty\");\n }\n\n if (reservoir === 0) {\n this.Events.trigger(\"depleted\", empty);\n }\n\n this._run(index, next, wait);\n\n return this.Promise.resolve(options.weight);\n } else {\n return this.Promise.resolve(null);\n }\n });\n });\n }\n\n _drainAll(capacity, total = 0) {\n return this._drainOne(capacity).then(drained => {\n var newCapacity;\n\n if (drained != null) {\n newCapacity = capacity != null ? capacity - drained : capacity;\n return this._drainAll(newCapacity, total + drained);\n } else {\n return this.Promise.resolve(total);\n }\n }).catch(e => {\n return this.Events.trigger(\"error\", e);\n });\n }\n\n _dropAllQueued(message) {\n return this._queues.shiftAll(function (job) {\n return job.doDrop({\n message\n });\n });\n }\n\n stop(options = {}) {\n var done, waitForExecuting;\n options = parser.load(options, this.stopDefaults);\n\n waitForExecuting = at => {\n var finished;\n\n finished = () => {\n var counts;\n counts = this._states.counts;\n return counts[0] + counts[1] + counts[2] + counts[3] === at;\n };\n\n return new this.Promise((resolve, reject) => {\n if (finished()) {\n return resolve();\n } else {\n return this.on(\"done\", () => {\n if (finished()) {\n this.removeAllListeners(\"done\");\n return resolve();\n }\n });\n }\n });\n };\n\n done = options.dropWaitingJobs ? (this._run = function (index, next) {\n return next.doDrop({\n message: options.dropErrorMessage\n });\n }, this._drainOne = () => {\n return this.Promise.resolve(null);\n }, this._registerLock.schedule(() => {\n return this._submitLock.schedule(() => {\n var k, ref, v;\n ref = this._scheduled;\n\n for (k in ref) {\n v = ref[k];\n\n if (this.jobStatus(v.job.options.id) === \"RUNNING\") {\n clearTimeout(v.timeout);\n clearTimeout(v.expiration);\n v.job.doDrop({\n message: options.dropErrorMessage\n });\n }\n }\n\n this._dropAllQueued(options.dropErrorMessage);\n\n return waitForExecuting(0);\n });\n })) : this.schedule({\n priority: NUM_PRIORITIES - 1,\n weight: 0\n }, () => {\n return waitForExecuting(1);\n });\n\n this._receive = function (job) {\n return job._reject(new Bottleneck.prototype.BottleneckError(options.enqueueErrorMessage));\n };\n\n this.stop = () => {\n return this.Promise.reject(new Bottleneck.prototype.BottleneckError(\"stop() has already been called\"));\n };\n\n return done;\n }\n\n _addToQueue(job) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var args, blocked, error, options, reachedHWM, shifted, strategy;\n args = job.args;\n options = job.options;\n\n try {\n var _ref2 = yield _this2._store.__submit__(_this2.queued(), options.weight);\n\n reachedHWM = _ref2.reachedHWM;\n blocked = _ref2.blocked;\n strategy = _ref2.strategy;\n } catch (error1) {\n error = error1;\n\n _this2.Events.trigger(\"debug\", `Could not queue ${options.id}`, {\n args,\n options,\n error\n });\n\n job.doDrop({\n error\n });\n return false;\n }\n\n if (blocked) {\n job.doDrop();\n return true;\n } else if (reachedHWM) {\n shifted = strategy === Bottleneck.prototype.strategy.LEAK ? _this2._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? _this2._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0;\n\n if (shifted != null) {\n shifted.doDrop();\n }\n\n if (shifted == null || strategy === Bottleneck.prototype.strategy.OVERFLOW) {\n if (shifted == null) {\n job.doDrop();\n }\n\n return reachedHWM;\n }\n }\n\n job.doQueue(reachedHWM, blocked);\n\n _this2._queues.push(job);\n\n yield _this2._drainAll();\n return reachedHWM;\n })();\n }\n\n _receive(job) {\n if (this._states.jobStatus(job.options.id) != null) {\n job._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${job.options.id})`));\n\n return false;\n } else {\n job.doReceive();\n return this._submitLock.schedule(this._addToQueue, job);\n }\n }\n\n submit(...args) {\n var cb, fn, job, options, ref, ref1, task;\n\n if (typeof args[0] === \"function\") {\n var _ref3, _ref4, _splice$call, _splice$call2;\n\n ref = args, (_ref3 = ref, _ref4 = _toArray(_ref3), fn = _ref4[0], args = _ref4.slice(1), _ref3), (_splice$call = splice.call(args, -1), _splice$call2 = _slicedToArray(_splice$call, 1), cb = _splice$call2[0], _splice$call);\n options = parser.load({}, this.jobDefaults);\n } else {\n var _ref5, _ref6, _splice$call3, _splice$call4;\n\n ref1 = args, (_ref5 = ref1, _ref6 = _toArray(_ref5), options = _ref6[0], fn = _ref6[1], args = _ref6.slice(2), _ref5), (_splice$call3 = splice.call(args, -1), _splice$call4 = _slicedToArray(_splice$call3, 1), cb = _splice$call4[0], _splice$call3);\n options = parser.load(options, this.jobDefaults);\n }\n\n task = (...args) => {\n return new this.Promise(function (resolve, reject) {\n return fn(...args, function (...args) {\n return (args[0] != null ? reject : resolve)(args);\n });\n });\n };\n\n job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise);\n job.promise.then(function (args) {\n return typeof cb === \"function\" ? cb(...args) : void 0;\n }).catch(function (args) {\n if (Array.isArray(args)) {\n return typeof cb === \"function\" ? cb(...args) : void 0;\n } else {\n return typeof cb === \"function\" ? cb(args) : void 0;\n }\n });\n return this._receive(job);\n }\n\n schedule(...args) {\n var job, options, task;\n\n if (typeof args[0] === \"function\") {\n var _args = args;\n\n var _args2 = _toArray(_args);\n\n task = _args2[0];\n args = _args2.slice(1);\n options = {};\n } else {\n var _args3 = args;\n\n var _args4 = _toArray(_args3);\n\n options = _args4[0];\n task = _args4[1];\n args = _args4.slice(2);\n }\n\n job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise);\n\n this._receive(job);\n\n return job.promise;\n }\n\n wrap(fn) {\n var schedule, wrapped;\n schedule = this.schedule.bind(this);\n\n wrapped = function wrapped(...args) {\n return schedule(fn.bind(this), ...args);\n };\n\n wrapped.withOptions = function (options, ...args) {\n return schedule(options, fn, ...args);\n };\n\n return wrapped;\n }\n\n updateSettings(options = {}) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n yield _this3._store.__updateSettings__(parser.overwrite(options, _this3.storeDefaults));\n parser.overwrite(options, _this3.instanceDefaults, _this3);\n return _this3;\n })();\n }\n\n currentReservoir() {\n return this._store.__currentReservoir__();\n }\n\n incrementReservoir(incr = 0) {\n return this._store.__incrementReservoir__(incr);\n }\n\n }\n\n ;\n Bottleneck.default = Bottleneck;\n Bottleneck.Events = Events;\n Bottleneck.version = Bottleneck.prototype.version = require(\"./version.json\").version;\n Bottleneck.strategy = Bottleneck.prototype.strategy = {\n LEAK: 1,\n OVERFLOW: 2,\n OVERFLOW_PRIORITY: 4,\n BLOCK: 3\n };\n Bottleneck.BottleneckError = Bottleneck.prototype.BottleneckError = require(\"./BottleneckError\");\n Bottleneck.Group = Bottleneck.prototype.Group = require(\"./Group\");\n Bottleneck.RedisConnection = Bottleneck.prototype.RedisConnection = require(\"./RedisConnection\");\n Bottleneck.IORedisConnection = Bottleneck.prototype.IORedisConnection = require(\"./IORedisConnection\");\n Bottleneck.Batcher = Bottleneck.prototype.Batcher = require(\"./Batcher\");\n Bottleneck.prototype.jobDefaults = {\n priority: DEFAULT_PRIORITY,\n weight: 1,\n expiration: null,\n id: \"\"\n };\n Bottleneck.prototype.storeDefaults = {\n maxConcurrent: null,\n minTime: 0,\n highWater: null,\n strategy: Bottleneck.prototype.strategy.LEAK,\n penalty: null,\n reservoir: null,\n reservoirRefreshInterval: null,\n reservoirRefreshAmount: null,\n reservoirIncreaseInterval: null,\n reservoirIncreaseAmount: null,\n reservoirIncreaseMaximum: null\n };\n Bottleneck.prototype.localStoreDefaults = {\n Promise: Promise,\n timeout: null,\n heartbeatInterval: 250\n };\n Bottleneck.prototype.redisStoreDefaults = {\n Promise: Promise,\n timeout: null,\n heartbeatInterval: 5000,\n clientTimeout: 10000,\n Redis: null,\n clientOptions: {},\n clusterNodes: null,\n clearDatastore: false,\n connection: null\n };\n Bottleneck.prototype.instanceDefaults = {\n datastore: \"local\",\n connection: null,\n id: \"\",\n rejectOnDrop: true,\n trackDoneStatus: false,\n Promise: Promise\n };\n Bottleneck.prototype.stopDefaults = {\n enqueueErrorMessage: \"This limiter has been stopped and cannot accept new jobs.\",\n dropWaitingJobs: true,\n dropErrorMessage: \"This limiter has been stopped.\"\n };\n return Bottleneck;\n}.call(void 0);\n\nmodule.exports = Bottleneck;","\"use strict\";\n\nmodule.exports = require(\"./Bottleneck\");","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","module.exports = require('util').inspect;\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar match = String.prototype.match;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\nvar toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('options \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n return String(obj);\n }\n if (typeof obj === 'bigint') {\n return String(obj) + 'n';\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = seen.slice();\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + String(obj.nodeName).toLowerCase();\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + xs.join(', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + ys.join(', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return String(s).replace(/\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = str.replace(/(['\\\\])/g, '\\\\$1').replace(/[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = Array(opts.indent + 1).join(' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: Array(depth + 1).join(baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + xs.join(',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ((/[^\\w$]/).test(key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n if (sideChannel.has(object)) {\n throw new RangeError('Cyclic object value');\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, true);\n var valueSideChannel = getSideChannel();\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","export default function(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)})}\n//# sourceMappingURL=unfetch.module.js.map\n","module.exports = self.fetch || (self.fetch = require('unfetch').default || require('unfetch'));\n",null,null,null,"// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\n\nvar ws = null\n\nif (typeof WebSocket !== 'undefined') {\n ws = WebSocket\n} else if (typeof MozWebSocket !== 'undefined') {\n ws = MozWebSocket\n} else if (typeof global !== 'undefined') {\n ws = global.WebSocket || global.MozWebSocket\n} else if (typeof window !== 'undefined') {\n ws = window.WebSocket || window.MozWebSocket\n} else if (typeof self !== 'undefined') {\n ws = self.WebSocket || self.MozWebSocket\n}\n\nmodule.exports = ws\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\n\nmodule.exports = value => {\n\tif (typeof Blob === 'undefined') {\n\t\treturn false;\n\t}\n\n\treturn value instanceof Blob || Object.prototype.toString.call(value) === '[object Blob]';\n};\n",null,null],"names":["DLList","asyncGeneratorStep","_asyncToGenerator","Events","Queues","require$$0","require$$1","BottleneckError","DEFAULT_PRIORITY","Job","NUM_PRIORITIES","parser","LocalDatastore","RedisConnection","Scripts","require$$2","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","IORedisConnection","RedisDatastore","require$$3","States","Sync","require$$4","require$$5","require$$6","require$$7","require$$9","require$$10","require$$11","require$$12","require$$13","hasSymbolSham","toStr","bind","undefined","$TypeError","hasOwn","GetIntrinsic","has","isArray","isRegExp","inspect","defaults","sideChannel","getSideChannel","parse","stringify","isofetch","Bottleneck","qs","global","EventEmitter","WebSocket"],"mappings":"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"} \ No newline at end of file diff --git a/dist/alpaca.browser.modern.min.js b/dist/alpaca.browser.modern.min.js index 0ac41d4..655ed8a 100644 --- a/dist/alpaca.browser.modern.min.js +++ b/dist/alpaca.browser.modern.min.js @@ -1 +1 @@ -import require$$0$3 from"util";var load=function(e,t,r={}){var n,i,s;for(n in t)s=t[n],r[n]=null!=(i=e[n])?i:s;return r},overwrite=function(e,t,r={}){var n,i;for(n in e)i=e[n],void 0!==t[n]&&(r[n]=i);return r},parser$8={load:load,overwrite:overwrite},DLList$2;DLList$2=class{constructor(e,t){this.incr=e,this.decr=t,this._first=null,this._last=null,this.length=0}push(e){var t;this.length++,"function"==typeof this.incr&&this.incr(),t={value:e,prev:this._last,next:null},null!=this._last?(this._last.next=t,this._last=t):this._first=this._last=t}shift(){var e;if(null!=this._first)return this.length--,"function"==typeof this.decr&&this.decr(),e=this._first.value,null!=(this._first=this._first.next)?this._first.prev=null:this._last=null,e}first(){if(null!=this._first)return this._first.value}getArray(){var e,t,r;for(e=this._first,r=[];null!=e;)r.push((t=e,e=e.next,t.value));return r}forEachShift(e){var t;for(t=this.shift();null!=t;)e(t),t=this.shift()}debug(){var e,t,r,n,i;for(e=this._first,i=[];null!=e;)i.push((t=e,e=e.next,{value:t.value,prev:null!=(r=t.prev)?r.value:void 0,next:null!=(n=t.next)?n.value:void 0}));return i}};var DLList_1=DLList$2,Events$6;function asyncGeneratorStep$8(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$8(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$8(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$8(s,n,i,o,a,"throw",e)}o(void 0)}))}}Events$6=class{constructor(e){if(this.instance=e,this._events={},null!=this.instance.on||null!=this.instance.once||null!=this.instance.removeAllListeners)throw new Error("An Emitter already exists for this object");this.instance.on=(e,t)=>this._addListener(e,"many",t),this.instance.once=(e,t)=>this._addListener(e,"once",t),this.instance.removeAllListeners=(e=null)=>null!=e?delete this._events[e]:this._events={}}_addListener(e,t,r){var n;return null==(n=this._events)[e]&&(n[e]=[]),this._events[e].push({cb:r,status:t}),this.instance}listenerCount(e){return null!=this._events[e]?this._events[e].length:0}trigger(e,...t){var r=this;return _asyncToGenerator$8((function*(){var n,i;try{if("debug"!==e&&r.trigger("debug",`Event triggered: ${e}`,t),null==r._events[e])return;return r._events[e]=r._events[e].filter((function(e){return"none"!==e.status})),i=r._events[e].map(function(){var e=_asyncToGenerator$8((function*(e){var n,i;if("none"!==e.status){"once"===e.status&&(e.status="none");try{return"function"==typeof(null!=(i="function"==typeof e.cb?e.cb(...t):void 0)?i.then:void 0)?yield i:i}catch(e){return n=e,r.trigger("error",n),null}}}));return function(t){return e.apply(this,arguments)}}()),(yield Promise.all(i)).find((function(e){return null!=e}))}catch(e){return n=e,r.trigger("error",n),null}}))()}};var Events_1=Events$6,DLList$1,Events$5,Queues$1;DLList$1=DLList_1,Events$5=Events_1,Queues$1=class{constructor(e){this.Events=new Events$5(this),this._length=0,this._lists=function(){var t,r,n;for(n=[],t=1,r=e;1<=r?t<=r:t>=r;1<=r?++t:--t)n.push(new DLList$1((()=>this.incr()),(()=>this.decr())));return n}.call(this)}incr(){if(0==this._length++)return this.Events.trigger("leftzero")}decr(){if(0==--this._length)return this.Events.trigger("zero")}push(e){return this._lists[e.options.priority].push(e)}queued(e){return null!=e?this._lists[e].length:this._length}shiftAll(e){return this._lists.forEach((function(t){return t.forEachShift(e)}))}getFirst(e=this._lists){var t,r,n;for(t=0,r=e.length;t0)return n;return[]}shiftLastFrom(e){return this.getFirst(this._lists.slice(e).reverse()).shift()}};var Queues_1=Queues$1,BottleneckError$4;BottleneckError$4=class extends Error{};var BottleneckError_1=BottleneckError$4,BottleneckError$3,DEFAULT_PRIORITY$1,Job$1,NUM_PRIORITIES$1,parser$7;function asyncGeneratorStep$7(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$7(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$7(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$7(s,n,i,o,a,"throw",e)}o(void 0)}))}}NUM_PRIORITIES$1=10,DEFAULT_PRIORITY$1=5,parser$7=parser$8,BottleneckError$3=BottleneckError_1,Job$1=class{constructor(e,t,r,n,i,s,o,a){this.task=e,this.args=t,this.rejectOnDrop=i,this.Events=s,this._states=o,this.Promise=a,this.options=parser$7.load(r,n),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===n.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise(((e,t)=>{this._resolve=e,this._reject=t})),this.retryCount=0}_sanitizePriority(e){var t;return(t=~~e!==e?DEFAULT_PRIORITY$1:e)<0?0:t>NUM_PRIORITIES$1-1?NUM_PRIORITIES$1-1:t}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:e,message:t="This job has been dropped by Bottleneck"}={}){return!!this._states.remove(this.options.id)&&(this.rejectOnDrop&&this._reject(null!=e?e:new BottleneckError$3(t)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0)}_assertStatus(e){var t;if((t=this._states.jobStatus(this.options.id))!==e&&("DONE"!==e||null!==t))throw new BottleneckError$3(`Invalid job status ${t}, expected ${e}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(e,t){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:e,blocked:t})}doRun(){return 0===this.retryCount?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}doExecute(e,t,r,n){var i=this;return _asyncToGenerator$7((function*(){var s,o,a;0===i.retryCount?(i._assertStatus("RUNNING"),i._states.next(i.options.id)):i._assertStatus("EXECUTING"),o={args:i.args,options:i.options,retryCount:i.retryCount},i.Events.trigger("executing",o);try{if(a=yield null!=e?e.schedule(i.options,i.task,...i.args):i.task(...i.args),t())return i.doDone(o),yield n(i.options,o),i._assertStatus("DONE"),i._resolve(a)}catch(e){return s=e,i._onFailure(s,o,t,r,n)}}))()}doExpire(e,t,r){var n,i;return this._states.jobStatus("RUNNING"===this.options.id)&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),i={args:this.args,options:this.options,retryCount:this.retryCount},n=new BottleneckError$3(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(n,i,e,t,r)}_onFailure(e,t,r,n,i){var s=this;return _asyncToGenerator$7((function*(){var o,a;if(r())return null!=(o=yield s.Events.trigger("failed",e,t))?(a=~~o,s.Events.trigger("retry",`Retrying ${s.options.id} after ${a} ms`,t),s.retryCount++,n(a)):(s.doDone(t),yield i(s.options,t),s._assertStatus("DONE"),s._reject(e))}))()}doDone(e){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",e)}};var Job_1=Job$1,BottleneckError$2,LocalDatastore$1,parser$6;function asyncGeneratorStep$6(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$6(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$6(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$6(s,n,i,o,a,"throw",e)}o(void 0)}))}}parser$6=parser$8,BottleneckError$2=BottleneckError_1,LocalDatastore$1=class{constructor(e,t,r){this.instance=e,this.storeOptions=t,this.clientId=this.instance._randomIndex(),parser$6.load(r,r,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var e;return null==this.heartbeat&&(null!=this.storeOptions.reservoirRefreshInterval&&null!=this.storeOptions.reservoirRefreshAmount||null!=this.storeOptions.reservoirIncreaseInterval&&null!=this.storeOptions.reservoirIncreaseAmount)?"function"==typeof(e=this.heartbeat=setInterval((()=>{var e,t,r,n,i;if(n=Date.now(),null!=this.storeOptions.reservoirRefreshInterval&&n>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=n,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),null!=this.storeOptions.reservoirIncreaseInterval&&n>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval){var s=this.storeOptions;if(e=s.reservoirIncreaseAmount,r=s.reservoirIncreaseMaximum,i=s.reservoir,this._lastReservoirIncrease=n,(t=null!=r?Math.min(e,r-i):e)>0)return this.storeOptions.reservoir+=t,this.instance._drainAll(this.computeCapacity())}}),this.heartbeatInterval)).unref?e.unref():void 0:clearInterval(this.heartbeat)}__publish__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),t.instance.Events.trigger("message",e.toString())}))()}__disconnect__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),clearInterval(t.heartbeat),t.Promise.resolve()}))()}yieldLoop(e=0){return new this.Promise((function(t,r){return setTimeout(t,e)}))}computePenalty(){var e;return null!=(e=this.storeOptions.penalty)?e:15*this.storeOptions.minTime||5e3}__updateSettings__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),parser$6.overwrite(e,e,t.storeOptions),t._startHeartbeat(),t.instance._drainAll(t.computeCapacity()),!0}))()}__running__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e._running}))()}__queued__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e.instance.queued()}))()}__done__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e._done}))()}__groupCheck__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),t._nextRequest+t.timeout=e}check(e,t){return this.conditionsCheck(e)&&this._nextRequest-t<=0}__check__(e){var t=this;return _asyncToGenerator$6((function*(){var r;return yield t.yieldLoop(),r=Date.now(),t.check(e,r)}))()}__register__(e,t,r){var n=this;return _asyncToGenerator$6((function*(){var e,r;return yield n.yieldLoop(),e=Date.now(),n.conditionsCheck(t)?(n._running+=t,null!=n.storeOptions.reservoir&&(n.storeOptions.reservoir-=t),r=Math.max(n._nextRequest-e,0),n._nextRequest=e+r+n.storeOptions.minTime,{success:!0,wait:r,reservoir:n.storeOptions.reservoir}):{success:!1}}))()}strategyIsBlock(){return 3===this.storeOptions.strategy}__submit__(e,t){var r=this;return _asyncToGenerator$6((function*(){var n,i,s;if(yield r.yieldLoop(),null!=r.storeOptions.maxConcurrent&&t>r.storeOptions.maxConcurrent)throw new BottleneckError$2(`Impossible to add a job having a weight of ${t} to a limiter having a maxConcurrent setting of ${r.storeOptions.maxConcurrent}`);return i=Date.now(),s=null!=r.storeOptions.highWater&&e===r.storeOptions.highWater&&!r.check(t,i),(n=r.strategyIsBlock()&&(s||r.isBlocked(i)))&&(r._unblockTime=i+r.computePenalty(),r._nextRequest=r._unblockTime+r.storeOptions.minTime,r.instance._dropAllQueued()),{reachedHWM:s,blocked:n,strategy:r.storeOptions.strategy}}))()}__free__(e,t){var r=this;return _asyncToGenerator$6((function*(){return yield r.yieldLoop(),r._running-=t,r._done+=t,r.instance._drainAll(r.computeCapacity()),{running:r._running}}))()}};var LocalDatastore_1=LocalDatastore$1,commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getAugmentedNamespace(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})})),t}function createCommonjsModule(e){var t={exports:{}};return e(t,t.exports),t.exports}var require$$0$2={"blacklist_client.lua":"local blacklist = ARGV[num_static_argv + 1]\n\nif redis.call('zscore', client_last_seen_key, blacklist) then\n redis.call('zadd', client_last_seen_key, 0, blacklist)\nend\n\n\nreturn {}\n","check.lua":"local weight = tonumber(ARGV[num_static_argv + 1])\n\nlocal capacity = process_tick(now, false)['capacity']\nlocal nextRequest = tonumber(redis.call('hget', settings_key, 'nextRequest'))\n\nreturn conditions_check(capacity, weight) and nextRequest - now <= 0\n","conditions_check.lua":"local conditions_check = function (capacity, weight)\n return capacity == nil or weight <= capacity\nend\n","current_reservoir.lua":"return process_tick(now, false)['reservoir']\n","done.lua":"process_tick(now, false)\n\nreturn tonumber(redis.call('hget', settings_key, 'done'))\n","free.lua":"local index = ARGV[num_static_argv + 1]\n\nredis.call('zadd', job_expirations_key, 0, index)\n\nreturn process_tick(now, false)['running']\n","get_time.lua":"redis.replicate_commands()\n\nlocal get_time = function ()\n local time = redis.call('time')\n\n return tonumber(time[1]..string.sub(time[2], 1, 3))\nend\n","group_check.lua":"return not (redis.call('exists', settings_key) == 1)\n","heartbeat.lua":"process_tick(now, true)\n","increment_reservoir.lua":"local incr = tonumber(ARGV[num_static_argv + 1])\n\nredis.call('hincrby', settings_key, 'reservoir', incr)\n\nlocal reservoir = process_tick(now, true)['reservoir']\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn reservoir\n","init.lua":"local clear = tonumber(ARGV[num_static_argv + 1])\nlocal limiter_version = ARGV[num_static_argv + 2]\nlocal num_local_argv = num_static_argv + 2\n\nif clear == 1 then\n redis.call('del', unpack(KEYS))\nend\n\nif redis.call('exists', settings_key) == 0 then\n -- Create\n local args = {'hmset', settings_key}\n\n for i = num_local_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\n end\n\n redis.call(unpack(args))\n redis.call('hmset', settings_key,\n 'nextRequest', now,\n 'lastReservoirRefresh', now,\n 'lastReservoirIncrease', now,\n 'running', 0,\n 'done', 0,\n 'unblockTime', 0,\n 'capacityPriorityCounter', 0\n )\n\nelse\n -- Apply migrations\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'version'\n )\n local id = settings[1]\n local current_version = settings[2]\n\n if current_version ~= limiter_version then\n local version_digits = {}\n for k, v in string.gmatch(current_version, \"([^.]+)\") do\n table.insert(version_digits, tonumber(k))\n end\n\n -- 2.10.0\n if version_digits[2] < 10 then\n redis.call('hsetnx', settings_key, 'reservoirRefreshInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirRefreshAmount', '')\n redis.call('hsetnx', settings_key, 'lastReservoirRefresh', '')\n redis.call('hsetnx', settings_key, 'done', 0)\n redis.call('hset', settings_key, 'version', '2.10.0')\n end\n\n -- 2.11.1\n if version_digits[2] < 11 or (version_digits[2] == 11 and version_digits[3] < 1) then\n if redis.call('hstrlen', settings_key, 'lastReservoirRefresh') == 0 then\n redis.call('hmset', settings_key,\n 'lastReservoirRefresh', now,\n 'version', '2.11.1'\n )\n end\n end\n\n -- 2.14.0\n if version_digits[2] < 14 then\n local old_running_key = 'b_'..id..'_running'\n local old_executing_key = 'b_'..id..'_executing'\n\n if redis.call('exists', old_running_key) == 1 then\n redis.call('rename', old_running_key, job_weights_key)\n end\n if redis.call('exists', old_executing_key) == 1 then\n redis.call('rename', old_executing_key, job_expirations_key)\n end\n redis.call('hset', settings_key, 'version', '2.14.0')\n end\n\n -- 2.15.2\n if version_digits[2] < 15 or (version_digits[2] == 15 and version_digits[3] < 2) then\n redis.call('hsetnx', settings_key, 'capacityPriorityCounter', 0)\n redis.call('hset', settings_key, 'version', '2.15.2')\n end\n\n -- 2.17.0\n if version_digits[2] < 17 then\n redis.call('hsetnx', settings_key, 'clientTimeout', 10000)\n redis.call('hset', settings_key, 'version', '2.17.0')\n end\n\n -- 2.18.0\n if version_digits[2] < 18 then\n redis.call('hsetnx', settings_key, 'reservoirIncreaseInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseAmount', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseMaximum', '')\n redis.call('hsetnx', settings_key, 'lastReservoirIncrease', now)\n redis.call('hset', settings_key, 'version', '2.18.0')\n end\n\n end\n\n process_tick(now, false)\nend\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n","process_tick.lua":"local process_tick = function (now, always_publish)\n\n local compute_capacity = function (maxConcurrent, running, reservoir)\n if maxConcurrent ~= nil and reservoir ~= nil then\n return math.min((maxConcurrent - running), reservoir)\n elseif maxConcurrent ~= nil then\n return maxConcurrent - running\n elseif reservoir ~= nil then\n return reservoir\n else\n return nil\n end\n end\n\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'running',\n 'reservoir',\n 'reservoirRefreshInterval',\n 'reservoirRefreshAmount',\n 'lastReservoirRefresh',\n 'reservoirIncreaseInterval',\n 'reservoirIncreaseAmount',\n 'reservoirIncreaseMaximum',\n 'lastReservoirIncrease',\n 'capacityPriorityCounter',\n 'clientTimeout'\n )\n local id = settings[1]\n local maxConcurrent = tonumber(settings[2])\n local running = tonumber(settings[3])\n local reservoir = tonumber(settings[4])\n local reservoirRefreshInterval = tonumber(settings[5])\n local reservoirRefreshAmount = tonumber(settings[6])\n local lastReservoirRefresh = tonumber(settings[7])\n local reservoirIncreaseInterval = tonumber(settings[8])\n local reservoirIncreaseAmount = tonumber(settings[9])\n local reservoirIncreaseMaximum = tonumber(settings[10])\n local lastReservoirIncrease = tonumber(settings[11])\n local capacityPriorityCounter = tonumber(settings[12])\n local clientTimeout = tonumber(settings[13])\n\n local initial_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n --\n -- Process 'running' changes\n --\n local expired = redis.call('zrangebyscore', job_expirations_key, '-inf', '('..now)\n\n if #expired > 0 then\n redis.call('zremrangebyscore', job_expirations_key, '-inf', '('..now)\n\n local flush_batch = function (batch, acc)\n local weights = redis.call('hmget', job_weights_key, unpack(batch))\n redis.call('hdel', job_weights_key, unpack(batch))\n local clients = redis.call('hmget', job_clients_key, unpack(batch))\n redis.call('hdel', job_clients_key, unpack(batch))\n\n -- Calculate sum of removed weights\n for i = 1, #weights do\n acc['total'] = acc['total'] + (tonumber(weights[i]) or 0)\n end\n\n -- Calculate sum of removed weights by client\n local client_weights = {}\n for i = 1, #clients do\n local removed = tonumber(weights[i]) or 0\n if removed > 0 then\n acc['client_weights'][clients[i]] = (acc['client_weights'][clients[i]] or 0) + removed\n end\n end\n end\n\n local acc = {\n ['total'] = 0,\n ['client_weights'] = {}\n }\n local batch_size = 1000\n\n -- Compute changes to Zsets and apply changes to Hashes\n for i = 1, #expired, batch_size do\n local batch = {}\n for j = i, math.min(i + batch_size - 1, #expired) do\n table.insert(batch, expired[j])\n end\n\n flush_batch(batch, acc)\n end\n\n -- Apply changes to Zsets\n if acc['total'] > 0 then\n redis.call('hincrby', settings_key, 'done', acc['total'])\n running = tonumber(redis.call('hincrby', settings_key, 'running', -acc['total']))\n end\n\n for client, weight in pairs(acc['client_weights']) do\n redis.call('zincrby', client_running_key, -weight, client)\n end\n end\n\n --\n -- Process 'reservoir' changes\n --\n local reservoirRefreshActive = reservoirRefreshInterval ~= nil and reservoirRefreshAmount ~= nil\n if reservoirRefreshActive and now >= lastReservoirRefresh + reservoirRefreshInterval then\n reservoir = reservoirRefreshAmount\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirRefresh', now\n )\n end\n\n local reservoirIncreaseActive = reservoirIncreaseInterval ~= nil and reservoirIncreaseAmount ~= nil\n if reservoirIncreaseActive and now >= lastReservoirIncrease + reservoirIncreaseInterval then\n local num_intervals = math.floor((now - lastReservoirIncrease) / reservoirIncreaseInterval)\n local incr = reservoirIncreaseAmount * num_intervals\n if reservoirIncreaseMaximum ~= nil then\n incr = math.min(incr, reservoirIncreaseMaximum - (reservoir or 0))\n end\n if incr > 0 then\n reservoir = (reservoir or 0) + incr\n end\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirIncrease', lastReservoirIncrease + (num_intervals * reservoirIncreaseInterval)\n )\n end\n\n --\n -- Clear unresponsive clients\n --\n local unresponsive = redis.call('zrangebyscore', client_last_seen_key, '-inf', (now - clientTimeout))\n local unresponsive_lookup = {}\n local terminated_clients = {}\n for i = 1, #unresponsive do\n unresponsive_lookup[unresponsive[i]] = true\n if tonumber(redis.call('zscore', client_running_key, unresponsive[i])) == 0 then\n table.insert(terminated_clients, unresponsive[i])\n end\n end\n if #terminated_clients > 0 then\n redis.call('zrem', client_running_key, unpack(terminated_clients))\n redis.call('hdel', client_num_queued_key, unpack(terminated_clients))\n redis.call('zrem', client_last_registered_key, unpack(terminated_clients))\n redis.call('zrem', client_last_seen_key, unpack(terminated_clients))\n end\n\n --\n -- Broadcast capacity changes\n --\n local final_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n if always_publish or (initial_capacity ~= nil and final_capacity == nil) then\n -- always_publish or was not unlimited, now unlimited\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n\n elseif initial_capacity ~= nil and final_capacity ~= nil and final_capacity > initial_capacity then\n -- capacity was increased\n -- send the capacity message to the limiter having the lowest number of running jobs\n -- the tiebreaker is the limiter having not registered a job in the longest time\n\n local lowest_concurrency_value = nil\n local lowest_concurrency_clients = {}\n local lowest_concurrency_last_registered = {}\n local client_concurrencies = redis.call('zrange', client_running_key, 0, -1, 'withscores')\n\n for i = 1, #client_concurrencies, 2 do\n local client = client_concurrencies[i]\n local concurrency = tonumber(client_concurrencies[i+1])\n\n if (\n lowest_concurrency_value == nil or lowest_concurrency_value == concurrency\n ) and (\n not unresponsive_lookup[client]\n ) and (\n tonumber(redis.call('hget', client_num_queued_key, client)) > 0\n ) then\n lowest_concurrency_value = concurrency\n table.insert(lowest_concurrency_clients, client)\n local last_registered = tonumber(redis.call('zscore', client_last_registered_key, client))\n table.insert(lowest_concurrency_last_registered, last_registered)\n end\n end\n\n if #lowest_concurrency_clients > 0 then\n local position = 1\n local earliest = lowest_concurrency_last_registered[1]\n\n for i,v in ipairs(lowest_concurrency_last_registered) do\n if v < earliest then\n position = i\n earliest = v\n end\n end\n\n local next_client = lowest_concurrency_clients[position]\n redis.call('publish', 'b_'..id,\n 'capacity-priority:'..(final_capacity or '')..\n ':'..next_client..\n ':'..capacityPriorityCounter\n )\n redis.call('hincrby', settings_key, 'capacityPriorityCounter', '1')\n else\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n end\n end\n\n return {\n ['capacity'] = final_capacity,\n ['running'] = running,\n ['reservoir'] = reservoir\n }\nend\n","queued.lua":"local clientTimeout = tonumber(redis.call('hget', settings_key, 'clientTimeout'))\nlocal valid_clients = redis.call('zrangebyscore', client_last_seen_key, (now - clientTimeout), 'inf')\nlocal client_queued = redis.call('hmget', client_num_queued_key, unpack(valid_clients))\n\nlocal sum = 0\nfor i = 1, #client_queued do\n sum = sum + tonumber(client_queued[i])\nend\n\nreturn sum\n","refresh_expiration.lua":"local refresh_expiration = function (now, nextRequest, groupTimeout)\n\n if groupTimeout ~= nil then\n local ttl = (nextRequest + groupTimeout) - now\n\n for i = 1, #KEYS do\n redis.call('pexpire', KEYS[i], ttl)\n end\n end\n\nend\n","refs.lua":"local settings_key = KEYS[1]\nlocal job_weights_key = KEYS[2]\nlocal job_expirations_key = KEYS[3]\nlocal job_clients_key = KEYS[4]\nlocal client_running_key = KEYS[5]\nlocal client_num_queued_key = KEYS[6]\nlocal client_last_registered_key = KEYS[7]\nlocal client_last_seen_key = KEYS[8]\n\nlocal now = tonumber(ARGV[1])\nlocal client = ARGV[2]\n\nlocal num_static_argv = 2\n","register.lua":"local index = ARGV[num_static_argv + 1]\nlocal weight = tonumber(ARGV[num_static_argv + 2])\nlocal expiration = tonumber(ARGV[num_static_argv + 3])\n\nlocal state = process_tick(now, false)\nlocal capacity = state['capacity']\nlocal reservoir = state['reservoir']\n\nlocal settings = redis.call('hmget', settings_key,\n 'nextRequest',\n 'minTime',\n 'groupTimeout'\n)\nlocal nextRequest = tonumber(settings[1])\nlocal minTime = tonumber(settings[2])\nlocal groupTimeout = tonumber(settings[3])\n\nif conditions_check(capacity, weight) then\n\n redis.call('hincrby', settings_key, 'running', weight)\n redis.call('hset', job_weights_key, index, weight)\n if expiration ~= nil then\n redis.call('zadd', job_expirations_key, now + expiration, index)\n end\n redis.call('hset', job_clients_key, index, client)\n redis.call('zincrby', client_running_key, weight, client)\n redis.call('hincrby', client_num_queued_key, client, -1)\n redis.call('zadd', client_last_registered_key, now, client)\n\n local wait = math.max(nextRequest - now, 0)\n local newNextRequest = now + wait + minTime\n\n if reservoir == nil then\n redis.call('hset', settings_key,\n 'nextRequest', newNextRequest\n )\n else\n reservoir = reservoir - weight\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'nextRequest', newNextRequest\n )\n end\n\n refresh_expiration(now, newNextRequest, groupTimeout)\n\n return {true, wait, reservoir}\n\nelse\n return {false}\nend\n","register_client.lua":"local queued = tonumber(ARGV[num_static_argv + 1])\n\n-- Could have been re-registered concurrently\nif not redis.call('zscore', client_last_seen_key, client) then\n redis.call('zadd', client_running_key, 0, client)\n redis.call('hset', client_num_queued_key, client, queued)\n redis.call('zadd', client_last_registered_key, 0, client)\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n\nreturn {}\n","running.lua":"return process_tick(now, false)['running']\n","submit.lua":"local queueLength = tonumber(ARGV[num_static_argv + 1])\nlocal weight = tonumber(ARGV[num_static_argv + 2])\n\nlocal capacity = process_tick(now, false)['capacity']\n\nlocal settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'highWater',\n 'nextRequest',\n 'strategy',\n 'unblockTime',\n 'penalty',\n 'minTime',\n 'groupTimeout'\n)\nlocal id = settings[1]\nlocal maxConcurrent = tonumber(settings[2])\nlocal highWater = tonumber(settings[3])\nlocal nextRequest = tonumber(settings[4])\nlocal strategy = tonumber(settings[5])\nlocal unblockTime = tonumber(settings[6])\nlocal penalty = tonumber(settings[7])\nlocal minTime = tonumber(settings[8])\nlocal groupTimeout = tonumber(settings[9])\n\nif maxConcurrent ~= nil and weight > maxConcurrent then\n return redis.error_reply('OVERWEIGHT:'..weight..':'..maxConcurrent)\nend\n\nlocal reachedHWM = (highWater ~= nil and queueLength == highWater\n and not (\n conditions_check(capacity, weight)\n and nextRequest - now <= 0\n )\n)\n\nlocal blocked = strategy == 3 and (reachedHWM or unblockTime >= now)\n\nif blocked then\n local computedPenalty = penalty\n if computedPenalty == nil then\n if minTime == 0 then\n computedPenalty = 5000\n else\n computedPenalty = 15 * minTime\n end\n end\n\n local newNextRequest = now + computedPenalty + minTime\n\n redis.call('hmset', settings_key,\n 'unblockTime', now + computedPenalty,\n 'nextRequest', newNextRequest\n )\n\n local clients_queued_reset = redis.call('hkeys', client_num_queued_key)\n local queued_reset = {}\n for i = 1, #clients_queued_reset do\n table.insert(queued_reset, clients_queued_reset[i])\n table.insert(queued_reset, 0)\n end\n redis.call('hmset', client_num_queued_key, unpack(queued_reset))\n\n redis.call('publish', 'b_'..id, 'blocked:')\n\n refresh_expiration(now, newNextRequest, groupTimeout)\nend\n\nif not blocked and not reachedHWM then\n redis.call('hincrby', client_num_queued_key, client, 1)\nend\n\nreturn {reachedHWM, blocked, strategy}\n","update_settings.lua":"local args = {'hmset', settings_key}\n\nfor i = num_static_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\nend\n\nredis.call(unpack(args))\n\nprocess_tick(now, true)\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n","validate_client.lua":"if not redis.call('zscore', client_last_seen_key, client) then\n return redis.error_reply('UNKNOWN_CLIENT')\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n","validate_keys.lua":"if not (redis.call('exists', settings_key) == 1) then\n return redis.error_reply('SETTINGS_KEY_NOT_FOUND')\nend\n"},Scripts$3=createCommonjsModule((function(e,t){var r,n,i;r={refs:(n=require$$0$2)["refs.lua"],validate_keys:n["validate_keys.lua"],validate_client:n["validate_client.lua"],refresh_expiration:n["refresh_expiration.lua"],process_tick:n["process_tick.lua"],conditions_check:n["conditions_check.lua"],get_time:n["get_time.lua"]},t.allKeys=function(e){return[`b_${e}_settings`,`b_${e}_job_weights`,`b_${e}_job_expirations`,`b_${e}_job_clients`,`b_${e}_client_running`,`b_${e}_client_num_queued`,`b_${e}_client_last_registered`,`b_${e}_client_last_seen`]},i={init:{keys:t.allKeys,headers:["process_tick"],refresh_expiration:!0,code:n["init.lua"]},group_check:{keys:t.allKeys,headers:[],refresh_expiration:!1,code:n["group_check.lua"]},register_client:{keys:t.allKeys,headers:["validate_keys"],refresh_expiration:!1,code:n["register_client.lua"]},blacklist_client:{keys:t.allKeys,headers:["validate_keys","validate_client"],refresh_expiration:!1,code:n["blacklist_client.lua"]},heartbeat:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["heartbeat.lua"]},update_settings:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:n["update_settings.lua"]},running:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["running.lua"]},queued:{keys:t.allKeys,headers:["validate_keys","validate_client"],refresh_expiration:!1,code:n["queued.lua"]},done:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["done.lua"]},check:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!1,code:n["check.lua"]},submit:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!0,code:n["submit.lua"]},register:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!0,code:n["register.lua"]},free:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:n["free.lua"]},current_reservoir:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["current_reservoir.lua"]},increment_reservoir:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:n["increment_reservoir.lua"]}},t.names=Object.keys(i),t.keys=function(e,t){return i[e].keys(t)},t.payload=function(e){var t;return t=i[e],Array.prototype.concat(r.refs,t.headers.map((function(e){return r[e]})),t.refresh_expiration?r.refresh_expiration:"",t.code).join("\n")}})),Events$4,RedisConnection$2,Scripts$2,parser$5;function asyncGeneratorStep$5(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$5(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$5(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$5(s,n,i,o,a,"throw",e)}o(void 0)}))}}parser$5=parser$8,Events$4=Events_1,Scripts$2=Scripts$3,RedisConnection$2=function(){class RedisConnection{constructor(options={}){parser$5.load(options,this.defaults,this),null==this.Redis&&(this.Redis=eval("require")("redis")),null==this.Events&&(this.Events=new Events$4(this)),this.terminated=!1,null==this.client&&(this.client=this.Redis.createClient(this.clientOptions)),this.subscriber=this.client.duplicate(),this.limiters={},this.shas={},this.ready=this.Promise.all([this._setup(this.client,!1),this._setup(this.subscriber,!0)]).then((()=>this._loadScripts())).then((()=>({client:this.client,subscriber:this.subscriber})))}_setup(e,t){return e.setMaxListeners(0),new this.Promise(((r,n)=>(e.on("error",(e=>this.Events.trigger("error",e))),t&&e.on("message",((e,t)=>{var r;return null!=(r=this.limiters[e])?r._store.onMessage(e,t):void 0})),e.ready?r():e.once("ready",r))))}_loadScript(e){return new this.Promise(((t,r)=>{var n;return n=Scripts$2.payload(e),this.client.multi([["script","load",n]]).exec(((n,i)=>null!=n?r(n):(this.shas[e]=i[0],t(i[0]))))}))}_loadScripts(){return this.Promise.all(Scripts$2.names.map((e=>this._loadScript(e))))}__runCommand__(e){var t=this;return _asyncToGenerator$5((function*(){return yield t.ready,new t.Promise(((r,n)=>t.client.multi([e]).exec_atomic((function(e,t){return null!=e?n(e):r(t[0])}))))}))()}__addLimiter__(e){return this.Promise.all([e.channel(),e.channel_client()].map((t=>new this.Promise(((r,n)=>{var i;return i=n=>{if(n===t)return this.subscriber.removeListener("subscribe",i),this.limiters[t]=e,r()},this.subscriber.on("subscribe",i),this.subscriber.subscribe(t)})))))}__removeLimiter__(e){var t=this;return this.Promise.all([e.channel(),e.channel_client()].map(function(){var e=_asyncToGenerator$5((function*(e){return t.terminated||(yield new t.Promise(((r,n)=>t.subscriber.unsubscribe(e,(function(t,i){return null!=t?n(t):i===e?r():void 0}))))),delete t.limiters[e]}));return function(t){return e.apply(this,arguments)}}()))}__scriptArgs__(e,t,r,n){var i;return i=Scripts$2.keys(e,t),[this.shas[e],i.length].concat(i,r,n)}__scriptFn__(e){return this.client.evalsha.bind(this.client)}disconnect(e=!0){var t,r,n,i;for(t=0,n=(i=Object.keys(this.limiters)).length;t(this._loadScripts(),{client:this.client,subscriber:this.subscriber})))}_setup(e,t){return e.setMaxListeners(0),new this.Promise(((r,n)=>(e.on("error",(e=>this.Events.trigger("error",e))),t&&e.on("message",((e,t)=>{var r;return null!=(r=this.limiters[e])?r._store.onMessage(e,t):void 0})),"ready"===e.status?r():e.once("ready",r))))}_loadScripts(){return Scripts$1.names.forEach((e=>this.client.defineCommand(e,{lua:Scripts$1.payload(e)})))}__runCommand__(e){var t=this;return _asyncToGenerator$4((function*(){yield t.ready;var r=_slicedToArray$3(yield t.client.pipeline([e]).exec(),1);return _slicedToArray$3(r[0],2)[1]}))()}__addLimiter__(e){return this.Promise.all([e.channel(),e.channel_client()].map((t=>new this.Promise(((r,n)=>this.subscriber.subscribe(t,(()=>(this.limiters[t]=e,r()))))))))}__removeLimiter__(e){var t=this;return[e.channel(),e.channel_client()].forEach(function(){var e=_asyncToGenerator$4((function*(e){return t.terminated||(yield t.subscriber.unsubscribe(e)),delete t.limiters[e]}));return function(t){return e.apply(this,arguments)}}())}__scriptArgs__(e,t,r,n){var i;return[(i=Scripts$1.keys(e,t)).length].concat(i,r,n)}__scriptFn__(e){return this.client[e].bind(this.client)}disconnect(e=!0){var t,r,n,i;for(t=0,n=(i=Object.keys(this.limiters)).length;t(this.clients=e,this.runScript("init",this.prepareInitSettings(this.clearDatastore))))).then((()=>this.connection.__addLimiter__(this.instance))).then((()=>this.runScript("register_client",[this.instance.queued()]))).then((()=>{var e;return"function"==typeof(e=this.heartbeat=setInterval((()=>this.runScript("heartbeat",[]).catch((e=>this.instance.Events.trigger("error",e)))),this.heartbeatInterval)).unref&&e.unref(),this.clients}))}__publish__(e){var t=this;return _asyncToGenerator$3((function*(){return(yield t.ready).client.publish(t.instance.channel(),`message:${e.toString()}`)}))()}onMessage(e,t){var r=this;return _asyncToGenerator$3((function*(){var e,n,i,s,o,a,c,l,u,p;try{c=t.indexOf(":");var d=[t.slice(0,c),t.slice(c+1)];if(i=d[1],"capacity"===(p=d[0]))return yield r.instance._drainAll(i.length>0?~~i:void 0);if("capacity-priority"===p){var h=_slicedToArray$2(i.split(":"),3);return u=h[0],l=h[1],n=h[2],e=u.length>0?~~u:void 0,l===r.clientId?(s=yield r.instance._drainAll(e),a=null!=e?e-(s||0):"",yield r.clients.client.publish(r.instance.channel(),`capacity-priority:${a}::${n}`)):""===l?(clearTimeout(r.capacityPriorityCounters[n]),delete r.capacityPriorityCounters[n],r.instance._drainAll(e)):r.capacityPriorityCounters[n]=setTimeout(_asyncToGenerator$3((function*(){var t;try{return delete r.capacityPriorityCounters[n],yield r.runScript("blacklist_client",[l]),yield r.instance._drainAll(e)}catch(e){return t=e,r.instance.Events.trigger("error",t)}})),1e3)}if("message"===p)return r.instance.Events.trigger("message",i);if("blocked"===p)return yield r.instance._dropAllQueued()}catch(e){return o=e,r.instance.Events.trigger("error",o)}}))()}__disconnect__(e){return clearInterval(this.heartbeat),this.sharedConnection?this.connection.__removeLimiter__(this.instance):this.connection.disconnect(e)}runScript(e,t){var r=this;return _asyncToGenerator$3((function*(){return"init"!==e&&"register_client"!==e&&(yield r.ready),new r.Promise(((n,i)=>{var s,o;return s=[Date.now(),r.clientId].concat(t),r.instance.Events.trigger("debug",`Calling Redis script: ${e}.lua`,s),o=r.connection.__scriptArgs__(e,r.originalId,s,(function(e,t){return null!=e?i(e):n(t)})),r.connection.__scriptFn__(e)(...o)})).catch((n=>"SETTINGS_KEY_NOT_FOUND"===n.message?"heartbeat"===e?r.Promise.resolve():r.runScript("init",r.prepareInitSettings(!1)).then((()=>r.runScript(e,t))):"UNKNOWN_CLIENT"===n.message?r.runScript("register_client",[r.instance.queued()]).then((()=>r.runScript(e,t))):r.Promise.reject(n)))}))()}prepareArray(e){var t,r,n,i;for(n=[],t=0,r=e.length;t(e[this.status[r]]=t,e)),{})}};var States_1=States$1,DLList,Sync$1;function asyncGeneratorStep$2(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$2(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$2(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$2(s,n,i,o,a,"throw",e)}o(void 0)}))}}DLList=DLList_1,Sync$1=class{constructor(e,t){this.schedule=this.schedule.bind(this),this.name=e,this.Promise=t,this._running=0,this._queue=new DLList}isEmpty(){return 0===this._queue.length}_tryToRun(){var e=this;return _asyncToGenerator$2((function*(){var t,r,n,i,s,o,a;if(e._running<1&&e._queue.length>0){e._running++;var c=e._queue.shift();return a=c.task,t=c.args,s=c.resolve,i=c.reject,r=yield _asyncToGenerator$2((function*(){try{return o=yield a(...t),function(){return s(o)}}catch(e){return n=e,function(){return i(n)}}}))(),e._running--,e._tryToRun(),r()}}))()}schedule(e,...t){var r,n,i;return i=n=null,r=new this.Promise((function(e,t){return i=e,n=t})),this._queue.push({task:e,args:t,resolve:i,reject:n}),this._tryToRun(),r}};var Sync_1=Sync$1,version="2.19.5",require$$8={version:version},require$$0$1=Bottleneck_1,Events$2,Group,IORedisConnection,RedisConnection,Scripts,parser$2;function _slicedToArray$1(e,t){return _arrayWithHoles$1(e)||_iterableToArrayLimit$1(e,t)||_nonIterableRest$1()}function _nonIterableRest$1(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArrayLimit$1(e,t){var r=[],n=!0,i=!1,s=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==a.return||a.return()}finally{if(i)throw s}}return r}function _arrayWithHoles$1(e){if(Array.isArray(e))return e}function asyncGeneratorStep$1(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$1(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$1(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$1(s,n,i,o,a,"throw",e)}o(void 0)}))}}parser$2=parser$8,Events$2=Events_1,RedisConnection=RedisConnection_1,IORedisConnection=IORedisConnection_1,Scripts=Scripts$3,Group=function(){class e{constructor(e={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=e,parser$2.load(this.limiterOptions,this.defaults,this),this.Events=new Events$2(this),this.instances={},this.Bottleneck=require$$0$1,this._startAutoCleanup(),this.sharedConnection=null!=this.connection,null==this.connection&&("redis"===this.limiterOptions.datastore?this.connection=new RedisConnection(Object.assign({},this.limiterOptions,{Events:this.Events})):"ioredis"===this.limiterOptions.datastore&&(this.connection=new IORedisConnection(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(e=""){var t;return null!=(t=this.instances[e])?t:(()=>{var t;return t=this.instances[e]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${e}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",t,e),t})()}deleteKey(e=""){var t=this;return _asyncToGenerator$1((function*(){var r,n;return n=t.instances[e],t.connection&&(r=yield t.connection.__runCommand__(["del",...Scripts.allKeys(`${t.id}-${e}`)])),null!=n&&(delete t.instances[e],yield n.disconnect()),null!=n||r>0}))()}limiters(){var e,t,r,n;for(e in r=[],t=this.instances)n=t[e],r.push({key:e,limiter:n});return r}keys(){return Object.keys(this.instances)}clusterKeys(){var e=this;return _asyncToGenerator$1((function*(){var t,r,n,i,s,o,a,c;if(null==e.connection)return e.Promise.resolve(e.keys());for(o=[],t=null,c=`b_${e.id}-`.length,r="_settings".length;0!==t;){var l=_slicedToArray$1(yield e.connection.__runCommand__(["scan",null!=t?t:0,"match",`b_${e.id}-*_settings`,"count",1e4]),2);for(t=~~l[0],i=0,a=(n=l[1]).length;ithis._resolve=e))}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(e){var t;return this._arr.push(e),t=this._promise,this._arr.length===this.maxSize?this._flush():null!=this.maxTime&&1===this._arr.length&&(this._timeout=setTimeout((()=>this._flush()),this.maxTime)),t}}return e.prototype.defaults={maxTime:null,maxSize:null,Promise:Promise},e}.call(void 0);var Batcher_1=Batcher;function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _iterableToArrayLimit(e,t){var r=[],n=!0,i=!1,s=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==a.return||a.return()}finally{if(i)throw s}}return r}function _toArray(e){return _arrayWithHoles(e)||_iterableToArray(e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithHoles(e){if(Array.isArray(e))return e}function asyncGeneratorStep(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep(s,n,i,o,a,"throw",e)}o(void 0)}))}}var Bottleneck,DEFAULT_PRIORITY,Events,Job,LocalDatastore,NUM_PRIORITIES,Queues,RedisDatastore,States,Sync,parser,splice=[].splice;NUM_PRIORITIES=10,DEFAULT_PRIORITY=5,parser=parser$8,Queues=Queues_1,Job=Job_1,LocalDatastore=LocalDatastore_1,RedisDatastore=RedisDatastore_1,Events=Events_1,States=States_1,Sync=Sync_1,Bottleneck=function(){class e{constructor(t={},...r){var n,i;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(t,r),parser.load(t,this.instanceDefaults,this),this._queues=new Queues(NUM_PRIORITIES),this._scheduled={},this._states=new States(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new Events(this),this._submitLock=new Sync("submit",this.Promise),this._registerLock=new Sync("register",this.Promise),i=parser.load(t,this.storeDefaults,{}),this._store=function(){if("redis"===this.datastore||"ioredis"===this.datastore||null!=this.connection)return n=parser.load(t,this.redisStoreDefaults,{}),new RedisDatastore(this,i,n);if("local"===this.datastore)return n=parser.load(t,this.localStoreDefaults,{}),new LocalDatastore(this,i,n);throw new e.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",(()=>{var e;return null!=(e=this._store.heartbeat)&&"function"==typeof e.ref?e.ref():void 0})),this._queues.on("zero",(()=>{var e;return null!=(e=this._store.heartbeat)&&"function"==typeof e.unref?e.unref():void 0}))}_validateOptions(t,r){if(null==t||"object"!=typeof t||0!==r.length)throw new e.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(e){return this._store.__publish__(e)}disconnect(e=!0){return this._store.__disconnect__(e)}chain(e){return this._limiter=e,this}queued(e){return this._queues.queued(e)}clusterQueued(){return this._store.__queued__()}empty(){return 0===this.queued()&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(e){return this._states.jobStatus(e)}jobs(e){return this._states.statusJobs(e)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(e=1){return this._store.__check__(e)}_clearGlobalState(e){return null!=this._scheduled[e]&&(clearTimeout(this._scheduled[e].expiration),delete this._scheduled[e],!0)}_free(e,t,r,n){var i=this;return _asyncToGenerator((function*(){var t,s;try{if(s=(yield i._store.__free__(e,r.weight)).running,i.Events.trigger("debug",`Freed ${r.id}`,n),0===s&&i.empty())return i.Events.trigger("idle")}catch(e){return t=e,i.Events.trigger("error",t)}}))()}_run(e,t,r){var n,i,s;return t.doRun(),n=this._clearGlobalState.bind(this,e),s=this._run.bind(this,e,t),i=this._free.bind(this,e,t),this._scheduled[e]={timeout:setTimeout((()=>t.doExecute(this._limiter,n,s,i)),r),expiration:null!=t.options.expiration?setTimeout((function(){return t.doExpire(n,s,i)}),r+t.options.expiration):void 0,job:t}}_drainOne(e){return this._registerLock.schedule((()=>{var t,r,n,i,s;if(0===this.queued())return this.Promise.resolve(null);s=this._queues.getFirst();var o=n=s.first();return i=o.options,t=o.args,null!=e&&i.weight>e?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${i.id}`,{args:t,options:i}),r=this._randomIndex(),this._store.__register__(r,i.weight,i.expiration).then((({success:e,wait:o,reservoir:a})=>{var c;return this.Events.trigger("debug",`Drained ${i.id}`,{success:e,args:t,options:i}),e?(s.shift(),(c=this.empty())&&this.Events.trigger("empty"),0===a&&this.Events.trigger("depleted",c),this._run(r,n,o),this.Promise.resolve(i.weight)):this.Promise.resolve(null)})))}))}_drainAll(e,t=0){return this._drainOne(e).then((r=>{var n;return null!=r?(n=null!=e?e-r:e,this._drainAll(n,t+r)):this.Promise.resolve(t)})).catch((e=>this.Events.trigger("error",e)))}_dropAllQueued(e){return this._queues.shiftAll((function(t){return t.doDrop({message:e})}))}stop(t={}){var r,n;return t=parser.load(t,this.stopDefaults),n=e=>{var t;return t=()=>{var t;return(t=this._states.counts)[0]+t[1]+t[2]+t[3]===e},new this.Promise(((e,r)=>t()?e():this.on("done",(()=>{if(t())return this.removeAllListeners("done"),e()}))))},r=t.dropWaitingJobs?(this._run=function(e,r){return r.doDrop({message:t.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule((()=>this._submitLock.schedule((()=>{var e,r,i;for(e in r=this._scheduled)i=r[e],"RUNNING"===this.jobStatus(i.job.options.id)&&(clearTimeout(i.timeout),clearTimeout(i.expiration),i.job.doDrop({message:t.dropErrorMessage}));return this._dropAllQueued(t.dropErrorMessage),n(0)}))))):this.schedule({priority:NUM_PRIORITIES-1,weight:0},(()=>n(1))),this._receive=function(r){return r._reject(new e.prototype.BottleneckError(t.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new e.prototype.BottleneckError("stop() has already been called")),r}_addToQueue(t){var r=this;return _asyncToGenerator((function*(){var n,i,s,o,a,c,l;n=t.args,o=t.options;try{var u=yield r._store.__submit__(r.queued(),o.weight);a=u.reachedHWM,i=u.blocked,l=u.strategy}catch(e){return s=e,r.Events.trigger("debug",`Could not queue ${o.id}`,{args:n,options:o,error:s}),t.doDrop({error:s}),!1}return i?(t.doDrop(),!0):a&&(null!=(c=l===e.prototype.strategy.LEAK?r._queues.shiftLastFrom(o.priority):l===e.prototype.strategy.OVERFLOW_PRIORITY?r._queues.shiftLastFrom(o.priority+1):l===e.prototype.strategy.OVERFLOW?t:void 0)&&c.doDrop(),null==c||l===e.prototype.strategy.OVERFLOW)?(null==c&&t.doDrop(),a):(t.doQueue(a,i),r._queues.push(t),yield r._drainAll(),a)}))()}_receive(t){return null!=this._states.jobStatus(t.options.id)?(t._reject(new e.prototype.BottleneckError(`A job with the same id already exists (id=${t.options.id})`)),!1):(t.doReceive(),this._submitLock.schedule(this._addToQueue,t))}submit(...e){var t,r,n,i,s,o,a,c;"function"==typeof e[0]?(s=_toArray(e),r=s[0],e=s.slice(1),o=_slicedToArray(splice.call(e,-1),1),t=o[0],i=parser.load({},this.jobDefaults)):(i=(a=_toArray(e))[0],r=a[1],e=a.slice(2),c=_slicedToArray(splice.call(e,-1),1),t=c[0],i=parser.load(i,this.jobDefaults));return(n=new Job(((...e)=>new this.Promise((function(t,n){return r(...e,(function(...e){return(null!=e[0]?n:t)(e)}))}))),e,i,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise)).promise.then((function(e){return"function"==typeof t?t(...e):void 0})).catch((function(e){return Array.isArray(e)?"function"==typeof t?t(...e):void 0:"function"==typeof t?t(e):void 0})),this._receive(n)}schedule(...e){var t,r,n;if("function"==typeof e[0]){var i=_toArray(e);n=i[0],e=i.slice(1),r={}}else{var s=_toArray(e);r=s[0],n=s[1],e=s.slice(2)}return t=new Job(n,e,r,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(t),t.promise}wrap(e){var t,r;return t=this.schedule.bind(this),(r=function(...r){return t(e.bind(this),...r)}).withOptions=function(r,...n){return t(r,e,...n)},r}updateSettings(e={}){var t=this;return _asyncToGenerator((function*(){return yield t._store.__updateSettings__(parser.overwrite(e,t.storeDefaults)),parser.overwrite(e,t.instanceDefaults,t),t}))()}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(e=0){return this._store.__incrementReservoir__(e)}}return e.default=e,e.Events=Events,e.version=e.prototype.version=require$$8.version,e.strategy=e.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},e.BottleneckError=e.prototype.BottleneckError=BottleneckError_1,e.Group=e.prototype.Group=Group_1,e.RedisConnection=e.prototype.RedisConnection=RedisConnection_1,e.IORedisConnection=e.prototype.IORedisConnection=IORedisConnection_1,e.Batcher=e.prototype.Batcher=Batcher_1,e.prototype.jobDefaults={priority:DEFAULT_PRIORITY,weight:1,expiration:null,id:""},e.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:e.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},e.prototype.localStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:250},e.prototype.redisStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},e.prototype.instanceDefaults={datastore:"local",connection:null,id:"",rejectOnDrop:!0,trackDoneStatus:!1,Promise:Promise},e.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},e}.call(void 0);var Bottleneck_1=Bottleneck,lib$1=require$$0$1,shams=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0},origSymbol="undefined"!=typeof Symbol&&Symbol,hasSymbols$1=function(){return"function"==typeof origSymbol&&("function"==typeof Symbol&&("symbol"==typeof origSymbol("foo")&&("symbol"==typeof Symbol("bar")&&shams())))},ERROR_MESSAGE="Function.prototype.bind called on incompatible ",slice=Array.prototype.slice,toStr$1=Object.prototype.toString,funcType="[object Function]",implementation=function(e){var t=this;if("function"!=typeof t||toStr$1.call(t)!==funcType)throw new TypeError(ERROR_MESSAGE+t);for(var r,n=slice.call(arguments,1),i=function(){if(this instanceof r){var i=t.apply(this,n.concat(slice.call(arguments)));return Object(i)===i?i:this}return t.apply(e,n.concat(slice.call(arguments)))},s=Math.max(0,t.length-n.length),o=[],a=0;a1&&"boolean"!=typeof t)throw new $TypeError$1('"allowMissing" argument must be a boolean');var r=stringToPath(e),n=r.length>0?r[0]:"",i=getBaseIntrinsic("%"+n+"%",t),s=i.name,o=i.value,a=!1,c=i.alias;c&&(n=c[0],$spliceApply(r,$concat([0,1],c)));for(var l=1,u=!0;l=r.length){var y=$gOPD(o,p);o=(u=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:o[p]}else u=src(o,p),o=o[p];u&&!a&&(INTRINSICS[s]=o)}}return o},callBind=createCommonjsModule((function(e){var t=getIntrinsic("%Function.prototype.apply%"),r=getIntrinsic("%Function.prototype.call%"),n=getIntrinsic("%Reflect.apply%",!0)||functionBind.call(r,t),i=getIntrinsic("%Object.getOwnPropertyDescriptor%",!0),s=getIntrinsic("%Object.defineProperty%",!0),o=getIntrinsic("%Math.max%");if(s)try{s({},"a",{value:1})}catch(e){s=null}e.exports=function(e){var t=n(functionBind,r,arguments);if(i&&s){var a=i(t,"length");a.configurable&&s(t,"length",{value:1+o(0,e.length-(arguments.length-1))})}return t};var a=function(){return n(functionBind,t,arguments)};s?s(e.exports,"apply",{value:a}):e.exports.apply=a})),$indexOf=callBind(getIntrinsic("String.prototype.indexOf")),callBound=function(e,t){var r=getIntrinsic(e,!!t);return"function"==typeof r&&$indexOf(e,".prototype.")>-1?callBind(r):r},util_inspect=require$$0$3.inspect,hasMap="function"==typeof Map&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize=hasMap&&mapSizeDescriptor&&"function"==typeof mapSizeDescriptor.get?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet="function"==typeof Set&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&"function"==typeof setSizeDescriptor.get?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap="function"==typeof WeakMap&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet="function"==typeof WeakSet&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef="function"==typeof WeakRef&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString=Object.prototype.toString,functionToString=Function.prototype.toString,match=String.prototype.match,bigIntValueOf="function"==typeof BigInt?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,hasShammedSymbols="function"==typeof Symbol&&"object"==typeof Symbol.iterator,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null),inspectCustom=util_inspect.custom,inspectSymbol=inspectCustom&&isSymbol(inspectCustom)?inspectCustom:null,toStringTag="function"==typeof Symbol&&void 0!==Symbol.toStringTag?Symbol.toStringTag:null,objectInspect=function e(t,r,n,i){var s=r||{};if(has$3(s,"quoteStyle")&&"single"!==s.quoteStyle&&"double"!==s.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has$3(s,"maxStringLength")&&("number"==typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var o=!has$3(s,"customInspect")||s.customInspect;if("boolean"!=typeof o&&"symbol"!==o)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has$3(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('options "indent" must be "\\t", an integer > 0, or `null`');if(void 0===t)return"undefined";if(null===t)return"null";if("boolean"==typeof t)return t?"true":"false";if("string"==typeof t)return inspectString(t,s);if("number"==typeof t)return 0===t?1/0/t>0?"0":"-0":String(t);if("bigint"==typeof t)return String(t)+"n";var a=void 0===s.depth?5:s.depth;if(void 0===n&&(n=0),n>=a&&a>0&&"object"==typeof t)return isArray$3(t)?"[Array]":"[Object]";var c=getIndent(s,n);if(void 0===i)i=[];else if(indexOf(i,t)>=0)return"[Circular]";function l(t,r,o){if(r&&(i=i.slice()).push(r),o){var a={depth:s.depth};return has$3(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),e(t,a,n+1,i)}return e(t,s,n+1,i)}if("function"==typeof t){var u=nameOf(t),p=arrObjKeys(t,l);return"[Function"+(u?": "+u:" (anonymous)")+"]"+(p.length>0?" { "+p.join(", ")+" }":"")}if(isSymbol(t)){var d=hasShammedSymbols?String(t).replace(/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(t);return"object"!=typeof t||hasShammedSymbols?d:markBoxed(d)}if(isElement(t)){for(var h="<"+String(t.nodeName).toLowerCase(),y=t.attributes||[],f=0;f"}if(isArray$3(t)){if(0===t.length)return"[]";var _=arrObjKeys(t,l);return c&&!singleLineValues(_)?"["+indentedJoin(_,c)+"]":"[ "+_.join(", ")+" ]"}if(isError(t)){var m=arrObjKeys(t,l);return 0===m.length?"["+String(t)+"]":"{ ["+String(t)+"] "+m.join(", ")+" }"}if("object"==typeof t&&o){if(inspectSymbol&&"function"==typeof t[inspectSymbol])return t[inspectSymbol]();if("symbol"!==o&&"function"==typeof t.inspect)return t.inspect()}if(isMap(t)){var g=[];return mapForEach.call(t,(function(e,r){g.push(l(r,t,!0)+" => "+l(e,t))})),collectionOf("Map",mapSize.call(t),g,c)}if(isSet(t)){var v=[];return setForEach.call(t,(function(e){v.push(l(e,t))})),collectionOf("Set",setSize.call(t),v,c)}if(isWeakMap(t))return weakCollectionOf("WeakMap");if(isWeakSet(t))return weakCollectionOf("WeakSet");if(isWeakRef(t))return weakCollectionOf("WeakRef");if(isNumber(t))return markBoxed(l(Number(t)));if(isBigInt(t))return markBoxed(l(bigIntValueOf.call(t)));if(isBoolean(t))return markBoxed(booleanValueOf.call(t));if(isString(t))return markBoxed(l(String(t)));if(!isDate(t)&&!isRegExp$1(t)){var b=arrObjKeys(t,l),w=gPO?gPO(t)===Object.prototype:t instanceof Object||t.constructor===Object,$=t instanceof Object?"":"null prototype",S=!w&&toStringTag&&Object(t)===t&&toStringTag in t?toStr(t).slice(8,-1):$?"Object":"",k=(w||"function"!=typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(S||$?"["+[].concat(S||[],$||[]).join(": ")+"] ":"");return 0===b.length?k+"{}":c?k+"{"+indentedJoin(b,c)+"}":k+"{ "+b.join(", ")+" }"}return String(t)};function wrapQuotes(e,t,r){var n="double"===(r.quoteStyle||t)?'"':"'";return n+e+n}function quote(e){return String(e).replace(/"/g,""")}function isArray$3(e){return!("[object Array]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isDate(e){return!("[object Date]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isRegExp$1(e){return!("[object RegExp]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isError(e){return!("[object Error]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isString(e){return!("[object String]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isNumber(e){return!("[object Number]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isBoolean(e){return!("[object Boolean]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isSymbol(e){if(hasShammedSymbols)return e&&"object"==typeof e&&e instanceof Symbol;if("symbol"==typeof e)return!0;if(!e||"object"!=typeof e||!symToString)return!1;try{return symToString.call(e),!0}catch(e){}return!1}function isBigInt(e){if(!e||"object"!=typeof e||!bigIntValueOf)return!1;try{return bigIntValueOf.call(e),!0}catch(e){}return!1}var hasOwn=Object.prototype.hasOwnProperty||function(e){return e in this};function has$3(e,t){return hasOwn.call(e,t)}function toStr(e){return objectToString.call(e)}function nameOf(e){if(e.name)return e.name;var t=match.call(functionToString.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}function indexOf(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;rt.maxStringLength){var r=e.length-t.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return inspectString(e.slice(0,t.maxStringLength),t)+n}return wrapQuotes(e.replace(/(['\\])/g,"\\$1").replace(/[\x00-\x1f]/g,lowbyte),"single",t)}function lowbyte(e){var t=e.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return r?"\\"+r:"\\x"+(t<16?"0":"")+t.toString(16).toUpperCase()}function markBoxed(e){return"Object("+e+")"}function weakCollectionOf(e){return e+" { ? }"}function collectionOf(e,t,r,n){return e+" ("+t+") {"+(n?indentedJoin(r,n):r.join(", "))+"}"}function singleLineValues(e){for(var t=0;t=0)return!1;return!0}function getIndent(e,t){var r;if("\t"===e.indent)r="\t";else{if(!("number"==typeof e.indent&&e.indent>0))return null;r=Array(e.indent+1).join(" ")}return{base:r,prev:Array(t+1).join(r)}}function indentedJoin(e,t){if(0===e.length)return"";var r="\n"+t.prev+t.base;return r+e.join(","+r)+"\n"+t.prev}function arrObjKeys(e,t){var r=isArray$3(e),n=[];if(r){n.length=e.length;for(var i=0;i1;){var t=e.pop(),r=t.obj[t.prop];if(isArray$2(r)){for(var n=[],i=0;i=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||i===formats.RFC1738&&(40===c||41===c)?o+=s.charAt(a):c<128?o+=hexTable[c]:c<2048?o+=hexTable[192|c>>6]+hexTable[128|63&c]:c<55296||c>=57344?o+=hexTable[224|c>>12]+hexTable[128|c>>6&63]+hexTable[128|63&c]:(a+=1,c=65536+((1023&c)<<10|1023&s.charCodeAt(a)),o+=hexTable[240|c>>18]+hexTable[128|c>>12&63]+hexTable[128|c>>6&63]+hexTable[128|63&c])}return o},compact=function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],n=0;n0?_.join(",")||null:void 0}];else if(isArray$1(a))m=a;else{var v=Object.keys(_);m=c?v.sort(c):v}for(var b=0;b0?d+p:""},has=Object.prototype.hasOwnProperty,isArray=Array.isArray,defaults={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:utils.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},interpretNumericEntities=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},parseArrayValue=function(e,t){return e&&"string"==typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function(e,t){var r,n={},i=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,s=t.parameterLimit===1/0?void 0:t.parameterLimit,o=i.split(t.delimiter,s),a=-1,c=t.charset;if(t.charsetSentinel)for(r=0;r-1&&(u=isArray(u)?[u]:u),has.call(n,l)?n[l]=utils.combine(n[l],u):n[l]=u}return n},parseObject=function(e,t,r,n){for(var i=n?t:parseArrayValue(t,r),s=e.length-1;s>=0;--s){var o,a=e[s];if("[]"===a&&r.parseArrays)o=[].concat(i);else{o=r.plainObjects?Object.create(null):{};var c="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,l=parseInt(c,10);r.parseArrays||""!==c?!isNaN(l)&&a!==c&&String(l)===c&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(o=[])[l]=i:o[c]=i:o={0:i}}i=o}return i},parseKeys=function(e,t,r,n){if(e){var i=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,s=/(\[[^[\]]*])/g,o=r.depth>0&&/(\[[^[\]]*])/.exec(i),a=o?i.slice(0,o.index):i,c=[];if(a){if(!r.plainObjects&&has.call(Object.prototype,a)&&!r.allowPrototypes)return;c.push(a)}for(var l=0;r.depth>0&&null!==(o=s.exec(i))&&l`wss://stream.data.alpaca.markets/v2/${e}`}};function account(e){if(e)try{return{...e,raw:()=>e,buying_power:number(e.buying_power),regt_buying_power:number(e.regt_buying_power),daytrading_buying_power:number(e.daytrading_buying_power),cash:number(e.cash),created_at:new Date(e.created_at),portfolio_value:number(e.portfolio_value),multiplier:number(e.multiplier),equity:number(e.equity),last_equity:number(e.last_equity),long_market_value:number(e.long_market_value),short_market_value:number(e.short_market_value),initial_margin:number(e.initial_margin),maintenance_margin:number(e.maintenance_margin),last_maintenance_margin:number(e.last_maintenance_margin),sma:number(e.sma),status:e.status}}catch(e){throw new Error(`Account parsing failed. ${e.message}`)}}function clock(e){if(e)try{return{raw:()=>e,timestamp:new Date(e.timestamp),is_open:e.is_open,next_open:new Date(e.next_open),next_close:new Date(e.next_close)}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function order(e){if(e)try{return{...e,raw:()=>e,created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),submitted_at:new Date(e.submitted_at),filled_at:new Date(e.filled_at),expired_at:new Date(e.expired_at),canceled_at:new Date(e.canceled_at),failed_at:new Date(e.failed_at),replaced_at:new Date(e.replaced_at),qty:number(e.qty),filled_qty:number(e.filled_qty),type:e.type,side:e.side,time_in_force:e.time_in_force,limit_price:number(e.limit_price),stop_price:number(e.stop_price),filled_avg_price:number(e.filled_avg_price),status:e.status,legs:orders(e.legs),trail_price:number(e.trail_price),trail_percent:number(e.trail_percent),hwm:number(e.hwm),order_class:e.order_class}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function orders(e){return e?e.map((e=>order(e))):void 0}function canceled_order(e){if(!e)return;let t=e.body;delete e.body;try{return{...e,order:{...t,raw:()=>t,created_at:new Date(t.created_at),updated_at:new Date(t.updated_at),submitted_at:new Date(t.submitted_at),filled_at:new Date(t.filled_at),expired_at:new Date(t.expired_at),canceled_at:new Date(t.canceled_at),failed_at:new Date(t.failed_at),replaced_at:new Date(t.replaced_at),qty:number(t.qty),filled_qty:number(t.filled_qty),type:t.type,side:t.side,time_in_force:t.time_in_force,limit_price:number(t.limit_price),stop_price:number(t.stop_price),filled_avg_price:number(t.filled_avg_price),status:t.status,legs:orders(t.legs),trail_price:number(t.trail_price),trail_percent:number(t.trail_percent),hwm:number(t.hwm),order_class:t.order_class}}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function canceled_orders(e){return e?e.map((e=>canceled_order(e))):void 0}function position(e){if(e)try{return{...e,raw:()=>e,avg_entry_price:number(e.avg_entry_price),qty:number(e.qty),side:e.side,market_value:number(e.market_value),cost_basis:number(e.cost_basis),unrealized_pl:number(e.unrealized_pl),unrealized_plpc:number(e.unrealized_plpc),unrealized_intraday_pl:number(e.unrealized_intraday_pl),unrealized_intraday_plpc:number(e.unrealized_intraday_plpc),current_price:number(e.current_price),lastday_price:number(e.lastday_price),change_today:number(e.change_today)}}catch(e){throw new Error(`Position parsing failed. ${e.message}`)}}function positions(e){return e?e.map((e=>position(e))):void 0}function tradeActivity(e){if(e)try{return{...e,raw:()=>e,cum_qty:number(e.cum_qty),leaves_qty:number(e.leaves_qty),price:number(e.price),qty:number(e.qty),side:e.side,type:e.type}}catch(e){throw new Error(`TradeActivity parsing failed. ${e.message}`)}}function nonTradeActivity(e){if(e)try{return{...e,raw:()=>e,net_amount:number(e.net_amount),qty:number(e.qty),per_share_amount:number(e.per_share_amount)}}catch(e){throw new Error(`NonTradeActivity parsing failed. ${e.message}`)}}function activities(e){if(e)try{return e.map((e=>"FILL"===e.activity_type?tradeActivity(e):nonTradeActivity(e)))}catch(e){throw new Error(`Activity parsing failed. ${e.message}`)}}function pageOfTrades(e){if(e)try{return{raw:()=>e,trades:(null==e.trades?[]:e.trades).map((e=>({raw:()=>e,...e,t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function pageOfQuotes(e){if(e)try{return{raw:()=>e,quotes:(null==e.quotes?[]:e.quotes).map((e=>({raw:()=>e,...e,t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function pageOfBars(e){if(e)try{return{raw:()=>e,bars:(null==e.bars?[]:e.bars).map((e=>({raw:()=>e,...e,t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function snapshot(e){if(e)try{return{...e,raw:()=>e,latestTrade:e.latestTrade?{...e.latestTrade,t:new Date(e.latestTrade.t)}:null,latestQuote:e.latestQuote?{...e.latestQuote,t:new Date(e.latestQuote.t)}:null,minuteBar:e.minuteBar?{...e.minuteBar,t:new Date(e.minuteBar.t)}:null,dailyBar:e.dailyBar?{...e.dailyBar,t:new Date(e.dailyBar.t)}:null,prevDailyBar:e.prevDailyBar?{...e.prevDailyBar,t:new Date(e.prevDailyBar.t)}:null}}catch(e){throw new Error(`Snapshot parsing failed "${e.message}"`)}}function snapshots(e){let t={};for(let[r,n]of Object.entries(e))t[r]=snapshot(n);return t}function number(e){if(void 0===e||null==e)return e;const t=parseFloat(e);return Number.isNaN(t)?null:t}function trade_update(e){if(e)return{raw:()=>e,event:e.event,execution_id:e.execution_id,order:order(e.order),...e.event_id&&{event_id:number(e.event_id)},...e.at&&{at:new Date(e.at)},...e.timestamp&&{timestamp:new Date(e.timestamp)},...e.position_qty&&{position_qty:number(e.position_qty)},...e.price&&{price:number(e.price)},...e.qty&&{qty:number(e.qty)}}}var parse={account:account,activities:activities,clock:clock,nonTradeActivity:nonTradeActivity,order:order,orders:orders,canceled_orders:canceled_orders,position:position,positions:positions,tradeActivity:tradeActivity,pageOfTrades:pageOfTrades,pageOfQuotes:pageOfQuotes,pageOfBars:pageOfBars,snapshot:snapshot,snapshots:snapshots,trade_update:trade_update};const unifetch="undefined"!=typeof fetch?fetch:browser$1;class AlpacaClient{params;limiter=new lib$1({reservoir:200,reservoirRefreshAmount:200,reservoirRefreshInterval:6e4,maxConcurrent:1,minTime:200});constructor(e){if(this.params=e,"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),"access_token"in e.credentials&&("key"in e.credentials||"secret"in e.credentials))throw new Error("can't create client with both default and oauth credentials")}async isAuthenticated(){try{return await this.getAccount(),!0}catch{return!1}}async getAccount(){return parse.account(await this.request({method:"GET",url:`${urls.rest.account}/account`}))}async getOrder(e){return parse.order(await this.request({method:"GET",url:`${urls.rest.account}/orders/${e.order_id||e.client_order_id}`,data:{nested:e.nested}}))}async getOrders(e={}){return parse.orders(await this.request({method:"GET",url:`${urls.rest.account}/orders`,data:{...e,symbols:e.symbols?e.symbols.join(","):void 0}}))}async placeOrder(e){return parse.order(await this.request({method:"POST",url:`${urls.rest.account}/orders`,data:e}))}async replaceOrder(e){return parse.order(await this.request({method:"PATCH",url:`${urls.rest.account}/orders/${e.order_id}`,data:e}))}cancelOrder(e){return this.request({method:"DELETE",url:`${urls.rest.account}/orders/${e.order_id}`,isJSON:!1})}async cancelOrders(){return parse.canceled_orders(await this.request({method:"DELETE",url:`${urls.rest.account}/orders`}))}async getPosition(e){return parse.position(await this.request({method:"GET",url:`${urls.rest.account}/positions/${e.symbol}`}))}async getPositions(){return parse.positions(await this.request({method:"GET",url:`${urls.rest.account}/positions`}))}async closePosition(e){return parse.order(await this.request({method:"DELETE",url:`${urls.rest.account}/positions/${e.symbol}`,data:e}))}async closePositions(e){return parse.orders(await this.request({method:"DELETE",url:`${urls.rest.account}/positions?cancel_orders=${JSON.stringify(e.cancel_orders??!1)}`}))}getAsset(e){return this.request({method:"GET",url:`${urls.rest.account}/assets/${e.asset_id_or_symbol}`})}getAssets(e){return this.request({method:"GET",url:`${urls.rest.account}/assets`,data:e})}getWatchlist(e){return this.request({method:"GET",url:`${urls.rest.account}/watchlists/${e.uuid}`})}getWatchlists(){return this.request({method:"GET",url:`${urls.rest.account}/watchlists`})}createWatchlist(e){return this.request({method:"POST",url:`${urls.rest.account}/watchlists`,data:e})}updateWatchlist(e){return this.request({method:"PUT",url:`${urls.rest.account}/watchlists/${e.uuid}`,data:e})}addToWatchlist(e){return this.request({method:"POST",url:`${urls.rest.account}/watchlists/${e.uuid}`,data:e})}removeFromWatchlist(e){return this.request({method:"DELETE",url:`${urls.rest.account}/watchlists/${e.uuid}/${e.symbol}`})}deleteWatchlist(e){return this.request({method:"DELETE",url:`${urls.rest.account}/watchlists/${e.uuid}`})}getCalendar(e){return this.request({method:"GET",url:`${urls.rest.account}/calendar`,data:e})}getNews(e){return this.request({method:"GET",url:`${urls.rest.beta}/news`,data:e})}async getClock(){return parse.clock(await this.request({method:"GET",url:`${urls.rest.account}/clock`}))}getAccountConfigurations(){return this.request({method:"GET",url:`${urls.rest.account}/account/configurations`})}updateAccountConfigurations(e){return this.request({method:"PATCH",url:`${urls.rest.account}/account/configurations`,data:e})}async getAccountActivities(e){return e.activity_types&&Array.isArray(e.activity_types)&&(e.activity_types=e.activity_types.join(",")),parse.activities(await this.request({method:"GET",url:`${urls.rest.account}/account/activities${e.activity_type?"/".concat(e.activity_type):""}`,data:{...e,activity_type:void 0}}))}getPortfolioHistory(e){return this.request({method:"GET",url:`${urls.rest.account}/account/portfolio/history`,data:e})}async getBars_v1(e){const t={...e,symbols:e.symbols.join(",")};return await this.request({method:"GET",url:`${urls.rest.market_data_v1}/bars/${e.timeframe}`,data:t})}async getLastTrade_v1(e){return await this.request({method:"GET",url:`${urls.rest.market_data_v1}/last/stocks/${e.symbol}`})}async getLastQuote_v1(e){return await this.request({method:"GET",url:`${urls.rest.market_data_v1}/last_quote/stocks/${e.symbol}`})}async getTrades(e){return parse.pageOfTrades(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/trades`,data:{...e,symbol:void 0}}))}async getQuotes(e){return parse.pageOfQuotes(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/quotes`,data:{...e,symbol:void 0}}))}async getBars(e){return parse.pageOfBars(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/bars`,data:{...e,symbol:void 0}}))}async getSnapshot(e){return parse.snapshot(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/snapshot`}))}async getSnapshots(e){return parse.snapshots(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/snapshots?symbols=${e.symbols.join(",")}`}))}async request(e){let t={};"access_token"in this.params.credentials?t.Authorization=`Bearer ${this.params.credentials.access_token}`:(t["APCA-API-KEY-ID"]=this.params.credentials.key,t["APCA-API-SECRET-KEY"]=this.params.credentials.secret),this.params.credentials.paper&&(e.url=e.url.replace("api.","paper-api."));let r="";if(e.data){for(let[t,r]of Object.entries(e.data))r instanceof Date&&(e.data[t]=r.toISOString());["POST","PATCH","PUT"].includes(e.method)||(r="?".concat(lib.stringify(e.data)),e.data=void 0)}const n=()=>unifetch(e.url.concat(r),{method:e.method,headers:t,body:JSON.stringify(e.data)}),i=this.params.rate_limit?()=>this.limiter.schedule(n):n;let s,o={};try{if(s=await i(),null!=e.isJSON&&!e.isJSON)return s.ok;o=await s.json()}catch(e){throw console.error(e),o}if("code"in o||"message"in o)throw o;return o}}var ws=null;"undefined"!=typeof WebSocket?ws=WebSocket:"undefined"!=typeof MozWebSocket?ws=MozWebSocket:void 0!==commonjsGlobal?ws=commonjsGlobal.WebSocket||commonjsGlobal.MozWebSocket:"undefined"!=typeof window?ws=window.WebSocket||window.MozWebSocket:"undefined"!=typeof self&&(ws=self.WebSocket||self.MozWebSocket);var browser=ws,eventemitter3=createCommonjsModule((function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}function i(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function s(e,t,n,s,o){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new i(n,s||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),a.prototype.eventNames=function(){var e,n,i=[];if(0===this._eventsCount)return i;for(n in e=this._events)t.call(e,n)&&i.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},a.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i"undefined"!=typeof Blob&&(e instanceof Blob||"[object Blob]"===Object.prototype.toString.call(e));class AlpacaStream extends eventemitter3{params;host;connection;authenticated;constructor(e){switch(super(),this.params=e,"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),e.type){case"account":this.host=e.credentials.paper?urls.websocket.account.replace("api.","paper-api."):urls.websocket.account;break;case"market_data":this.host=urls.websocket.market_data(this.params.source);break;default:this.host="unknown"}this.connection=new browser(this.host),this.connection.onopen=()=>{let t={};switch(this.params.type){case"account":t={action:"authenticate",data:{key_id:e.credentials.key,secret_key:e.credentials.secret}};break;case"market_data":t={action:"auth",...e.credentials}}this.connection.send(JSON.stringify(t)),this.emit("open",this)},this.connection.onclose=()=>this.emit("close",this),this.connection.onmessage=async e=>{let t=e.data;isBlob(t)?t=await e.data.text():t instanceof ArrayBuffer&&(t=String.fromCharCode(...new Uint8Array(e.data)));let r=JSON.parse(t);("account"==this.params.type?[r]:r).forEach((e=>{this.emit("message",e),("T"in e&&"authenticated"==e.msg||"stream"in e&&"authorization"==e.stream&&"authorized"==e.data.status)&&(this.authenticated=!0,this.emit("authenticated",this)),"stream"in e&&"trade_updates"==e.stream&&this.emit("trade_updates",parse.trade_update(e.data));const t={success:"success",subscription:"subscription",error:"error",t:"trade",q:"quote",b:"bar"};"T"in e&&this.emit(t[e.T.split(".")[0]],e)}))},this.connection.onerror=e=>{this.emit("error",e)}}getConnection(){return this.connection}subscribe(e,t=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"listen",data:{streams:[e]}}));break;case"market_data":let r={action:"subscribe"};r[e]=t,this.send(JSON.stringify(r))}return this}unsubscribe(e,t=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"unlisten",data:{streams:[e]}}));break;case"market_data":let r={action:"unsubscribe"};r[e]=t,this.send(JSON.stringify(r))}return this}send(e){if(!this.authenticated)throw new Error("not authenticated");return"object"==typeof e&&(e=JSON.stringify(e)),this.connection.send(e),this}}var index={AlpacaClient:AlpacaClient,AlpacaStream:AlpacaStream};export{AlpacaClient,AlpacaStream,index as default}; +import require$$0$3 from"util";var load=function(e,t,r={}){var n,i,s;for(n in t)s=t[n],r[n]=null!=(i=e[n])?i:s;return r},overwrite=function(e,t,r={}){var n,i;for(n in e)i=e[n],void 0!==t[n]&&(r[n]=i);return r},parser$8={load:load,overwrite:overwrite},DLList$2;DLList$2=class{constructor(e,t){this.incr=e,this.decr=t,this._first=null,this._last=null,this.length=0}push(e){var t;this.length++,"function"==typeof this.incr&&this.incr(),t={value:e,prev:this._last,next:null},null!=this._last?(this._last.next=t,this._last=t):this._first=this._last=t}shift(){var e;if(null!=this._first)return this.length--,"function"==typeof this.decr&&this.decr(),e=this._first.value,null!=(this._first=this._first.next)?this._first.prev=null:this._last=null,e}first(){if(null!=this._first)return this._first.value}getArray(){var e,t,r;for(e=this._first,r=[];null!=e;)r.push((t=e,e=e.next,t.value));return r}forEachShift(e){var t;for(t=this.shift();null!=t;)e(t),t=this.shift()}debug(){var e,t,r,n,i;for(e=this._first,i=[];null!=e;)i.push((t=e,e=e.next,{value:t.value,prev:null!=(r=t.prev)?r.value:void 0,next:null!=(n=t.next)?n.value:void 0}));return i}};var DLList_1=DLList$2,Events$6;function asyncGeneratorStep$8(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$8(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$8(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$8(s,n,i,o,a,"throw",e)}o(void 0)}))}}Events$6=class{constructor(e){if(this.instance=e,this._events={},null!=this.instance.on||null!=this.instance.once||null!=this.instance.removeAllListeners)throw new Error("An Emitter already exists for this object");this.instance.on=(e,t)=>this._addListener(e,"many",t),this.instance.once=(e,t)=>this._addListener(e,"once",t),this.instance.removeAllListeners=(e=null)=>null!=e?delete this._events[e]:this._events={}}_addListener(e,t,r){var n;return null==(n=this._events)[e]&&(n[e]=[]),this._events[e].push({cb:r,status:t}),this.instance}listenerCount(e){return null!=this._events[e]?this._events[e].length:0}trigger(e,...t){var r=this;return _asyncToGenerator$8((function*(){var n,i;try{if("debug"!==e&&r.trigger("debug",`Event triggered: ${e}`,t),null==r._events[e])return;return r._events[e]=r._events[e].filter((function(e){return"none"!==e.status})),i=r._events[e].map(function(){var e=_asyncToGenerator$8((function*(e){var n,i;if("none"!==e.status){"once"===e.status&&(e.status="none");try{return"function"==typeof(null!=(i="function"==typeof e.cb?e.cb(...t):void 0)?i.then:void 0)?yield i:i}catch(e){return n=e,r.trigger("error",n),null}}}));return function(t){return e.apply(this,arguments)}}()),(yield Promise.all(i)).find((function(e){return null!=e}))}catch(e){return n=e,r.trigger("error",n),null}}))()}};var Events_1=Events$6,DLList$1,Events$5,Queues$1;DLList$1=DLList_1,Events$5=Events_1,Queues$1=class{constructor(e){this.Events=new Events$5(this),this._length=0,this._lists=function(){var t,r,n;for(n=[],t=1,r=e;1<=r?t<=r:t>=r;1<=r?++t:--t)n.push(new DLList$1((()=>this.incr()),(()=>this.decr())));return n}.call(this)}incr(){if(0==this._length++)return this.Events.trigger("leftzero")}decr(){if(0==--this._length)return this.Events.trigger("zero")}push(e){return this._lists[e.options.priority].push(e)}queued(e){return null!=e?this._lists[e].length:this._length}shiftAll(e){return this._lists.forEach((function(t){return t.forEachShift(e)}))}getFirst(e=this._lists){var t,r,n;for(t=0,r=e.length;t0)return n;return[]}shiftLastFrom(e){return this.getFirst(this._lists.slice(e).reverse()).shift()}};var Queues_1=Queues$1,BottleneckError$4;BottleneckError$4=class extends Error{};var BottleneckError_1=BottleneckError$4,BottleneckError$3,DEFAULT_PRIORITY$1,Job$1,NUM_PRIORITIES$1,parser$7;function asyncGeneratorStep$7(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$7(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$7(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$7(s,n,i,o,a,"throw",e)}o(void 0)}))}}NUM_PRIORITIES$1=10,DEFAULT_PRIORITY$1=5,parser$7=parser$8,BottleneckError$3=BottleneckError_1,Job$1=class{constructor(e,t,r,n,i,s,o,a){this.task=e,this.args=t,this.rejectOnDrop=i,this.Events=s,this._states=o,this.Promise=a,this.options=parser$7.load(r,n),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===n.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise(((e,t)=>{this._resolve=e,this._reject=t})),this.retryCount=0}_sanitizePriority(e){var t;return(t=~~e!==e?DEFAULT_PRIORITY$1:e)<0?0:t>NUM_PRIORITIES$1-1?NUM_PRIORITIES$1-1:t}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:e,message:t="This job has been dropped by Bottleneck"}={}){return!!this._states.remove(this.options.id)&&(this.rejectOnDrop&&this._reject(null!=e?e:new BottleneckError$3(t)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0)}_assertStatus(e){var t;if((t=this._states.jobStatus(this.options.id))!==e&&("DONE"!==e||null!==t))throw new BottleneckError$3(`Invalid job status ${t}, expected ${e}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(e,t){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:e,blocked:t})}doRun(){return 0===this.retryCount?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}doExecute(e,t,r,n){var i=this;return _asyncToGenerator$7((function*(){var s,o,a;0===i.retryCount?(i._assertStatus("RUNNING"),i._states.next(i.options.id)):i._assertStatus("EXECUTING"),o={args:i.args,options:i.options,retryCount:i.retryCount},i.Events.trigger("executing",o);try{if(a=yield null!=e?e.schedule(i.options,i.task,...i.args):i.task(...i.args),t())return i.doDone(o),yield n(i.options,o),i._assertStatus("DONE"),i._resolve(a)}catch(e){return s=e,i._onFailure(s,o,t,r,n)}}))()}doExpire(e,t,r){var n,i;return this._states.jobStatus("RUNNING"===this.options.id)&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),i={args:this.args,options:this.options,retryCount:this.retryCount},n=new BottleneckError$3(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(n,i,e,t,r)}_onFailure(e,t,r,n,i){var s=this;return _asyncToGenerator$7((function*(){var o,a;if(r())return null!=(o=yield s.Events.trigger("failed",e,t))?(a=~~o,s.Events.trigger("retry",`Retrying ${s.options.id} after ${a} ms`,t),s.retryCount++,n(a)):(s.doDone(t),yield i(s.options,t),s._assertStatus("DONE"),s._reject(e))}))()}doDone(e){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",e)}};var Job_1=Job$1,BottleneckError$2,LocalDatastore$1,parser$6;function asyncGeneratorStep$6(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$6(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$6(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$6(s,n,i,o,a,"throw",e)}o(void 0)}))}}parser$6=parser$8,BottleneckError$2=BottleneckError_1,LocalDatastore$1=class{constructor(e,t,r){this.instance=e,this.storeOptions=t,this.clientId=this.instance._randomIndex(),parser$6.load(r,r,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var e;return null==this.heartbeat&&(null!=this.storeOptions.reservoirRefreshInterval&&null!=this.storeOptions.reservoirRefreshAmount||null!=this.storeOptions.reservoirIncreaseInterval&&null!=this.storeOptions.reservoirIncreaseAmount)?"function"==typeof(e=this.heartbeat=setInterval((()=>{var e,t,r,n,i;if(n=Date.now(),null!=this.storeOptions.reservoirRefreshInterval&&n>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=n,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),null!=this.storeOptions.reservoirIncreaseInterval&&n>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval){var s=this.storeOptions;if(e=s.reservoirIncreaseAmount,r=s.reservoirIncreaseMaximum,i=s.reservoir,this._lastReservoirIncrease=n,(t=null!=r?Math.min(e,r-i):e)>0)return this.storeOptions.reservoir+=t,this.instance._drainAll(this.computeCapacity())}}),this.heartbeatInterval)).unref?e.unref():void 0:clearInterval(this.heartbeat)}__publish__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),t.instance.Events.trigger("message",e.toString())}))()}__disconnect__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),clearInterval(t.heartbeat),t.Promise.resolve()}))()}yieldLoop(e=0){return new this.Promise((function(t,r){return setTimeout(t,e)}))}computePenalty(){var e;return null!=(e=this.storeOptions.penalty)?e:15*this.storeOptions.minTime||5e3}__updateSettings__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),parser$6.overwrite(e,e,t.storeOptions),t._startHeartbeat(),t.instance._drainAll(t.computeCapacity()),!0}))()}__running__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e._running}))()}__queued__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e.instance.queued()}))()}__done__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e._done}))()}__groupCheck__(e){var t=this;return _asyncToGenerator$6((function*(){return yield t.yieldLoop(),t._nextRequest+t.timeout=e}check(e,t){return this.conditionsCheck(e)&&this._nextRequest-t<=0}__check__(e){var t=this;return _asyncToGenerator$6((function*(){var r;return yield t.yieldLoop(),r=Date.now(),t.check(e,r)}))()}__register__(e,t,r){var n=this;return _asyncToGenerator$6((function*(){var e,r;return yield n.yieldLoop(),e=Date.now(),n.conditionsCheck(t)?(n._running+=t,null!=n.storeOptions.reservoir&&(n.storeOptions.reservoir-=t),r=Math.max(n._nextRequest-e,0),n._nextRequest=e+r+n.storeOptions.minTime,{success:!0,wait:r,reservoir:n.storeOptions.reservoir}):{success:!1}}))()}strategyIsBlock(){return 3===this.storeOptions.strategy}__submit__(e,t){var r=this;return _asyncToGenerator$6((function*(){var n,i,s;if(yield r.yieldLoop(),null!=r.storeOptions.maxConcurrent&&t>r.storeOptions.maxConcurrent)throw new BottleneckError$2(`Impossible to add a job having a weight of ${t} to a limiter having a maxConcurrent setting of ${r.storeOptions.maxConcurrent}`);return i=Date.now(),s=null!=r.storeOptions.highWater&&e===r.storeOptions.highWater&&!r.check(t,i),(n=r.strategyIsBlock()&&(s||r.isBlocked(i)))&&(r._unblockTime=i+r.computePenalty(),r._nextRequest=r._unblockTime+r.storeOptions.minTime,r.instance._dropAllQueued()),{reachedHWM:s,blocked:n,strategy:r.storeOptions.strategy}}))()}__free__(e,t){var r=this;return _asyncToGenerator$6((function*(){return yield r.yieldLoop(),r._running-=t,r._done+=t,r.instance._drainAll(r.computeCapacity()),{running:r._running}}))()}};var LocalDatastore_1=LocalDatastore$1,commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getAugmentedNamespace(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})})),t}function createCommonjsModule(e){var t={exports:{}};return e(t,t.exports),t.exports}var require$$0$2={"blacklist_client.lua":"local blacklist = ARGV[num_static_argv + 1]\n\nif redis.call('zscore', client_last_seen_key, blacklist) then\n redis.call('zadd', client_last_seen_key, 0, blacklist)\nend\n\n\nreturn {}\n","check.lua":"local weight = tonumber(ARGV[num_static_argv + 1])\n\nlocal capacity = process_tick(now, false)['capacity']\nlocal nextRequest = tonumber(redis.call('hget', settings_key, 'nextRequest'))\n\nreturn conditions_check(capacity, weight) and nextRequest - now <= 0\n","conditions_check.lua":"local conditions_check = function (capacity, weight)\n return capacity == nil or weight <= capacity\nend\n","current_reservoir.lua":"return process_tick(now, false)['reservoir']\n","done.lua":"process_tick(now, false)\n\nreturn tonumber(redis.call('hget', settings_key, 'done'))\n","free.lua":"local index = ARGV[num_static_argv + 1]\n\nredis.call('zadd', job_expirations_key, 0, index)\n\nreturn process_tick(now, false)['running']\n","get_time.lua":"redis.replicate_commands()\n\nlocal get_time = function ()\n local time = redis.call('time')\n\n return tonumber(time[1]..string.sub(time[2], 1, 3))\nend\n","group_check.lua":"return not (redis.call('exists', settings_key) == 1)\n","heartbeat.lua":"process_tick(now, true)\n","increment_reservoir.lua":"local incr = tonumber(ARGV[num_static_argv + 1])\n\nredis.call('hincrby', settings_key, 'reservoir', incr)\n\nlocal reservoir = process_tick(now, true)['reservoir']\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn reservoir\n","init.lua":"local clear = tonumber(ARGV[num_static_argv + 1])\nlocal limiter_version = ARGV[num_static_argv + 2]\nlocal num_local_argv = num_static_argv + 2\n\nif clear == 1 then\n redis.call('del', unpack(KEYS))\nend\n\nif redis.call('exists', settings_key) == 0 then\n -- Create\n local args = {'hmset', settings_key}\n\n for i = num_local_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\n end\n\n redis.call(unpack(args))\n redis.call('hmset', settings_key,\n 'nextRequest', now,\n 'lastReservoirRefresh', now,\n 'lastReservoirIncrease', now,\n 'running', 0,\n 'done', 0,\n 'unblockTime', 0,\n 'capacityPriorityCounter', 0\n )\n\nelse\n -- Apply migrations\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'version'\n )\n local id = settings[1]\n local current_version = settings[2]\n\n if current_version ~= limiter_version then\n local version_digits = {}\n for k, v in string.gmatch(current_version, \"([^.]+)\") do\n table.insert(version_digits, tonumber(k))\n end\n\n -- 2.10.0\n if version_digits[2] < 10 then\n redis.call('hsetnx', settings_key, 'reservoirRefreshInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirRefreshAmount', '')\n redis.call('hsetnx', settings_key, 'lastReservoirRefresh', '')\n redis.call('hsetnx', settings_key, 'done', 0)\n redis.call('hset', settings_key, 'version', '2.10.0')\n end\n\n -- 2.11.1\n if version_digits[2] < 11 or (version_digits[2] == 11 and version_digits[3] < 1) then\n if redis.call('hstrlen', settings_key, 'lastReservoirRefresh') == 0 then\n redis.call('hmset', settings_key,\n 'lastReservoirRefresh', now,\n 'version', '2.11.1'\n )\n end\n end\n\n -- 2.14.0\n if version_digits[2] < 14 then\n local old_running_key = 'b_'..id..'_running'\n local old_executing_key = 'b_'..id..'_executing'\n\n if redis.call('exists', old_running_key) == 1 then\n redis.call('rename', old_running_key, job_weights_key)\n end\n if redis.call('exists', old_executing_key) == 1 then\n redis.call('rename', old_executing_key, job_expirations_key)\n end\n redis.call('hset', settings_key, 'version', '2.14.0')\n end\n\n -- 2.15.2\n if version_digits[2] < 15 or (version_digits[2] == 15 and version_digits[3] < 2) then\n redis.call('hsetnx', settings_key, 'capacityPriorityCounter', 0)\n redis.call('hset', settings_key, 'version', '2.15.2')\n end\n\n -- 2.17.0\n if version_digits[2] < 17 then\n redis.call('hsetnx', settings_key, 'clientTimeout', 10000)\n redis.call('hset', settings_key, 'version', '2.17.0')\n end\n\n -- 2.18.0\n if version_digits[2] < 18 then\n redis.call('hsetnx', settings_key, 'reservoirIncreaseInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseAmount', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseMaximum', '')\n redis.call('hsetnx', settings_key, 'lastReservoirIncrease', now)\n redis.call('hset', settings_key, 'version', '2.18.0')\n end\n\n end\n\n process_tick(now, false)\nend\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n","process_tick.lua":"local process_tick = function (now, always_publish)\n\n local compute_capacity = function (maxConcurrent, running, reservoir)\n if maxConcurrent ~= nil and reservoir ~= nil then\n return math.min((maxConcurrent - running), reservoir)\n elseif maxConcurrent ~= nil then\n return maxConcurrent - running\n elseif reservoir ~= nil then\n return reservoir\n else\n return nil\n end\n end\n\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'running',\n 'reservoir',\n 'reservoirRefreshInterval',\n 'reservoirRefreshAmount',\n 'lastReservoirRefresh',\n 'reservoirIncreaseInterval',\n 'reservoirIncreaseAmount',\n 'reservoirIncreaseMaximum',\n 'lastReservoirIncrease',\n 'capacityPriorityCounter',\n 'clientTimeout'\n )\n local id = settings[1]\n local maxConcurrent = tonumber(settings[2])\n local running = tonumber(settings[3])\n local reservoir = tonumber(settings[4])\n local reservoirRefreshInterval = tonumber(settings[5])\n local reservoirRefreshAmount = tonumber(settings[6])\n local lastReservoirRefresh = tonumber(settings[7])\n local reservoirIncreaseInterval = tonumber(settings[8])\n local reservoirIncreaseAmount = tonumber(settings[9])\n local reservoirIncreaseMaximum = tonumber(settings[10])\n local lastReservoirIncrease = tonumber(settings[11])\n local capacityPriorityCounter = tonumber(settings[12])\n local clientTimeout = tonumber(settings[13])\n\n local initial_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n --\n -- Process 'running' changes\n --\n local expired = redis.call('zrangebyscore', job_expirations_key, '-inf', '('..now)\n\n if #expired > 0 then\n redis.call('zremrangebyscore', job_expirations_key, '-inf', '('..now)\n\n local flush_batch = function (batch, acc)\n local weights = redis.call('hmget', job_weights_key, unpack(batch))\n redis.call('hdel', job_weights_key, unpack(batch))\n local clients = redis.call('hmget', job_clients_key, unpack(batch))\n redis.call('hdel', job_clients_key, unpack(batch))\n\n -- Calculate sum of removed weights\n for i = 1, #weights do\n acc['total'] = acc['total'] + (tonumber(weights[i]) or 0)\n end\n\n -- Calculate sum of removed weights by client\n local client_weights = {}\n for i = 1, #clients do\n local removed = tonumber(weights[i]) or 0\n if removed > 0 then\n acc['client_weights'][clients[i]] = (acc['client_weights'][clients[i]] or 0) + removed\n end\n end\n end\n\n local acc = {\n ['total'] = 0,\n ['client_weights'] = {}\n }\n local batch_size = 1000\n\n -- Compute changes to Zsets and apply changes to Hashes\n for i = 1, #expired, batch_size do\n local batch = {}\n for j = i, math.min(i + batch_size - 1, #expired) do\n table.insert(batch, expired[j])\n end\n\n flush_batch(batch, acc)\n end\n\n -- Apply changes to Zsets\n if acc['total'] > 0 then\n redis.call('hincrby', settings_key, 'done', acc['total'])\n running = tonumber(redis.call('hincrby', settings_key, 'running', -acc['total']))\n end\n\n for client, weight in pairs(acc['client_weights']) do\n redis.call('zincrby', client_running_key, -weight, client)\n end\n end\n\n --\n -- Process 'reservoir' changes\n --\n local reservoirRefreshActive = reservoirRefreshInterval ~= nil and reservoirRefreshAmount ~= nil\n if reservoirRefreshActive and now >= lastReservoirRefresh + reservoirRefreshInterval then\n reservoir = reservoirRefreshAmount\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirRefresh', now\n )\n end\n\n local reservoirIncreaseActive = reservoirIncreaseInterval ~= nil and reservoirIncreaseAmount ~= nil\n if reservoirIncreaseActive and now >= lastReservoirIncrease + reservoirIncreaseInterval then\n local num_intervals = math.floor((now - lastReservoirIncrease) / reservoirIncreaseInterval)\n local incr = reservoirIncreaseAmount * num_intervals\n if reservoirIncreaseMaximum ~= nil then\n incr = math.min(incr, reservoirIncreaseMaximum - (reservoir or 0))\n end\n if incr > 0 then\n reservoir = (reservoir or 0) + incr\n end\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirIncrease', lastReservoirIncrease + (num_intervals * reservoirIncreaseInterval)\n )\n end\n\n --\n -- Clear unresponsive clients\n --\n local unresponsive = redis.call('zrangebyscore', client_last_seen_key, '-inf', (now - clientTimeout))\n local unresponsive_lookup = {}\n local terminated_clients = {}\n for i = 1, #unresponsive do\n unresponsive_lookup[unresponsive[i]] = true\n if tonumber(redis.call('zscore', client_running_key, unresponsive[i])) == 0 then\n table.insert(terminated_clients, unresponsive[i])\n end\n end\n if #terminated_clients > 0 then\n redis.call('zrem', client_running_key, unpack(terminated_clients))\n redis.call('hdel', client_num_queued_key, unpack(terminated_clients))\n redis.call('zrem', client_last_registered_key, unpack(terminated_clients))\n redis.call('zrem', client_last_seen_key, unpack(terminated_clients))\n end\n\n --\n -- Broadcast capacity changes\n --\n local final_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n if always_publish or (initial_capacity ~= nil and final_capacity == nil) then\n -- always_publish or was not unlimited, now unlimited\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n\n elseif initial_capacity ~= nil and final_capacity ~= nil and final_capacity > initial_capacity then\n -- capacity was increased\n -- send the capacity message to the limiter having the lowest number of running jobs\n -- the tiebreaker is the limiter having not registered a job in the longest time\n\n local lowest_concurrency_value = nil\n local lowest_concurrency_clients = {}\n local lowest_concurrency_last_registered = {}\n local client_concurrencies = redis.call('zrange', client_running_key, 0, -1, 'withscores')\n\n for i = 1, #client_concurrencies, 2 do\n local client = client_concurrencies[i]\n local concurrency = tonumber(client_concurrencies[i+1])\n\n if (\n lowest_concurrency_value == nil or lowest_concurrency_value == concurrency\n ) and (\n not unresponsive_lookup[client]\n ) and (\n tonumber(redis.call('hget', client_num_queued_key, client)) > 0\n ) then\n lowest_concurrency_value = concurrency\n table.insert(lowest_concurrency_clients, client)\n local last_registered = tonumber(redis.call('zscore', client_last_registered_key, client))\n table.insert(lowest_concurrency_last_registered, last_registered)\n end\n end\n\n if #lowest_concurrency_clients > 0 then\n local position = 1\n local earliest = lowest_concurrency_last_registered[1]\n\n for i,v in ipairs(lowest_concurrency_last_registered) do\n if v < earliest then\n position = i\n earliest = v\n end\n end\n\n local next_client = lowest_concurrency_clients[position]\n redis.call('publish', 'b_'..id,\n 'capacity-priority:'..(final_capacity or '')..\n ':'..next_client..\n ':'..capacityPriorityCounter\n )\n redis.call('hincrby', settings_key, 'capacityPriorityCounter', '1')\n else\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n end\n end\n\n return {\n ['capacity'] = final_capacity,\n ['running'] = running,\n ['reservoir'] = reservoir\n }\nend\n","queued.lua":"local clientTimeout = tonumber(redis.call('hget', settings_key, 'clientTimeout'))\nlocal valid_clients = redis.call('zrangebyscore', client_last_seen_key, (now - clientTimeout), 'inf')\nlocal client_queued = redis.call('hmget', client_num_queued_key, unpack(valid_clients))\n\nlocal sum = 0\nfor i = 1, #client_queued do\n sum = sum + tonumber(client_queued[i])\nend\n\nreturn sum\n","refresh_expiration.lua":"local refresh_expiration = function (now, nextRequest, groupTimeout)\n\n if groupTimeout ~= nil then\n local ttl = (nextRequest + groupTimeout) - now\n\n for i = 1, #KEYS do\n redis.call('pexpire', KEYS[i], ttl)\n end\n end\n\nend\n","refs.lua":"local settings_key = KEYS[1]\nlocal job_weights_key = KEYS[2]\nlocal job_expirations_key = KEYS[3]\nlocal job_clients_key = KEYS[4]\nlocal client_running_key = KEYS[5]\nlocal client_num_queued_key = KEYS[6]\nlocal client_last_registered_key = KEYS[7]\nlocal client_last_seen_key = KEYS[8]\n\nlocal now = tonumber(ARGV[1])\nlocal client = ARGV[2]\n\nlocal num_static_argv = 2\n","register.lua":"local index = ARGV[num_static_argv + 1]\nlocal weight = tonumber(ARGV[num_static_argv + 2])\nlocal expiration = tonumber(ARGV[num_static_argv + 3])\n\nlocal state = process_tick(now, false)\nlocal capacity = state['capacity']\nlocal reservoir = state['reservoir']\n\nlocal settings = redis.call('hmget', settings_key,\n 'nextRequest',\n 'minTime',\n 'groupTimeout'\n)\nlocal nextRequest = tonumber(settings[1])\nlocal minTime = tonumber(settings[2])\nlocal groupTimeout = tonumber(settings[3])\n\nif conditions_check(capacity, weight) then\n\n redis.call('hincrby', settings_key, 'running', weight)\n redis.call('hset', job_weights_key, index, weight)\n if expiration ~= nil then\n redis.call('zadd', job_expirations_key, now + expiration, index)\n end\n redis.call('hset', job_clients_key, index, client)\n redis.call('zincrby', client_running_key, weight, client)\n redis.call('hincrby', client_num_queued_key, client, -1)\n redis.call('zadd', client_last_registered_key, now, client)\n\n local wait = math.max(nextRequest - now, 0)\n local newNextRequest = now + wait + minTime\n\n if reservoir == nil then\n redis.call('hset', settings_key,\n 'nextRequest', newNextRequest\n )\n else\n reservoir = reservoir - weight\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'nextRequest', newNextRequest\n )\n end\n\n refresh_expiration(now, newNextRequest, groupTimeout)\n\n return {true, wait, reservoir}\n\nelse\n return {false}\nend\n","register_client.lua":"local queued = tonumber(ARGV[num_static_argv + 1])\n\n-- Could have been re-registered concurrently\nif not redis.call('zscore', client_last_seen_key, client) then\n redis.call('zadd', client_running_key, 0, client)\n redis.call('hset', client_num_queued_key, client, queued)\n redis.call('zadd', client_last_registered_key, 0, client)\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n\nreturn {}\n","running.lua":"return process_tick(now, false)['running']\n","submit.lua":"local queueLength = tonumber(ARGV[num_static_argv + 1])\nlocal weight = tonumber(ARGV[num_static_argv + 2])\n\nlocal capacity = process_tick(now, false)['capacity']\n\nlocal settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'highWater',\n 'nextRequest',\n 'strategy',\n 'unblockTime',\n 'penalty',\n 'minTime',\n 'groupTimeout'\n)\nlocal id = settings[1]\nlocal maxConcurrent = tonumber(settings[2])\nlocal highWater = tonumber(settings[3])\nlocal nextRequest = tonumber(settings[4])\nlocal strategy = tonumber(settings[5])\nlocal unblockTime = tonumber(settings[6])\nlocal penalty = tonumber(settings[7])\nlocal minTime = tonumber(settings[8])\nlocal groupTimeout = tonumber(settings[9])\n\nif maxConcurrent ~= nil and weight > maxConcurrent then\n return redis.error_reply('OVERWEIGHT:'..weight..':'..maxConcurrent)\nend\n\nlocal reachedHWM = (highWater ~= nil and queueLength == highWater\n and not (\n conditions_check(capacity, weight)\n and nextRequest - now <= 0\n )\n)\n\nlocal blocked = strategy == 3 and (reachedHWM or unblockTime >= now)\n\nif blocked then\n local computedPenalty = penalty\n if computedPenalty == nil then\n if minTime == 0 then\n computedPenalty = 5000\n else\n computedPenalty = 15 * minTime\n end\n end\n\n local newNextRequest = now + computedPenalty + minTime\n\n redis.call('hmset', settings_key,\n 'unblockTime', now + computedPenalty,\n 'nextRequest', newNextRequest\n )\n\n local clients_queued_reset = redis.call('hkeys', client_num_queued_key)\n local queued_reset = {}\n for i = 1, #clients_queued_reset do\n table.insert(queued_reset, clients_queued_reset[i])\n table.insert(queued_reset, 0)\n end\n redis.call('hmset', client_num_queued_key, unpack(queued_reset))\n\n redis.call('publish', 'b_'..id, 'blocked:')\n\n refresh_expiration(now, newNextRequest, groupTimeout)\nend\n\nif not blocked and not reachedHWM then\n redis.call('hincrby', client_num_queued_key, client, 1)\nend\n\nreturn {reachedHWM, blocked, strategy}\n","update_settings.lua":"local args = {'hmset', settings_key}\n\nfor i = num_static_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\nend\n\nredis.call(unpack(args))\n\nprocess_tick(now, true)\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n","validate_client.lua":"if not redis.call('zscore', client_last_seen_key, client) then\n return redis.error_reply('UNKNOWN_CLIENT')\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n","validate_keys.lua":"if not (redis.call('exists', settings_key) == 1) then\n return redis.error_reply('SETTINGS_KEY_NOT_FOUND')\nend\n"},Scripts$3=createCommonjsModule((function(e,t){var r,n,i;r={refs:(n=require$$0$2)["refs.lua"],validate_keys:n["validate_keys.lua"],validate_client:n["validate_client.lua"],refresh_expiration:n["refresh_expiration.lua"],process_tick:n["process_tick.lua"],conditions_check:n["conditions_check.lua"],get_time:n["get_time.lua"]},t.allKeys=function(e){return[`b_${e}_settings`,`b_${e}_job_weights`,`b_${e}_job_expirations`,`b_${e}_job_clients`,`b_${e}_client_running`,`b_${e}_client_num_queued`,`b_${e}_client_last_registered`,`b_${e}_client_last_seen`]},i={init:{keys:t.allKeys,headers:["process_tick"],refresh_expiration:!0,code:n["init.lua"]},group_check:{keys:t.allKeys,headers:[],refresh_expiration:!1,code:n["group_check.lua"]},register_client:{keys:t.allKeys,headers:["validate_keys"],refresh_expiration:!1,code:n["register_client.lua"]},blacklist_client:{keys:t.allKeys,headers:["validate_keys","validate_client"],refresh_expiration:!1,code:n["blacklist_client.lua"]},heartbeat:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["heartbeat.lua"]},update_settings:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:n["update_settings.lua"]},running:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["running.lua"]},queued:{keys:t.allKeys,headers:["validate_keys","validate_client"],refresh_expiration:!1,code:n["queued.lua"]},done:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["done.lua"]},check:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!1,code:n["check.lua"]},submit:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!0,code:n["submit.lua"]},register:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!0,code:n["register.lua"]},free:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:n["free.lua"]},current_reservoir:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:n["current_reservoir.lua"]},increment_reservoir:{keys:t.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:n["increment_reservoir.lua"]}},t.names=Object.keys(i),t.keys=function(e,t){return i[e].keys(t)},t.payload=function(e){var t;return t=i[e],Array.prototype.concat(r.refs,t.headers.map((function(e){return r[e]})),t.refresh_expiration?r.refresh_expiration:"",t.code).join("\n")}})),Events$4,RedisConnection$2,Scripts$2,parser$5;function asyncGeneratorStep$5(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$5(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$5(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$5(s,n,i,o,a,"throw",e)}o(void 0)}))}}parser$5=parser$8,Events$4=Events_1,Scripts$2=Scripts$3,RedisConnection$2=function(){class RedisConnection{constructor(options={}){parser$5.load(options,this.defaults,this),null==this.Redis&&(this.Redis=eval("require")("redis")),null==this.Events&&(this.Events=new Events$4(this)),this.terminated=!1,null==this.client&&(this.client=this.Redis.createClient(this.clientOptions)),this.subscriber=this.client.duplicate(),this.limiters={},this.shas={},this.ready=this.Promise.all([this._setup(this.client,!1),this._setup(this.subscriber,!0)]).then((()=>this._loadScripts())).then((()=>({client:this.client,subscriber:this.subscriber})))}_setup(e,t){return e.setMaxListeners(0),new this.Promise(((r,n)=>(e.on("error",(e=>this.Events.trigger("error",e))),t&&e.on("message",((e,t)=>{var r;return null!=(r=this.limiters[e])?r._store.onMessage(e,t):void 0})),e.ready?r():e.once("ready",r))))}_loadScript(e){return new this.Promise(((t,r)=>{var n;return n=Scripts$2.payload(e),this.client.multi([["script","load",n]]).exec(((n,i)=>null!=n?r(n):(this.shas[e]=i[0],t(i[0]))))}))}_loadScripts(){return this.Promise.all(Scripts$2.names.map((e=>this._loadScript(e))))}__runCommand__(e){var t=this;return _asyncToGenerator$5((function*(){return yield t.ready,new t.Promise(((r,n)=>t.client.multi([e]).exec_atomic((function(e,t){return null!=e?n(e):r(t[0])}))))}))()}__addLimiter__(e){return this.Promise.all([e.channel(),e.channel_client()].map((t=>new this.Promise(((r,n)=>{var i;return i=n=>{if(n===t)return this.subscriber.removeListener("subscribe",i),this.limiters[t]=e,r()},this.subscriber.on("subscribe",i),this.subscriber.subscribe(t)})))))}__removeLimiter__(e){var t=this;return this.Promise.all([e.channel(),e.channel_client()].map(function(){var e=_asyncToGenerator$5((function*(e){return t.terminated||(yield new t.Promise(((r,n)=>t.subscriber.unsubscribe(e,(function(t,i){return null!=t?n(t):i===e?r():void 0}))))),delete t.limiters[e]}));return function(t){return e.apply(this,arguments)}}()))}__scriptArgs__(e,t,r,n){var i;return i=Scripts$2.keys(e,t),[this.shas[e],i.length].concat(i,r,n)}__scriptFn__(e){return this.client.evalsha.bind(this.client)}disconnect(e=!0){var t,r,n,i;for(t=0,n=(i=Object.keys(this.limiters)).length;t(this._loadScripts(),{client:this.client,subscriber:this.subscriber})))}_setup(e,t){return e.setMaxListeners(0),new this.Promise(((r,n)=>(e.on("error",(e=>this.Events.trigger("error",e))),t&&e.on("message",((e,t)=>{var r;return null!=(r=this.limiters[e])?r._store.onMessage(e,t):void 0})),"ready"===e.status?r():e.once("ready",r))))}_loadScripts(){return Scripts$1.names.forEach((e=>this.client.defineCommand(e,{lua:Scripts$1.payload(e)})))}__runCommand__(e){var t=this;return _asyncToGenerator$4((function*(){yield t.ready;var r=_slicedToArray$3(yield t.client.pipeline([e]).exec(),1);return _slicedToArray$3(r[0],2)[1]}))()}__addLimiter__(e){return this.Promise.all([e.channel(),e.channel_client()].map((t=>new this.Promise(((r,n)=>this.subscriber.subscribe(t,(()=>(this.limiters[t]=e,r()))))))))}__removeLimiter__(e){var t=this;return[e.channel(),e.channel_client()].forEach(function(){var e=_asyncToGenerator$4((function*(e){return t.terminated||(yield t.subscriber.unsubscribe(e)),delete t.limiters[e]}));return function(t){return e.apply(this,arguments)}}())}__scriptArgs__(e,t,r,n){var i;return[(i=Scripts$1.keys(e,t)).length].concat(i,r,n)}__scriptFn__(e){return this.client[e].bind(this.client)}disconnect(e=!0){var t,r,n,i;for(t=0,n=(i=Object.keys(this.limiters)).length;t(this.clients=e,this.runScript("init",this.prepareInitSettings(this.clearDatastore))))).then((()=>this.connection.__addLimiter__(this.instance))).then((()=>this.runScript("register_client",[this.instance.queued()]))).then((()=>{var e;return"function"==typeof(e=this.heartbeat=setInterval((()=>this.runScript("heartbeat",[]).catch((e=>this.instance.Events.trigger("error",e)))),this.heartbeatInterval)).unref&&e.unref(),this.clients}))}__publish__(e){var t=this;return _asyncToGenerator$3((function*(){return(yield t.ready).client.publish(t.instance.channel(),`message:${e.toString()}`)}))()}onMessage(e,t){var r=this;return _asyncToGenerator$3((function*(){var e,n,i,s,o,a,c,l,u,p;try{c=t.indexOf(":");var d=[t.slice(0,c),t.slice(c+1)];if(i=d[1],"capacity"===(p=d[0]))return yield r.instance._drainAll(i.length>0?~~i:void 0);if("capacity-priority"===p){var h=_slicedToArray$2(i.split(":"),3);return u=h[0],l=h[1],n=h[2],e=u.length>0?~~u:void 0,l===r.clientId?(s=yield r.instance._drainAll(e),a=null!=e?e-(s||0):"",yield r.clients.client.publish(r.instance.channel(),`capacity-priority:${a}::${n}`)):""===l?(clearTimeout(r.capacityPriorityCounters[n]),delete r.capacityPriorityCounters[n],r.instance._drainAll(e)):r.capacityPriorityCounters[n]=setTimeout(_asyncToGenerator$3((function*(){var t;try{return delete r.capacityPriorityCounters[n],yield r.runScript("blacklist_client",[l]),yield r.instance._drainAll(e)}catch(e){return t=e,r.instance.Events.trigger("error",t)}})),1e3)}if("message"===p)return r.instance.Events.trigger("message",i);if("blocked"===p)return yield r.instance._dropAllQueued()}catch(e){return o=e,r.instance.Events.trigger("error",o)}}))()}__disconnect__(e){return clearInterval(this.heartbeat),this.sharedConnection?this.connection.__removeLimiter__(this.instance):this.connection.disconnect(e)}runScript(e,t){var r=this;return _asyncToGenerator$3((function*(){return"init"!==e&&"register_client"!==e&&(yield r.ready),new r.Promise(((n,i)=>{var s,o;return s=[Date.now(),r.clientId].concat(t),r.instance.Events.trigger("debug",`Calling Redis script: ${e}.lua`,s),o=r.connection.__scriptArgs__(e,r.originalId,s,(function(e,t){return null!=e?i(e):n(t)})),r.connection.__scriptFn__(e)(...o)})).catch((n=>"SETTINGS_KEY_NOT_FOUND"===n.message?"heartbeat"===e?r.Promise.resolve():r.runScript("init",r.prepareInitSettings(!1)).then((()=>r.runScript(e,t))):"UNKNOWN_CLIENT"===n.message?r.runScript("register_client",[r.instance.queued()]).then((()=>r.runScript(e,t))):r.Promise.reject(n)))}))()}prepareArray(e){var t,r,n,i;for(n=[],t=0,r=e.length;t(e[this.status[r]]=t,e)),{})}};var States_1=States$1,DLList,Sync$1;function asyncGeneratorStep$2(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$2(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$2(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$2(s,n,i,o,a,"throw",e)}o(void 0)}))}}DLList=DLList_1,Sync$1=class{constructor(e,t){this.schedule=this.schedule.bind(this),this.name=e,this.Promise=t,this._running=0,this._queue=new DLList}isEmpty(){return 0===this._queue.length}_tryToRun(){var e=this;return _asyncToGenerator$2((function*(){var t,r,n,i,s,o,a;if(e._running<1&&e._queue.length>0){e._running++;var c=e._queue.shift();return a=c.task,t=c.args,s=c.resolve,i=c.reject,r=yield _asyncToGenerator$2((function*(){try{return o=yield a(...t),function(){return s(o)}}catch(e){return n=e,function(){return i(n)}}}))(),e._running--,e._tryToRun(),r()}}))()}schedule(e,...t){var r,n,i;return i=n=null,r=new this.Promise((function(e,t){return i=e,n=t})),this._queue.push({task:e,args:t,resolve:i,reject:n}),this._tryToRun(),r}};var Sync_1=Sync$1,version="2.19.5",require$$8={version:version},require$$0$1=Bottleneck_1,Events$2,Group,IORedisConnection,RedisConnection,Scripts,parser$2;function _slicedToArray$1(e,t){return _arrayWithHoles$1(e)||_iterableToArrayLimit$1(e,t)||_nonIterableRest$1()}function _nonIterableRest$1(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArrayLimit$1(e,t){var r=[],n=!0,i=!1,s=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==a.return||a.return()}finally{if(i)throw s}}return r}function _arrayWithHoles$1(e){if(Array.isArray(e))return e}function asyncGeneratorStep$1(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator$1(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep$1(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep$1(s,n,i,o,a,"throw",e)}o(void 0)}))}}parser$2=parser$8,Events$2=Events_1,RedisConnection=RedisConnection_1,IORedisConnection=IORedisConnection_1,Scripts=Scripts$3,Group=function(){class e{constructor(e={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=e,parser$2.load(this.limiterOptions,this.defaults,this),this.Events=new Events$2(this),this.instances={},this.Bottleneck=require$$0$1,this._startAutoCleanup(),this.sharedConnection=null!=this.connection,null==this.connection&&("redis"===this.limiterOptions.datastore?this.connection=new RedisConnection(Object.assign({},this.limiterOptions,{Events:this.Events})):"ioredis"===this.limiterOptions.datastore&&(this.connection=new IORedisConnection(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(e=""){var t;return null!=(t=this.instances[e])?t:(()=>{var t;return t=this.instances[e]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${e}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",t,e),t})()}deleteKey(e=""){var t=this;return _asyncToGenerator$1((function*(){var r,n;return n=t.instances[e],t.connection&&(r=yield t.connection.__runCommand__(["del",...Scripts.allKeys(`${t.id}-${e}`)])),null!=n&&(delete t.instances[e],yield n.disconnect()),null!=n||r>0}))()}limiters(){var e,t,r,n;for(e in r=[],t=this.instances)n=t[e],r.push({key:e,limiter:n});return r}keys(){return Object.keys(this.instances)}clusterKeys(){var e=this;return _asyncToGenerator$1((function*(){var t,r,n,i,s,o,a,c;if(null==e.connection)return e.Promise.resolve(e.keys());for(o=[],t=null,c=`b_${e.id}-`.length,r="_settings".length;0!==t;){var l=_slicedToArray$1(yield e.connection.__runCommand__(["scan",null!=t?t:0,"match",`b_${e.id}-*_settings`,"count",1e4]),2);for(t=~~l[0],i=0,a=(n=l[1]).length;ithis._resolve=e))}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(e){var t;return this._arr.push(e),t=this._promise,this._arr.length===this.maxSize?this._flush():null!=this.maxTime&&1===this._arr.length&&(this._timeout=setTimeout((()=>this._flush()),this.maxTime)),t}}return e.prototype.defaults={maxTime:null,maxSize:null,Promise:Promise},e}.call(void 0);var Batcher_1=Batcher;function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _iterableToArrayLimit(e,t){var r=[],n=!0,i=!1,s=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==a.return||a.return()}finally{if(i)throw s}}return r}function _toArray(e){return _arrayWithHoles(e)||_iterableToArray(e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithHoles(e){if(Array.isArray(e))return e}function asyncGeneratorStep(e,t,r,n,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var s=e.apply(t,r);function o(e){asyncGeneratorStep(s,n,i,o,a,"next",e)}function a(e){asyncGeneratorStep(s,n,i,o,a,"throw",e)}o(void 0)}))}}var Bottleneck,DEFAULT_PRIORITY,Events,Job,LocalDatastore,NUM_PRIORITIES,Queues,RedisDatastore,States,Sync,parser,splice=[].splice;NUM_PRIORITIES=10,DEFAULT_PRIORITY=5,parser=parser$8,Queues=Queues_1,Job=Job_1,LocalDatastore=LocalDatastore_1,RedisDatastore=RedisDatastore_1,Events=Events_1,States=States_1,Sync=Sync_1,Bottleneck=function(){class e{constructor(t={},...r){var n,i;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(t,r),parser.load(t,this.instanceDefaults,this),this._queues=new Queues(NUM_PRIORITIES),this._scheduled={},this._states=new States(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new Events(this),this._submitLock=new Sync("submit",this.Promise),this._registerLock=new Sync("register",this.Promise),i=parser.load(t,this.storeDefaults,{}),this._store=function(){if("redis"===this.datastore||"ioredis"===this.datastore||null!=this.connection)return n=parser.load(t,this.redisStoreDefaults,{}),new RedisDatastore(this,i,n);if("local"===this.datastore)return n=parser.load(t,this.localStoreDefaults,{}),new LocalDatastore(this,i,n);throw new e.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",(()=>{var e;return null!=(e=this._store.heartbeat)&&"function"==typeof e.ref?e.ref():void 0})),this._queues.on("zero",(()=>{var e;return null!=(e=this._store.heartbeat)&&"function"==typeof e.unref?e.unref():void 0}))}_validateOptions(t,r){if(null==t||"object"!=typeof t||0!==r.length)throw new e.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(e){return this._store.__publish__(e)}disconnect(e=!0){return this._store.__disconnect__(e)}chain(e){return this._limiter=e,this}queued(e){return this._queues.queued(e)}clusterQueued(){return this._store.__queued__()}empty(){return 0===this.queued()&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(e){return this._states.jobStatus(e)}jobs(e){return this._states.statusJobs(e)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(e=1){return this._store.__check__(e)}_clearGlobalState(e){return null!=this._scheduled[e]&&(clearTimeout(this._scheduled[e].expiration),delete this._scheduled[e],!0)}_free(e,t,r,n){var i=this;return _asyncToGenerator((function*(){var t,s;try{if(s=(yield i._store.__free__(e,r.weight)).running,i.Events.trigger("debug",`Freed ${r.id}`,n),0===s&&i.empty())return i.Events.trigger("idle")}catch(e){return t=e,i.Events.trigger("error",t)}}))()}_run(e,t,r){var n,i,s;return t.doRun(),n=this._clearGlobalState.bind(this,e),s=this._run.bind(this,e,t),i=this._free.bind(this,e,t),this._scheduled[e]={timeout:setTimeout((()=>t.doExecute(this._limiter,n,s,i)),r),expiration:null!=t.options.expiration?setTimeout((function(){return t.doExpire(n,s,i)}),r+t.options.expiration):void 0,job:t}}_drainOne(e){return this._registerLock.schedule((()=>{var t,r,n,i,s;if(0===this.queued())return this.Promise.resolve(null);s=this._queues.getFirst();var o=n=s.first();return i=o.options,t=o.args,null!=e&&i.weight>e?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${i.id}`,{args:t,options:i}),r=this._randomIndex(),this._store.__register__(r,i.weight,i.expiration).then((({success:e,wait:o,reservoir:a})=>{var c;return this.Events.trigger("debug",`Drained ${i.id}`,{success:e,args:t,options:i}),e?(s.shift(),(c=this.empty())&&this.Events.trigger("empty"),0===a&&this.Events.trigger("depleted",c),this._run(r,n,o),this.Promise.resolve(i.weight)):this.Promise.resolve(null)})))}))}_drainAll(e,t=0){return this._drainOne(e).then((r=>{var n;return null!=r?(n=null!=e?e-r:e,this._drainAll(n,t+r)):this.Promise.resolve(t)})).catch((e=>this.Events.trigger("error",e)))}_dropAllQueued(e){return this._queues.shiftAll((function(t){return t.doDrop({message:e})}))}stop(t={}){var r,n;return t=parser.load(t,this.stopDefaults),n=e=>{var t;return t=()=>{var t;return(t=this._states.counts)[0]+t[1]+t[2]+t[3]===e},new this.Promise(((e,r)=>t()?e():this.on("done",(()=>{if(t())return this.removeAllListeners("done"),e()}))))},r=t.dropWaitingJobs?(this._run=function(e,r){return r.doDrop({message:t.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule((()=>this._submitLock.schedule((()=>{var e,r,i;for(e in r=this._scheduled)i=r[e],"RUNNING"===this.jobStatus(i.job.options.id)&&(clearTimeout(i.timeout),clearTimeout(i.expiration),i.job.doDrop({message:t.dropErrorMessage}));return this._dropAllQueued(t.dropErrorMessage),n(0)}))))):this.schedule({priority:NUM_PRIORITIES-1,weight:0},(()=>n(1))),this._receive=function(r){return r._reject(new e.prototype.BottleneckError(t.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new e.prototype.BottleneckError("stop() has already been called")),r}_addToQueue(t){var r=this;return _asyncToGenerator((function*(){var n,i,s,o,a,c,l;n=t.args,o=t.options;try{var u=yield r._store.__submit__(r.queued(),o.weight);a=u.reachedHWM,i=u.blocked,l=u.strategy}catch(e){return s=e,r.Events.trigger("debug",`Could not queue ${o.id}`,{args:n,options:o,error:s}),t.doDrop({error:s}),!1}return i?(t.doDrop(),!0):a&&(null!=(c=l===e.prototype.strategy.LEAK?r._queues.shiftLastFrom(o.priority):l===e.prototype.strategy.OVERFLOW_PRIORITY?r._queues.shiftLastFrom(o.priority+1):l===e.prototype.strategy.OVERFLOW?t:void 0)&&c.doDrop(),null==c||l===e.prototype.strategy.OVERFLOW)?(null==c&&t.doDrop(),a):(t.doQueue(a,i),r._queues.push(t),yield r._drainAll(),a)}))()}_receive(t){return null!=this._states.jobStatus(t.options.id)?(t._reject(new e.prototype.BottleneckError(`A job with the same id already exists (id=${t.options.id})`)),!1):(t.doReceive(),this._submitLock.schedule(this._addToQueue,t))}submit(...e){var t,r,n,i,s,o,a,c;"function"==typeof e[0]?(s=_toArray(e),r=s[0],e=s.slice(1),o=_slicedToArray(splice.call(e,-1),1),t=o[0],i=parser.load({},this.jobDefaults)):(i=(a=_toArray(e))[0],r=a[1],e=a.slice(2),c=_slicedToArray(splice.call(e,-1),1),t=c[0],i=parser.load(i,this.jobDefaults));return(n=new Job(((...e)=>new this.Promise((function(t,n){return r(...e,(function(...e){return(null!=e[0]?n:t)(e)}))}))),e,i,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise)).promise.then((function(e){return"function"==typeof t?t(...e):void 0})).catch((function(e){return Array.isArray(e)?"function"==typeof t?t(...e):void 0:"function"==typeof t?t(e):void 0})),this._receive(n)}schedule(...e){var t,r,n;if("function"==typeof e[0]){var i=_toArray(e);n=i[0],e=i.slice(1),r={}}else{var s=_toArray(e);r=s[0],n=s[1],e=s.slice(2)}return t=new Job(n,e,r,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(t),t.promise}wrap(e){var t,r;return t=this.schedule.bind(this),(r=function(...r){return t(e.bind(this),...r)}).withOptions=function(r,...n){return t(r,e,...n)},r}updateSettings(e={}){var t=this;return _asyncToGenerator((function*(){return yield t._store.__updateSettings__(parser.overwrite(e,t.storeDefaults)),parser.overwrite(e,t.instanceDefaults,t),t}))()}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(e=0){return this._store.__incrementReservoir__(e)}}return e.default=e,e.Events=Events,e.version=e.prototype.version=require$$8.version,e.strategy=e.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},e.BottleneckError=e.prototype.BottleneckError=BottleneckError_1,e.Group=e.prototype.Group=Group_1,e.RedisConnection=e.prototype.RedisConnection=RedisConnection_1,e.IORedisConnection=e.prototype.IORedisConnection=IORedisConnection_1,e.Batcher=e.prototype.Batcher=Batcher_1,e.prototype.jobDefaults={priority:DEFAULT_PRIORITY,weight:1,expiration:null,id:""},e.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:e.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},e.prototype.localStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:250},e.prototype.redisStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},e.prototype.instanceDefaults={datastore:"local",connection:null,id:"",rejectOnDrop:!0,trackDoneStatus:!1,Promise:Promise},e.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},e}.call(void 0);var Bottleneck_1=Bottleneck,lib$1=require$$0$1,shams=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0},origSymbol="undefined"!=typeof Symbol&&Symbol,hasSymbols$1=function(){return"function"==typeof origSymbol&&("function"==typeof Symbol&&("symbol"==typeof origSymbol("foo")&&("symbol"==typeof Symbol("bar")&&shams())))},ERROR_MESSAGE="Function.prototype.bind called on incompatible ",slice=Array.prototype.slice,toStr$1=Object.prototype.toString,funcType="[object Function]",implementation=function(e){var t=this;if("function"!=typeof t||toStr$1.call(t)!==funcType)throw new TypeError(ERROR_MESSAGE+t);for(var r,n=slice.call(arguments,1),i=function(){if(this instanceof r){var i=t.apply(this,n.concat(slice.call(arguments)));return Object(i)===i?i:this}return t.apply(e,n.concat(slice.call(arguments)))},s=Math.max(0,t.length-n.length),o=[],a=0;a1&&"boolean"!=typeof t)throw new $TypeError$1('"allowMissing" argument must be a boolean');var r=stringToPath(e),n=r.length>0?r[0]:"",i=getBaseIntrinsic("%"+n+"%",t),s=i.name,o=i.value,a=!1,c=i.alias;c&&(n=c[0],$spliceApply(r,$concat([0,1],c)));for(var l=1,u=!0;l=r.length){var y=$gOPD(o,p);o=(u=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:o[p]}else u=src(o,p),o=o[p];u&&!a&&(INTRINSICS[s]=o)}}return o},callBind=createCommonjsModule((function(e){var t=getIntrinsic("%Function.prototype.apply%"),r=getIntrinsic("%Function.prototype.call%"),n=getIntrinsic("%Reflect.apply%",!0)||functionBind.call(r,t),i=getIntrinsic("%Object.getOwnPropertyDescriptor%",!0),s=getIntrinsic("%Object.defineProperty%",!0),o=getIntrinsic("%Math.max%");if(s)try{s({},"a",{value:1})}catch(e){s=null}e.exports=function(e){var t=n(functionBind,r,arguments);if(i&&s){var a=i(t,"length");a.configurable&&s(t,"length",{value:1+o(0,e.length-(arguments.length-1))})}return t};var a=function(){return n(functionBind,t,arguments)};s?s(e.exports,"apply",{value:a}):e.exports.apply=a})),$indexOf=callBind(getIntrinsic("String.prototype.indexOf")),callBound=function(e,t){var r=getIntrinsic(e,!!t);return"function"==typeof r&&$indexOf(e,".prototype.")>-1?callBind(r):r},util_inspect=require$$0$3.inspect,hasMap="function"==typeof Map&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize=hasMap&&mapSizeDescriptor&&"function"==typeof mapSizeDescriptor.get?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet="function"==typeof Set&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&"function"==typeof setSizeDescriptor.get?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap="function"==typeof WeakMap&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet="function"==typeof WeakSet&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef="function"==typeof WeakRef&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString=Object.prototype.toString,functionToString=Function.prototype.toString,match=String.prototype.match,bigIntValueOf="function"==typeof BigInt?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,hasShammedSymbols="function"==typeof Symbol&&"object"==typeof Symbol.iterator,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null),inspectCustom=util_inspect.custom,inspectSymbol=inspectCustom&&isSymbol(inspectCustom)?inspectCustom:null,toStringTag="function"==typeof Symbol&&void 0!==Symbol.toStringTag?Symbol.toStringTag:null,objectInspect=function e(t,r,n,i){var s=r||{};if(has$3(s,"quoteStyle")&&"single"!==s.quoteStyle&&"double"!==s.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has$3(s,"maxStringLength")&&("number"==typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var o=!has$3(s,"customInspect")||s.customInspect;if("boolean"!=typeof o&&"symbol"!==o)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has$3(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('options "indent" must be "\\t", an integer > 0, or `null`');if(void 0===t)return"undefined";if(null===t)return"null";if("boolean"==typeof t)return t?"true":"false";if("string"==typeof t)return inspectString(t,s);if("number"==typeof t)return 0===t?1/0/t>0?"0":"-0":String(t);if("bigint"==typeof t)return String(t)+"n";var a=void 0===s.depth?5:s.depth;if(void 0===n&&(n=0),n>=a&&a>0&&"object"==typeof t)return isArray$3(t)?"[Array]":"[Object]";var c=getIndent(s,n);if(void 0===i)i=[];else if(indexOf(i,t)>=0)return"[Circular]";function l(t,r,o){if(r&&(i=i.slice()).push(r),o){var a={depth:s.depth};return has$3(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),e(t,a,n+1,i)}return e(t,s,n+1,i)}if("function"==typeof t){var u=nameOf(t),p=arrObjKeys(t,l);return"[Function"+(u?": "+u:" (anonymous)")+"]"+(p.length>0?" { "+p.join(", ")+" }":"")}if(isSymbol(t)){var d=hasShammedSymbols?String(t).replace(/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(t);return"object"!=typeof t||hasShammedSymbols?d:markBoxed(d)}if(isElement(t)){for(var h="<"+String(t.nodeName).toLowerCase(),y=t.attributes||[],f=0;f"}if(isArray$3(t)){if(0===t.length)return"[]";var _=arrObjKeys(t,l);return c&&!singleLineValues(_)?"["+indentedJoin(_,c)+"]":"[ "+_.join(", ")+" ]"}if(isError(t)){var m=arrObjKeys(t,l);return 0===m.length?"["+String(t)+"]":"{ ["+String(t)+"] "+m.join(", ")+" }"}if("object"==typeof t&&o){if(inspectSymbol&&"function"==typeof t[inspectSymbol])return t[inspectSymbol]();if("symbol"!==o&&"function"==typeof t.inspect)return t.inspect()}if(isMap(t)){var g=[];return mapForEach.call(t,(function(e,r){g.push(l(r,t,!0)+" => "+l(e,t))})),collectionOf("Map",mapSize.call(t),g,c)}if(isSet(t)){var v=[];return setForEach.call(t,(function(e){v.push(l(e,t))})),collectionOf("Set",setSize.call(t),v,c)}if(isWeakMap(t))return weakCollectionOf("WeakMap");if(isWeakSet(t))return weakCollectionOf("WeakSet");if(isWeakRef(t))return weakCollectionOf("WeakRef");if(isNumber(t))return markBoxed(l(Number(t)));if(isBigInt(t))return markBoxed(l(bigIntValueOf.call(t)));if(isBoolean(t))return markBoxed(booleanValueOf.call(t));if(isString(t))return markBoxed(l(String(t)));if(!isDate(t)&&!isRegExp$1(t)){var b=arrObjKeys(t,l),w=gPO?gPO(t)===Object.prototype:t instanceof Object||t.constructor===Object,$=t instanceof Object?"":"null prototype",S=!w&&toStringTag&&Object(t)===t&&toStringTag in t?toStr(t).slice(8,-1):$?"Object":"",k=(w||"function"!=typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(S||$?"["+[].concat(S||[],$||[]).join(": ")+"] ":"");return 0===b.length?k+"{}":c?k+"{"+indentedJoin(b,c)+"}":k+"{ "+b.join(", ")+" }"}return String(t)};function wrapQuotes(e,t,r){var n="double"===(r.quoteStyle||t)?'"':"'";return n+e+n}function quote(e){return String(e).replace(/"/g,""")}function isArray$3(e){return!("[object Array]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isDate(e){return!("[object Date]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isRegExp$1(e){return!("[object RegExp]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isError(e){return!("[object Error]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isString(e){return!("[object String]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isNumber(e){return!("[object Number]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isBoolean(e){return!("[object Boolean]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isSymbol(e){if(hasShammedSymbols)return e&&"object"==typeof e&&e instanceof Symbol;if("symbol"==typeof e)return!0;if(!e||"object"!=typeof e||!symToString)return!1;try{return symToString.call(e),!0}catch(e){}return!1}function isBigInt(e){if(!e||"object"!=typeof e||!bigIntValueOf)return!1;try{return bigIntValueOf.call(e),!0}catch(e){}return!1}var hasOwn=Object.prototype.hasOwnProperty||function(e){return e in this};function has$3(e,t){return hasOwn.call(e,t)}function toStr(e){return objectToString.call(e)}function nameOf(e){if(e.name)return e.name;var t=match.call(functionToString.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}function indexOf(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;rt.maxStringLength){var r=e.length-t.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return inspectString(e.slice(0,t.maxStringLength),t)+n}return wrapQuotes(e.replace(/(['\\])/g,"\\$1").replace(/[\x00-\x1f]/g,lowbyte),"single",t)}function lowbyte(e){var t=e.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return r?"\\"+r:"\\x"+(t<16?"0":"")+t.toString(16).toUpperCase()}function markBoxed(e){return"Object("+e+")"}function weakCollectionOf(e){return e+" { ? }"}function collectionOf(e,t,r,n){return e+" ("+t+") {"+(n?indentedJoin(r,n):r.join(", "))+"}"}function singleLineValues(e){for(var t=0;t=0)return!1;return!0}function getIndent(e,t){var r;if("\t"===e.indent)r="\t";else{if(!("number"==typeof e.indent&&e.indent>0))return null;r=Array(e.indent+1).join(" ")}return{base:r,prev:Array(t+1).join(r)}}function indentedJoin(e,t){if(0===e.length)return"";var r="\n"+t.prev+t.base;return r+e.join(","+r)+"\n"+t.prev}function arrObjKeys(e,t){var r=isArray$3(e),n=[];if(r){n.length=e.length;for(var i=0;i1;){var t=e.pop(),r=t.obj[t.prop];if(isArray$2(r)){for(var n=[],i=0;i=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||i===formats.RFC1738&&(40===c||41===c)?o+=s.charAt(a):c<128?o+=hexTable[c]:c<2048?o+=hexTable[192|c>>6]+hexTable[128|63&c]:c<55296||c>=57344?o+=hexTable[224|c>>12]+hexTable[128|c>>6&63]+hexTable[128|63&c]:(a+=1,c=65536+((1023&c)<<10|1023&s.charCodeAt(a)),o+=hexTable[240|c>>18]+hexTable[128|c>>12&63]+hexTable[128|c>>6&63]+hexTable[128|63&c])}return o},compact=function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],n=0;n0?_.join(",")||null:void 0}];else if(isArray$1(a))m=a;else{var v=Object.keys(_);m=c?v.sort(c):v}for(var b=0;b0?d+p:""},has=Object.prototype.hasOwnProperty,isArray=Array.isArray,defaults={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:utils.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},interpretNumericEntities=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},parseArrayValue=function(e,t){return e&&"string"==typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function(e,t){var r,n={},i=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,s=t.parameterLimit===1/0?void 0:t.parameterLimit,o=i.split(t.delimiter,s),a=-1,c=t.charset;if(t.charsetSentinel)for(r=0;r-1&&(u=isArray(u)?[u]:u),has.call(n,l)?n[l]=utils.combine(n[l],u):n[l]=u}return n},parseObject=function(e,t,r,n){for(var i=n?t:parseArrayValue(t,r),s=e.length-1;s>=0;--s){var o,a=e[s];if("[]"===a&&r.parseArrays)o=[].concat(i);else{o=r.plainObjects?Object.create(null):{};var c="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,l=parseInt(c,10);r.parseArrays||""!==c?!isNaN(l)&&a!==c&&String(l)===c&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(o=[])[l]=i:o[c]=i:o={0:i}}i=o}return i},parseKeys=function(e,t,r,n){if(e){var i=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,s=/(\[[^[\]]*])/g,o=r.depth>0&&/(\[[^[\]]*])/.exec(i),a=o?i.slice(0,o.index):i,c=[];if(a){if(!r.plainObjects&&has.call(Object.prototype,a)&&!r.allowPrototypes)return;c.push(a)}for(var l=0;r.depth>0&&null!==(o=s.exec(i))&&l`wss://stream.data.alpaca.markets/v2/${e}`}};function account(e){if(e)try{return{...e,raw:()=>e,buying_power:number(e.buying_power),regt_buying_power:number(e.regt_buying_power),daytrading_buying_power:number(e.daytrading_buying_power),cash:number(e.cash),created_at:new Date(e.created_at),portfolio_value:number(e.portfolio_value),multiplier:number(e.multiplier),equity:number(e.equity),last_equity:number(e.last_equity),long_market_value:number(e.long_market_value),short_market_value:number(e.short_market_value),initial_margin:number(e.initial_margin),maintenance_margin:number(e.maintenance_margin),last_maintenance_margin:number(e.last_maintenance_margin),sma:number(e.sma),status:e.status}}catch(e){throw new Error(`Account parsing failed. ${e.message}`)}}function clock(e){if(e)try{return{raw:()=>e,timestamp:new Date(e.timestamp),is_open:e.is_open,next_open:new Date(e.next_open),next_close:new Date(e.next_close)}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function order(e){if(e)try{return{...e,raw:()=>e,created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),submitted_at:new Date(e.submitted_at),filled_at:new Date(e.filled_at),expired_at:new Date(e.expired_at),canceled_at:new Date(e.canceled_at),failed_at:new Date(e.failed_at),replaced_at:new Date(e.replaced_at),qty:number(e.qty),filled_qty:number(e.filled_qty),type:e.type,side:e.side,time_in_force:e.time_in_force,limit_price:number(e.limit_price),stop_price:number(e.stop_price),filled_avg_price:number(e.filled_avg_price),status:e.status,legs:orders(e.legs),trail_price:number(e.trail_price),trail_percent:number(e.trail_percent),hwm:number(e.hwm),order_class:e.order_class}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function orders(e){return e?e.map((e=>order(e))):void 0}function canceled_order(e){if(!e)return;let t=e.body;delete e.body;try{return{...e,order:{...t,raw:()=>t,created_at:new Date(t.created_at),updated_at:new Date(t.updated_at),submitted_at:new Date(t.submitted_at),filled_at:new Date(t.filled_at),expired_at:new Date(t.expired_at),canceled_at:new Date(t.canceled_at),failed_at:new Date(t.failed_at),replaced_at:new Date(t.replaced_at),qty:number(t.qty),filled_qty:number(t.filled_qty),type:t.type,side:t.side,time_in_force:t.time_in_force,limit_price:number(t.limit_price),stop_price:number(t.stop_price),filled_avg_price:number(t.filled_avg_price),status:t.status,legs:orders(t.legs),trail_price:number(t.trail_price),trail_percent:number(t.trail_percent),hwm:number(t.hwm),order_class:t.order_class}}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function canceled_orders(e){return e?e.map((e=>canceled_order(e))):void 0}function position(e){if(e)try{return{...e,raw:()=>e,avg_entry_price:number(e.avg_entry_price),qty:number(e.qty),side:e.side,market_value:number(e.market_value),cost_basis:number(e.cost_basis),unrealized_pl:number(e.unrealized_pl),unrealized_plpc:number(e.unrealized_plpc),unrealized_intraday_pl:number(e.unrealized_intraday_pl),unrealized_intraday_plpc:number(e.unrealized_intraday_plpc),current_price:number(e.current_price),lastday_price:number(e.lastday_price),change_today:number(e.change_today)}}catch(e){throw new Error(`Position parsing failed. ${e.message}`)}}function positions(e){return e?e.map((e=>position(e))):void 0}function tradeActivity(e){if(e)try{return{...e,raw:()=>e,cum_qty:number(e.cum_qty),leaves_qty:number(e.leaves_qty),price:number(e.price),qty:number(e.qty),side:e.side,type:e.type}}catch(e){throw new Error(`TradeActivity parsing failed. ${e.message}`)}}function nonTradeActivity(e){if(e)try{return{...e,raw:()=>e,net_amount:number(e.net_amount),qty:number(e.qty),per_share_amount:number(e.per_share_amount)}}catch(e){throw new Error(`NonTradeActivity parsing failed. ${e.message}`)}}function activities(e){if(e)try{return e.map((e=>"FILL"===e.activity_type?tradeActivity(e):nonTradeActivity(e)))}catch(e){throw new Error(`Activity parsing failed. ${e.message}`)}}function pageOfTrades(e){if(e)try{return{raw:()=>e,trades:(null==e.trades?[]:e.trades).map((e=>({raw:()=>e,...e,t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function pageOfQuotes(e){if(e)try{return{raw:()=>e,quotes:(null==e.quotes?[]:e.quotes).map((e=>({raw:()=>e,...e,t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function pageOfBars(e){if(e)try{return{raw:()=>e,bars:(null==e.bars?[]:e.bars).map((e=>({raw:()=>e,...e,t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function snapshot(e){if(e)try{return{...e,raw:()=>e,latestTrade:e.latestTrade?{...e.latestTrade,t:new Date(e.latestTrade.t)}:null,latestQuote:e.latestQuote?{...e.latestQuote,t:new Date(e.latestQuote.t)}:null,minuteBar:e.minuteBar?{...e.minuteBar,t:new Date(e.minuteBar.t)}:null,dailyBar:e.dailyBar?{...e.dailyBar,t:new Date(e.dailyBar.t)}:null,prevDailyBar:e.prevDailyBar?{...e.prevDailyBar,t:new Date(e.prevDailyBar.t)}:null}}catch(e){throw new Error(`Snapshot parsing failed "${e.message}"`)}}function snapshots(e){let t={};for(let[r,n]of Object.entries(e))t[r]=snapshot(n);return t}function number(e){if(void 0===e||null==e)return e;const t=parseFloat(e);return Number.isNaN(t)?null:t}function trade_update(e){if(e)return{raw:()=>e,event:e.event,execution_id:e.execution_id,order:order(e.order),...e.event_id&&{event_id:number(e.event_id)},...e.at&&{at:new Date(e.at)},...e.timestamp&&{timestamp:new Date(e.timestamp)},...e.position_qty&&{position_qty:number(e.position_qty)},...e.price&&{price:number(e.price)},...e.qty&&{qty:number(e.qty)}}}var parse={account:account,activities:activities,clock:clock,nonTradeActivity:nonTradeActivity,order:order,orders:orders,canceled_orders:canceled_orders,position:position,positions:positions,tradeActivity:tradeActivity,pageOfTrades:pageOfTrades,pageOfQuotes:pageOfQuotes,pageOfBars:pageOfBars,snapshot:snapshot,snapshots:snapshots,trade_update:trade_update};const unifetch="undefined"!=typeof fetch?fetch:browser$1;class AlpacaClient{params;limiter=new lib$1({reservoir:200,reservoirRefreshAmount:200,reservoirRefreshInterval:6e4,maxConcurrent:1,minTime:200});constructor(e){if(this.params=e,"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),"access_token"in e.credentials&&("key"in e.credentials||"secret"in e.credentials))throw new Error("can't create client with both default and oauth credentials")}async isAuthenticated(){try{return await this.getAccount(),!0}catch{return!1}}async getAccount(){return parse.account(await this.request({method:"GET",url:`${urls.rest.account}/account`}))}async getOrder(e){return parse.order(await this.request({method:"GET",url:`${urls.rest.account}/orders/${e.order_id||e.client_order_id}`,data:{nested:e.nested}}))}async getOrders(e={}){return parse.orders(await this.request({method:"GET",url:`${urls.rest.account}/orders`,data:{...e,symbols:e.symbols?e.symbols.join(","):void 0}}))}async placeOrder(e){return parse.order(await this.request({method:"POST",url:`${urls.rest.account}/orders`,data:e}))}async replaceOrder(e){return parse.order(await this.request({method:"PATCH",url:`${urls.rest.account}/orders/${e.order_id}`,data:e}))}cancelOrder(e){return this.request({method:"DELETE",url:`${urls.rest.account}/orders/${e.order_id}`,isJSON:!1})}async cancelOrders(){return parse.canceled_orders(await this.request({method:"DELETE",url:`${urls.rest.account}/orders`}))}async getPosition(e){return parse.position(await this.request({method:"GET",url:`${urls.rest.account}/positions/${e.symbol}`}))}async getPositions(){return parse.positions(await this.request({method:"GET",url:`${urls.rest.account}/positions`}))}async closePosition(e){return parse.order(await this.request({method:"DELETE",url:`${urls.rest.account}/positions/${e.symbol}`,data:e}))}async closePositions(e){return parse.orders(await this.request({method:"DELETE",url:`${urls.rest.account}/positions?cancel_orders=${JSON.stringify(e.cancel_orders??!1)}`}))}getAsset(e){return this.request({method:"GET",url:`${urls.rest.account}/assets/${e.asset_id_or_symbol}`})}getAssets(e){return this.request({method:"GET",url:`${urls.rest.account}/assets`,data:e})}getWatchlist(e){return this.request({method:"GET",url:`${urls.rest.account}/watchlists/${e.uuid}`})}getWatchlists(){return this.request({method:"GET",url:`${urls.rest.account}/watchlists`})}createWatchlist(e){return this.request({method:"POST",url:`${urls.rest.account}/watchlists`,data:e})}updateWatchlist(e){return this.request({method:"PUT",url:`${urls.rest.account}/watchlists/${e.uuid}`,data:e})}addToWatchlist(e){return this.request({method:"POST",url:`${urls.rest.account}/watchlists/${e.uuid}`,data:e})}removeFromWatchlist(e){return this.request({method:"DELETE",url:`${urls.rest.account}/watchlists/${e.uuid}/${e.symbol}`})}deleteWatchlist(e){return this.request({method:"DELETE",url:`${urls.rest.account}/watchlists/${e.uuid}`})}getCalendar(e){return this.request({method:"GET",url:`${urls.rest.account}/calendar`,data:e})}getNews(e){return"symbols"in e&&Array.isArray(e.symbols)&&(e.symbols=e.symbols.join(",")),this.request({method:"GET",url:`${urls.rest.beta}/news`,data:e})}async getClock(){return parse.clock(await this.request({method:"GET",url:`${urls.rest.account}/clock`}))}getAccountConfigurations(){return this.request({method:"GET",url:`${urls.rest.account}/account/configurations`})}updateAccountConfigurations(e){return this.request({method:"PATCH",url:`${urls.rest.account}/account/configurations`,data:e})}async getAccountActivities(e){return e.activity_types&&Array.isArray(e.activity_types)&&(e.activity_types=e.activity_types.join(",")),parse.activities(await this.request({method:"GET",url:`${urls.rest.account}/account/activities${e.activity_type?"/".concat(e.activity_type):""}`,data:{...e,activity_type:void 0}}))}getPortfolioHistory(e){return this.request({method:"GET",url:`${urls.rest.account}/account/portfolio/history`,data:e})}async getBars_v1(e){const t={...e,symbols:e.symbols.join(",")};return await this.request({method:"GET",url:`${urls.rest.market_data_v1}/bars/${e.timeframe}`,data:t})}async getLastTrade_v1(e){return await this.request({method:"GET",url:`${urls.rest.market_data_v1}/last/stocks/${e.symbol}`})}async getLastQuote_v1(e){return await this.request({method:"GET",url:`${urls.rest.market_data_v1}/last_quote/stocks/${e.symbol}`})}async getTrades(e){return parse.pageOfTrades(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/trades`,data:{...e,symbol:void 0}}))}async getQuotes(e){return parse.pageOfQuotes(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/quotes`,data:{...e,symbol:void 0}}))}async getBars(e){return parse.pageOfBars(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/bars`,data:{...e,symbol:void 0}}))}async getSnapshot(e){return parse.snapshot(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/snapshot`}))}async getSnapshots(e){return parse.snapshots(await this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/snapshots?symbols=${e.symbols.join(",")}`}))}async request(e){let t={};"access_token"in this.params.credentials?t.Authorization=`Bearer ${this.params.credentials.access_token}`:(t["APCA-API-KEY-ID"]=this.params.credentials.key,t["APCA-API-SECRET-KEY"]=this.params.credentials.secret),this.params.credentials.paper&&(e.url=e.url.replace("api.","paper-api."));let r="";if(e.data){for(let[t,r]of Object.entries(e.data))r instanceof Date&&(e.data[t]=r.toISOString());["POST","PATCH","PUT"].includes(e.method)||(r="?".concat(lib.stringify(e.data)),e.data=void 0)}const n=()=>unifetch(e.url.concat(r),{method:e.method,headers:t,body:JSON.stringify(e.data)}),i=this.params.rate_limit?()=>this.limiter.schedule(n):n;let s,o={};try{if(s=await i(),null!=e.isJSON&&!e.isJSON)return s.ok;o=await s.json()}catch(e){throw console.error(e),o}if("code"in o||"message"in o)throw o;return o}}var ws=null;"undefined"!=typeof WebSocket?ws=WebSocket:"undefined"!=typeof MozWebSocket?ws=MozWebSocket:void 0!==commonjsGlobal?ws=commonjsGlobal.WebSocket||commonjsGlobal.MozWebSocket:"undefined"!=typeof window?ws=window.WebSocket||window.MozWebSocket:"undefined"!=typeof self&&(ws=self.WebSocket||self.MozWebSocket);var browser=ws,eventemitter3=createCommonjsModule((function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}function i(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function s(e,t,n,s,o){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new i(n,s||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),a.prototype.eventNames=function(){var e,n,i=[];if(0===this._eventsCount)return i;for(n in e=this._events)t.call(e,n)&&i.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},a.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i"undefined"!=typeof Blob&&(e instanceof Blob||"[object Blob]"===Object.prototype.toString.call(e));class AlpacaStream extends eventemitter3{params;host;connection;authenticated;constructor(e){switch(super(),this.params=e,"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),e.type){case"account":this.host=e.credentials.paper?urls.websocket.account.replace("api.","paper-api."):urls.websocket.account;break;case"market_data":this.host=urls.websocket.market_data(this.params.source);break;default:this.host="unknown"}this.connection=new browser(this.host),this.connection.onopen=()=>{let t={};switch(this.params.type){case"account":t={action:"authenticate",data:{key_id:e.credentials.key,secret_key:e.credentials.secret}};break;case"market_data":t={action:"auth",...e.credentials}}this.connection.send(JSON.stringify(t)),this.emit("open",this)},this.connection.onclose=()=>this.emit("close",this),this.connection.onmessage=async e=>{let t=e.data;isBlob(t)?t=await e.data.text():t instanceof ArrayBuffer&&(t=String.fromCharCode(...new Uint8Array(e.data)));let r=JSON.parse(t);("account"==this.params.type?[r]:r).forEach((e=>{this.emit("message",e),("T"in e&&"authenticated"==e.msg||"stream"in e&&"authorization"==e.stream&&"authorized"==e.data.status)&&(this.authenticated=!0,this.emit("authenticated",this)),"stream"in e&&"trade_updates"==e.stream&&this.emit("trade_updates",parse.trade_update(e.data));const t={success:"success",subscription:"subscription",error:"error",t:"trade",q:"quote",b:"bar"};"T"in e&&this.emit(t[e.T.split(".")[0]],e)}))},this.connection.onerror=e=>{this.emit("error",e)}}getConnection(){return this.connection}subscribe(e,t=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"listen",data:{streams:[e]}}));break;case"market_data":let r={action:"subscribe"};r[e]=t,this.send(JSON.stringify(r))}return this}unsubscribe(e,t=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"unlisten",data:{streams:[e]}}));break;case"market_data":let r={action:"unsubscribe"};r[e]=t,this.send(JSON.stringify(r))}return this}send(e){if(!this.authenticated)throw new Error("not authenticated");return"object"==typeof e&&(e=JSON.stringify(e)),this.connection.send(e),this}}var index={AlpacaClient:AlpacaClient,AlpacaStream:AlpacaStream};export{AlpacaClient,AlpacaStream,index as default}; diff --git a/dist/alpaca.bundle.js b/dist/alpaca.bundle.js index de9c0f0..b4e88dc 100644 --- a/dist/alpaca.bundle.js +++ b/dist/alpaca.bundle.js @@ -86873,7 +86873,13 @@ function number(numStr) { function trade_update(rawTradeUpdate) { if (!rawTradeUpdate) return undefined; - return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ raw: () => rawTradeUpdate, event: rawTradeUpdate.event, execution_id: rawTradeUpdate.execution_id, order: order(rawTradeUpdate.order) }, rawTradeUpdate.event_id && { event_id: number(rawTradeUpdate.event_id) }), rawTradeUpdate.at && { at: new Date(rawTradeUpdate.at) }), rawTradeUpdate.timestamp && { timestamp: new Date(rawTradeUpdate.timestamp) }), rawTradeUpdate.position_qty && { position_qty: number(rawTradeUpdate.position_qty) }), rawTradeUpdate.price && { price: number(rawTradeUpdate.price) }), rawTradeUpdate.qty && { qty: number(rawTradeUpdate.qty) }); + return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ raw: () => rawTradeUpdate, event: rawTradeUpdate.event, execution_id: rawTradeUpdate.execution_id, order: order(rawTradeUpdate.order) }, (rawTradeUpdate.event_id && { + event_id: number(rawTradeUpdate.event_id), + })), (rawTradeUpdate.at && { at: new Date(rawTradeUpdate.at) })), (rawTradeUpdate.timestamp && { + timestamp: new Date(rawTradeUpdate.timestamp), + })), (rawTradeUpdate.position_qty && { + position_qty: number(rawTradeUpdate.position_qty), + })), (rawTradeUpdate.price && { price: number(rawTradeUpdate.price) })), (rawTradeUpdate.qty && { qty: number(rawTradeUpdate.qty) })); } var parse$3 = { account, @@ -86891,7 +86897,7 @@ var parse$3 = { pageOfBars, snapshot, snapshots, - trade_update + trade_update, }; const unifetch = typeof fetch !== 'undefined' ? fetch : isomorphicUnfetch; @@ -87084,6 +87090,9 @@ class AlpacaClient { }); } getNews(params) { + if ('symbols' in params && Array.isArray(params.symbols)) { + params.symbols = params.symbols.join(','); + } return this.request({ method: 'GET', url: `${urls.rest.beta}/news`, diff --git a/dist/alpaca.bundle.js.map b/dist/alpaca.bundle.js.map index d54fb56..50545c3 100644 --- a/dist/alpaca.bundle.js.map +++ b/dist/alpaca.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"alpaca.bundle.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/bottleneck/lib/parser.js","../node_modules/bottleneck/lib/DLList.js","../node_modules/bottleneck/lib/Events.js","../node_modules/bottleneck/lib/Queues.js","../node_modules/bottleneck/lib/BottleneckError.js","../node_modules/bottleneck/lib/Job.js","../node_modules/bottleneck/lib/LocalDatastore.js","../node_modules/bottleneck/lib/Scripts.js","../node_modules/bottleneck/lib/RedisConnection.js","../node_modules/bottleneck/lib/IORedisConnection.js","../node_modules/bottleneck/lib/RedisDatastore.js","../node_modules/bottleneck/lib/States.js","../node_modules/bottleneck/lib/Sync.js","../node_modules/bottleneck/lib/Group.js","../node_modules/bottleneck/lib/Batcher.js","../node_modules/bottleneck/lib/Bottleneck.js","../node_modules/bottleneck/lib/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-symbols/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/has/src/index.js","../node_modules/get-intrinsic/index.js","../node_modules/call-bind/index.js","../node_modules/call-bind/callBound.js","../node_modules/object-inspect/util.inspect.js","../node_modules/object-inspect/index.js","../node_modules/side-channel/index.js","../node_modules/qs/lib/formats.js","../node_modules/qs/lib/utils.js","../node_modules/qs/lib/stringify.js","../node_modules/qs/lib/parse.js","../node_modules/qs/lib/index.js","../node_modules/unfetch/dist/unfetch.module.js","../node_modules/node-fetch/node_modules/webidl-conversions/lib/index.js","../node_modules/node-fetch/node_modules/whatwg-url/lib/utils.js","../node_modules/punycode/punycode.js","../node_modules/node-fetch/node_modules/tr46/index.js","../node_modules/node-fetch/node_modules/whatwg-url/lib/url-state-machine.js","../node_modules/node-fetch/node_modules/whatwg-url/lib/URL-impl.js","../node_modules/node-fetch/node_modules/whatwg-url/lib/URL.js","../node_modules/node-fetch/node_modules/whatwg-url/lib/public-api.js","../node_modules/node-fetch/lib/index.mjs","../node_modules/isomorphic-unfetch/index.js","../src/urls.ts","../src/parse.ts","../src/client.ts","../node_modules/ws/lib/constants.js","../node_modules/node-gyp-build/index.js","../node_modules/bufferutil/fallback.js","../node_modules/bufferutil/index.js","../node_modules/ws/lib/buffer-util.js","../node_modules/ws/lib/limiter.js","../node_modules/ws/lib/permessage-deflate.js","../node_modules/utf-8-validate/fallback.js","../node_modules/utf-8-validate/index.js","../node_modules/ws/lib/validation.js","../node_modules/ws/lib/receiver.js","../node_modules/ws/lib/sender.js","../node_modules/ws/lib/event-target.js","../node_modules/ws/lib/extension.js","../node_modules/ws/lib/websocket.js","../node_modules/ws/lib/stream.js","../node_modules/ws/lib/websocket-server.js","../node_modules/ws/index.js","../node_modules/isomorphic-ws/node.js","../node_modules/eventemitter3/index.js","../node_modules/is-blob/index.js","../src/stream.ts","../src/index.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","\"use strict\";\n\nexports.load = function (received, defaults, onto = {}) {\n var k, ref, v;\n\n for (k in defaults) {\n v = defaults[k];\n onto[k] = (ref = received[k]) != null ? ref : v;\n }\n\n return onto;\n};\n\nexports.overwrite = function (received, defaults, onto = {}) {\n var k, v;\n\n for (k in received) {\n v = received[k];\n\n if (defaults[k] !== void 0) {\n onto[k] = v;\n }\n }\n\n return onto;\n};","\"use strict\";\n\nvar DLList;\nDLList = class DLList {\n constructor(incr, decr) {\n this.incr = incr;\n this.decr = decr;\n this._first = null;\n this._last = null;\n this.length = 0;\n }\n\n push(value) {\n var node;\n this.length++;\n\n if (typeof this.incr === \"function\") {\n this.incr();\n }\n\n node = {\n value,\n prev: this._last,\n next: null\n };\n\n if (this._last != null) {\n this._last.next = node;\n this._last = node;\n } else {\n this._first = this._last = node;\n }\n\n return void 0;\n }\n\n shift() {\n var value;\n\n if (this._first == null) {\n return;\n } else {\n this.length--;\n\n if (typeof this.decr === \"function\") {\n this.decr();\n }\n }\n\n value = this._first.value;\n\n if ((this._first = this._first.next) != null) {\n this._first.prev = null;\n } else {\n this._last = null;\n }\n\n return value;\n }\n\n first() {\n if (this._first != null) {\n return this._first.value;\n }\n }\n\n getArray() {\n var node, ref, results;\n node = this._first;\n results = [];\n\n while (node != null) {\n results.push((ref = node, node = node.next, ref.value));\n }\n\n return results;\n }\n\n forEachShift(cb) {\n var node;\n node = this.shift();\n\n while (node != null) {\n cb(node), node = this.shift();\n }\n\n return void 0;\n }\n\n debug() {\n var node, ref, ref1, ref2, results;\n node = this._first;\n results = [];\n\n while (node != null) {\n results.push((ref = node, node = node.next, {\n value: ref.value,\n prev: (ref1 = ref.prev) != null ? ref1.value : void 0,\n next: (ref2 = ref.next) != null ? ref2.value : void 0\n }));\n }\n\n return results;\n }\n\n};\nmodule.exports = DLList;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events;\nEvents = class Events {\n constructor(instance) {\n this.instance = instance;\n this._events = {};\n\n if (this.instance.on != null || this.instance.once != null || this.instance.removeAllListeners != null) {\n throw new Error(\"An Emitter already exists for this object\");\n }\n\n this.instance.on = (name, cb) => {\n return this._addListener(name, \"many\", cb);\n };\n\n this.instance.once = (name, cb) => {\n return this._addListener(name, \"once\", cb);\n };\n\n this.instance.removeAllListeners = (name = null) => {\n if (name != null) {\n return delete this._events[name];\n } else {\n return this._events = {};\n }\n };\n }\n\n _addListener(name, status, cb) {\n var base;\n\n if ((base = this._events)[name] == null) {\n base[name] = [];\n }\n\n this._events[name].push({\n cb,\n status\n });\n\n return this.instance;\n }\n\n listenerCount(name) {\n if (this._events[name] != null) {\n return this._events[name].length;\n } else {\n return 0;\n }\n }\n\n trigger(name, ...args) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var e, promises;\n\n try {\n if (name !== \"debug\") {\n _this.trigger(\"debug\", `Event triggered: ${name}`, args);\n }\n\n if (_this._events[name] == null) {\n return;\n }\n\n _this._events[name] = _this._events[name].filter(function (listener) {\n return listener.status !== \"none\";\n });\n promises = _this._events[name].map(\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(function* (listener) {\n var e, returned;\n\n if (listener.status === \"none\") {\n return;\n }\n\n if (listener.status === \"once\") {\n listener.status = \"none\";\n }\n\n try {\n returned = typeof listener.cb === \"function\" ? listener.cb(...args) : void 0;\n\n if (typeof (returned != null ? returned.then : void 0) === \"function\") {\n return yield returned;\n } else {\n return returned;\n }\n } catch (error) {\n e = error;\n\n if (\"name\" !== \"error\") {\n _this.trigger(\"error\", e);\n }\n\n return null;\n }\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n return (yield Promise.all(promises)).find(function (x) {\n return x != null;\n });\n } catch (error) {\n e = error;\n\n if (\"name\" !== \"error\") {\n _this.trigger(\"error\", e);\n }\n\n return null;\n }\n })();\n }\n\n};\nmodule.exports = Events;","\"use strict\";\n\nvar DLList, Events, Queues;\nDLList = require(\"./DLList\");\nEvents = require(\"./Events\");\nQueues = class Queues {\n constructor(num_priorities) {\n var i;\n this.Events = new Events(this);\n this._length = 0;\n\n this._lists = function () {\n var j, ref, results;\n results = [];\n\n for (i = j = 1, ref = num_priorities; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\n results.push(new DLList(() => {\n return this.incr();\n }, () => {\n return this.decr();\n }));\n }\n\n return results;\n }.call(this);\n }\n\n incr() {\n if (this._length++ === 0) {\n return this.Events.trigger(\"leftzero\");\n }\n }\n\n decr() {\n if (--this._length === 0) {\n return this.Events.trigger(\"zero\");\n }\n }\n\n push(job) {\n return this._lists[job.options.priority].push(job);\n }\n\n queued(priority) {\n if (priority != null) {\n return this._lists[priority].length;\n } else {\n return this._length;\n }\n }\n\n shiftAll(fn) {\n return this._lists.forEach(function (list) {\n return list.forEachShift(fn);\n });\n }\n\n getFirst(arr = this._lists) {\n var j, len, list;\n\n for (j = 0, len = arr.length; j < len; j++) {\n list = arr[j];\n\n if (list.length > 0) {\n return list;\n }\n }\n\n return [];\n }\n\n shiftLastFrom(priority) {\n return this.getFirst(this._lists.slice(priority).reverse()).shift();\n }\n\n};\nmodule.exports = Queues;","\"use strict\";\n\nvar BottleneckError;\nBottleneckError = class BottleneckError extends Error {};\nmodule.exports = BottleneckError;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, DEFAULT_PRIORITY, Job, NUM_PRIORITIES, parser;\nNUM_PRIORITIES = 10;\nDEFAULT_PRIORITY = 5;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nJob = class Job {\n constructor(task, args, options, jobDefaults, rejectOnDrop, Events, _states, Promise) {\n this.task = task;\n this.args = args;\n this.rejectOnDrop = rejectOnDrop;\n this.Events = Events;\n this._states = _states;\n this.Promise = Promise;\n this.options = parser.load(options, jobDefaults);\n this.options.priority = this._sanitizePriority(this.options.priority);\n\n if (this.options.id === jobDefaults.id) {\n this.options.id = `${this.options.id}-${this._randomIndex()}`;\n }\n\n this.promise = new this.Promise((_resolve, _reject) => {\n this._resolve = _resolve;\n this._reject = _reject;\n });\n this.retryCount = 0;\n }\n\n _sanitizePriority(priority) {\n var sProperty;\n sProperty = ~~priority !== priority ? DEFAULT_PRIORITY : priority;\n\n if (sProperty < 0) {\n return 0;\n } else if (sProperty > NUM_PRIORITIES - 1) {\n return NUM_PRIORITIES - 1;\n } else {\n return sProperty;\n }\n }\n\n _randomIndex() {\n return Math.random().toString(36).slice(2);\n }\n\n doDrop({\n error,\n message = \"This job has been dropped by Bottleneck\"\n } = {}) {\n if (this._states.remove(this.options.id)) {\n if (this.rejectOnDrop) {\n this._reject(error != null ? error : new BottleneckError(message));\n }\n\n this.Events.trigger(\"dropped\", {\n args: this.args,\n options: this.options,\n task: this.task,\n promise: this.promise\n });\n return true;\n } else {\n return false;\n }\n }\n\n _assertStatus(expected) {\n var status;\n status = this._states.jobStatus(this.options.id);\n\n if (!(status === expected || expected === \"DONE\" && status === null)) {\n throw new BottleneckError(`Invalid job status ${status}, expected ${expected}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`);\n }\n }\n\n doReceive() {\n this._states.start(this.options.id);\n\n return this.Events.trigger(\"received\", {\n args: this.args,\n options: this.options\n });\n }\n\n doQueue(reachedHWM, blocked) {\n this._assertStatus(\"RECEIVED\");\n\n this._states.next(this.options.id);\n\n return this.Events.trigger(\"queued\", {\n args: this.args,\n options: this.options,\n reachedHWM,\n blocked\n });\n }\n\n doRun() {\n if (this.retryCount === 0) {\n this._assertStatus(\"QUEUED\");\n\n this._states.next(this.options.id);\n } else {\n this._assertStatus(\"EXECUTING\");\n }\n\n return this.Events.trigger(\"scheduled\", {\n args: this.args,\n options: this.options\n });\n }\n\n doExecute(chained, clearGlobalState, run, free) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var error, eventInfo, passed;\n\n if (_this.retryCount === 0) {\n _this._assertStatus(\"RUNNING\");\n\n _this._states.next(_this.options.id);\n } else {\n _this._assertStatus(\"EXECUTING\");\n }\n\n eventInfo = {\n args: _this.args,\n options: _this.options,\n retryCount: _this.retryCount\n };\n\n _this.Events.trigger(\"executing\", eventInfo);\n\n try {\n passed = yield chained != null ? chained.schedule(_this.options, _this.task, ..._this.args) : _this.task(..._this.args);\n\n if (clearGlobalState()) {\n _this.doDone(eventInfo);\n\n yield free(_this.options, eventInfo);\n\n _this._assertStatus(\"DONE\");\n\n return _this._resolve(passed);\n }\n } catch (error1) {\n error = error1;\n return _this._onFailure(error, eventInfo, clearGlobalState, run, free);\n }\n })();\n }\n\n doExpire(clearGlobalState, run, free) {\n var error, eventInfo;\n\n if (this._states.jobStatus(this.options.id === \"RUNNING\")) {\n this._states.next(this.options.id);\n }\n\n this._assertStatus(\"EXECUTING\");\n\n eventInfo = {\n args: this.args,\n options: this.options,\n retryCount: this.retryCount\n };\n error = new BottleneckError(`This job timed out after ${this.options.expiration} ms.`);\n return this._onFailure(error, eventInfo, clearGlobalState, run, free);\n }\n\n _onFailure(error, eventInfo, clearGlobalState, run, free) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var retry, retryAfter;\n\n if (clearGlobalState()) {\n retry = yield _this2.Events.trigger(\"failed\", error, eventInfo);\n\n if (retry != null) {\n retryAfter = ~~retry;\n\n _this2.Events.trigger(\"retry\", `Retrying ${_this2.options.id} after ${retryAfter} ms`, eventInfo);\n\n _this2.retryCount++;\n return run(retryAfter);\n } else {\n _this2.doDone(eventInfo);\n\n yield free(_this2.options, eventInfo);\n\n _this2._assertStatus(\"DONE\");\n\n return _this2._reject(error);\n }\n }\n })();\n }\n\n doDone(eventInfo) {\n this._assertStatus(\"EXECUTING\");\n\n this._states.next(this.options.id);\n\n return this.Events.trigger(\"done\", eventInfo);\n }\n\n};\nmodule.exports = Job;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, LocalDatastore, parser;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nLocalDatastore = class LocalDatastore {\n constructor(instance, storeOptions, storeInstanceOptions) {\n this.instance = instance;\n this.storeOptions = storeOptions;\n this.clientId = this.instance._randomIndex();\n parser.load(storeInstanceOptions, storeInstanceOptions, this);\n this._nextRequest = this._lastReservoirRefresh = this._lastReservoirIncrease = Date.now();\n this._running = 0;\n this._done = 0;\n this._unblockTime = 0;\n this.ready = this.Promise.resolve();\n this.clients = {};\n\n this._startHeartbeat();\n }\n\n _startHeartbeat() {\n var base;\n\n if (this.heartbeat == null && (this.storeOptions.reservoirRefreshInterval != null && this.storeOptions.reservoirRefreshAmount != null || this.storeOptions.reservoirIncreaseInterval != null && this.storeOptions.reservoirIncreaseAmount != null)) {\n return typeof (base = this.heartbeat = setInterval(() => {\n var amount, incr, maximum, now, reservoir;\n now = Date.now();\n\n if (this.storeOptions.reservoirRefreshInterval != null && now >= this._lastReservoirRefresh + this.storeOptions.reservoirRefreshInterval) {\n this._lastReservoirRefresh = now;\n this.storeOptions.reservoir = this.storeOptions.reservoirRefreshAmount;\n\n this.instance._drainAll(this.computeCapacity());\n }\n\n if (this.storeOptions.reservoirIncreaseInterval != null && now >= this._lastReservoirIncrease + this.storeOptions.reservoirIncreaseInterval) {\n var _this$storeOptions = this.storeOptions;\n amount = _this$storeOptions.reservoirIncreaseAmount;\n maximum = _this$storeOptions.reservoirIncreaseMaximum;\n reservoir = _this$storeOptions.reservoir;\n this._lastReservoirIncrease = now;\n incr = maximum != null ? Math.min(amount, maximum - reservoir) : amount;\n\n if (incr > 0) {\n this.storeOptions.reservoir += incr;\n return this.instance._drainAll(this.computeCapacity());\n }\n }\n }, this.heartbeatInterval)).unref === \"function\" ? base.unref() : void 0;\n } else {\n return clearInterval(this.heartbeat);\n }\n }\n\n __publish__(message) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n yield _this.yieldLoop();\n return _this.instance.Events.trigger(\"message\", message.toString());\n })();\n }\n\n __disconnect__(flush) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n yield _this2.yieldLoop();\n clearInterval(_this2.heartbeat);\n return _this2.Promise.resolve();\n })();\n }\n\n yieldLoop(t = 0) {\n return new this.Promise(function (resolve, reject) {\n return setTimeout(resolve, t);\n });\n }\n\n computePenalty() {\n var ref;\n return (ref = this.storeOptions.penalty) != null ? ref : 15 * this.storeOptions.minTime || 5000;\n }\n\n __updateSettings__(options) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n yield _this3.yieldLoop();\n parser.overwrite(options, options, _this3.storeOptions);\n\n _this3._startHeartbeat();\n\n _this3.instance._drainAll(_this3.computeCapacity());\n\n return true;\n })();\n }\n\n __running__() {\n var _this4 = this;\n\n return _asyncToGenerator(function* () {\n yield _this4.yieldLoop();\n return _this4._running;\n })();\n }\n\n __queued__() {\n var _this5 = this;\n\n return _asyncToGenerator(function* () {\n yield _this5.yieldLoop();\n return _this5.instance.queued();\n })();\n }\n\n __done__() {\n var _this6 = this;\n\n return _asyncToGenerator(function* () {\n yield _this6.yieldLoop();\n return _this6._done;\n })();\n }\n\n __groupCheck__(time) {\n var _this7 = this;\n\n return _asyncToGenerator(function* () {\n yield _this7.yieldLoop();\n return _this7._nextRequest + _this7.timeout < time;\n })();\n }\n\n computeCapacity() {\n var maxConcurrent, reservoir;\n var _this$storeOptions2 = this.storeOptions;\n maxConcurrent = _this$storeOptions2.maxConcurrent;\n reservoir = _this$storeOptions2.reservoir;\n\n if (maxConcurrent != null && reservoir != null) {\n return Math.min(maxConcurrent - this._running, reservoir);\n } else if (maxConcurrent != null) {\n return maxConcurrent - this._running;\n } else if (reservoir != null) {\n return reservoir;\n } else {\n return null;\n }\n }\n\n conditionsCheck(weight) {\n var capacity;\n capacity = this.computeCapacity();\n return capacity == null || weight <= capacity;\n }\n\n __incrementReservoir__(incr) {\n var _this8 = this;\n\n return _asyncToGenerator(function* () {\n var reservoir;\n yield _this8.yieldLoop();\n reservoir = _this8.storeOptions.reservoir += incr;\n\n _this8.instance._drainAll(_this8.computeCapacity());\n\n return reservoir;\n })();\n }\n\n __currentReservoir__() {\n var _this9 = this;\n\n return _asyncToGenerator(function* () {\n yield _this9.yieldLoop();\n return _this9.storeOptions.reservoir;\n })();\n }\n\n isBlocked(now) {\n return this._unblockTime >= now;\n }\n\n check(weight, now) {\n return this.conditionsCheck(weight) && this._nextRequest - now <= 0;\n }\n\n __check__(weight) {\n var _this10 = this;\n\n return _asyncToGenerator(function* () {\n var now;\n yield _this10.yieldLoop();\n now = Date.now();\n return _this10.check(weight, now);\n })();\n }\n\n __register__(index, weight, expiration) {\n var _this11 = this;\n\n return _asyncToGenerator(function* () {\n var now, wait;\n yield _this11.yieldLoop();\n now = Date.now();\n\n if (_this11.conditionsCheck(weight)) {\n _this11._running += weight;\n\n if (_this11.storeOptions.reservoir != null) {\n _this11.storeOptions.reservoir -= weight;\n }\n\n wait = Math.max(_this11._nextRequest - now, 0);\n _this11._nextRequest = now + wait + _this11.storeOptions.minTime;\n return {\n success: true,\n wait,\n reservoir: _this11.storeOptions.reservoir\n };\n } else {\n return {\n success: false\n };\n }\n })();\n }\n\n strategyIsBlock() {\n return this.storeOptions.strategy === 3;\n }\n\n __submit__(queueLength, weight) {\n var _this12 = this;\n\n return _asyncToGenerator(function* () {\n var blocked, now, reachedHWM;\n yield _this12.yieldLoop();\n\n if (_this12.storeOptions.maxConcurrent != null && weight > _this12.storeOptions.maxConcurrent) {\n throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${_this12.storeOptions.maxConcurrent}`);\n }\n\n now = Date.now();\n reachedHWM = _this12.storeOptions.highWater != null && queueLength === _this12.storeOptions.highWater && !_this12.check(weight, now);\n blocked = _this12.strategyIsBlock() && (reachedHWM || _this12.isBlocked(now));\n\n if (blocked) {\n _this12._unblockTime = now + _this12.computePenalty();\n _this12._nextRequest = _this12._unblockTime + _this12.storeOptions.minTime;\n\n _this12.instance._dropAllQueued();\n }\n\n return {\n reachedHWM,\n blocked,\n strategy: _this12.storeOptions.strategy\n };\n })();\n }\n\n __free__(index, weight) {\n var _this13 = this;\n\n return _asyncToGenerator(function* () {\n yield _this13.yieldLoop();\n _this13._running -= weight;\n _this13._done += weight;\n\n _this13.instance._drainAll(_this13.computeCapacity());\n\n return {\n running: _this13._running\n };\n })();\n }\n\n};\nmodule.exports = LocalDatastore;","\"use strict\";\n\nvar headers, lua, templates;\nlua = require(\"./lua.json\");\nheaders = {\n refs: lua[\"refs.lua\"],\n validate_keys: lua[\"validate_keys.lua\"],\n validate_client: lua[\"validate_client.lua\"],\n refresh_expiration: lua[\"refresh_expiration.lua\"],\n process_tick: lua[\"process_tick.lua\"],\n conditions_check: lua[\"conditions_check.lua\"],\n get_time: lua[\"get_time.lua\"]\n};\n\nexports.allKeys = function (id) {\n return [\n /*\n HASH\n */\n `b_${id}_settings`,\n /*\n HASH\n job index -> weight\n */\n `b_${id}_job_weights`,\n /*\n ZSET\n job index -> expiration\n */\n `b_${id}_job_expirations`,\n /*\n HASH\n job index -> client\n */\n `b_${id}_job_clients`,\n /*\n ZSET\n client -> sum running\n */\n `b_${id}_client_running`,\n /*\n HASH\n client -> num queued\n */\n `b_${id}_client_num_queued`,\n /*\n ZSET\n client -> last job registered\n */\n `b_${id}_client_last_registered`,\n /*\n ZSET\n client -> last seen\n */\n `b_${id}_client_last_seen`];\n};\n\ntemplates = {\n init: {\n keys: exports.allKeys,\n headers: [\"process_tick\"],\n refresh_expiration: true,\n code: lua[\"init.lua\"]\n },\n group_check: {\n keys: exports.allKeys,\n headers: [],\n refresh_expiration: false,\n code: lua[\"group_check.lua\"]\n },\n register_client: {\n keys: exports.allKeys,\n headers: [\"validate_keys\"],\n refresh_expiration: false,\n code: lua[\"register_client.lua\"]\n },\n blacklist_client: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\"],\n refresh_expiration: false,\n code: lua[\"blacklist_client.lua\"]\n },\n heartbeat: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"heartbeat.lua\"]\n },\n update_settings: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"update_settings.lua\"]\n },\n running: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"running.lua\"]\n },\n queued: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\"],\n refresh_expiration: false,\n code: lua[\"queued.lua\"]\n },\n done: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"done.lua\"]\n },\n check: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: false,\n code: lua[\"check.lua\"]\n },\n submit: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: true,\n code: lua[\"submit.lua\"]\n },\n register: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: true,\n code: lua[\"register.lua\"]\n },\n free: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"free.lua\"]\n },\n current_reservoir: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"current_reservoir.lua\"]\n },\n increment_reservoir: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"increment_reservoir.lua\"]\n }\n};\nexports.names = Object.keys(templates);\n\nexports.keys = function (name, id) {\n return templates[name].keys(id);\n};\n\nexports.payload = function (name) {\n var template;\n template = templates[name];\n return Array.prototype.concat(headers.refs, template.headers.map(function (h) {\n return headers[h];\n }), template.refresh_expiration ? headers.refresh_expiration : \"\", template.code).join(\"\\n\");\n};","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, RedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nScripts = require(\"./Scripts\");\n\nRedisConnection = function () {\n class RedisConnection {\n constructor(options = {}) {\n parser.load(options, this.defaults, this);\n\n if (this.Redis == null) {\n this.Redis = eval(\"require\")(\"redis\"); // Obfuscated or else Webpack/Angular will try to inline the optional redis module. To override this behavior: pass the redis module to Bottleneck as the 'Redis' option.\n }\n\n if (this.Events == null) {\n this.Events = new Events(this);\n }\n\n this.terminated = false;\n\n if (this.client == null) {\n this.client = this.Redis.createClient(this.clientOptions);\n }\n\n this.subscriber = this.client.duplicate();\n this.limiters = {};\n this.shas = {};\n this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => {\n return this._loadScripts();\n }).then(() => {\n return {\n client: this.client,\n subscriber: this.subscriber\n };\n });\n }\n\n _setup(client, sub) {\n client.setMaxListeners(0);\n return new this.Promise((resolve, reject) => {\n client.on(\"error\", e => {\n return this.Events.trigger(\"error\", e);\n });\n\n if (sub) {\n client.on(\"message\", (channel, message) => {\n var ref;\n return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0;\n });\n }\n\n if (client.ready) {\n return resolve();\n } else {\n return client.once(\"ready\", resolve);\n }\n });\n }\n\n _loadScript(name) {\n return new this.Promise((resolve, reject) => {\n var payload;\n payload = Scripts.payload(name);\n return this.client.multi([[\"script\", \"load\", payload]]).exec((err, replies) => {\n if (err != null) {\n return reject(err);\n }\n\n this.shas[name] = replies[0];\n return resolve(replies[0]);\n });\n });\n }\n\n _loadScripts() {\n return this.Promise.all(Scripts.names.map(k => {\n return this._loadScript(k);\n }));\n }\n\n __runCommand__(cmd) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n yield _this.ready;\n return new _this.Promise((resolve, reject) => {\n return _this.client.multi([cmd]).exec_atomic(function (err, replies) {\n if (err != null) {\n return reject(err);\n } else {\n return resolve(replies[0]);\n }\n });\n });\n })();\n }\n\n __addLimiter__(instance) {\n return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => {\n return new this.Promise((resolve, reject) => {\n var handler;\n\n handler = chan => {\n if (chan === channel) {\n this.subscriber.removeListener(\"subscribe\", handler);\n this.limiters[channel] = instance;\n return resolve();\n }\n };\n\n this.subscriber.on(\"subscribe\", handler);\n return this.subscriber.subscribe(channel);\n });\n }));\n }\n\n __removeLimiter__(instance) {\n var _this2 = this;\n\n return this.Promise.all([instance.channel(), instance.channel_client()].map(\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(function* (channel) {\n if (!_this2.terminated) {\n yield new _this2.Promise((resolve, reject) => {\n return _this2.subscriber.unsubscribe(channel, function (err, chan) {\n if (err != null) {\n return reject(err);\n }\n\n if (chan === channel) {\n return resolve();\n }\n });\n });\n }\n\n return delete _this2.limiters[channel];\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()));\n }\n\n __scriptArgs__(name, id, args, cb) {\n var keys;\n keys = Scripts.keys(name, id);\n return [this.shas[name], keys.length].concat(keys, args, cb);\n }\n\n __scriptFn__(name) {\n return this.client.evalsha.bind(this.client);\n }\n\n disconnect(flush = true) {\n var i, k, len, ref;\n ref = Object.keys(this.limiters);\n\n for (i = 0, len = ref.length; i < len; i++) {\n k = ref[i];\n clearInterval(this.limiters[k]._store.heartbeat);\n }\n\n this.limiters = {};\n this.terminated = true;\n this.client.end(flush);\n this.subscriber.end(flush);\n return this.Promise.resolve();\n }\n\n }\n\n ;\n RedisConnection.prototype.datastore = \"redis\";\n RedisConnection.prototype.defaults = {\n Redis: null,\n clientOptions: {},\n client: null,\n Promise: Promise,\n Events: null\n };\n return RedisConnection;\n}.call(void 0);\n\nmodule.exports = RedisConnection;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, IORedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nScripts = require(\"./Scripts\");\n\nIORedisConnection = function () {\n class IORedisConnection {\n constructor(options = {}) {\n parser.load(options, this.defaults, this);\n\n if (this.Redis == null) {\n this.Redis = eval(\"require\")(\"ioredis\"); // Obfuscated or else Webpack/Angular will try to inline the optional ioredis module. To override this behavior: pass the ioredis module to Bottleneck as the 'Redis' option.\n }\n\n if (this.Events == null) {\n this.Events = new Events(this);\n }\n\n this.terminated = false;\n\n if (this.clusterNodes != null) {\n this.client = new this.Redis.Cluster(this.clusterNodes, this.clientOptions);\n this.subscriber = new this.Redis.Cluster(this.clusterNodes, this.clientOptions);\n } else if (this.client != null && this.client.duplicate == null) {\n this.subscriber = new this.Redis.Cluster(this.client.startupNodes, this.client.options);\n } else {\n if (this.client == null) {\n this.client = new this.Redis(this.clientOptions);\n }\n\n this.subscriber = this.client.duplicate();\n }\n\n this.limiters = {};\n this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => {\n this._loadScripts();\n\n return {\n client: this.client,\n subscriber: this.subscriber\n };\n });\n }\n\n _setup(client, sub) {\n client.setMaxListeners(0);\n return new this.Promise((resolve, reject) => {\n client.on(\"error\", e => {\n return this.Events.trigger(\"error\", e);\n });\n\n if (sub) {\n client.on(\"message\", (channel, message) => {\n var ref;\n return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0;\n });\n }\n\n if (client.status === \"ready\") {\n return resolve();\n } else {\n return client.once(\"ready\", resolve);\n }\n });\n }\n\n _loadScripts() {\n return Scripts.names.forEach(name => {\n return this.client.defineCommand(name, {\n lua: Scripts.payload(name)\n });\n });\n }\n\n __runCommand__(cmd) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var _, deleted;\n\n yield _this.ready;\n\n var _ref = yield _this.client.pipeline([cmd]).exec();\n\n var _ref2 = _slicedToArray(_ref, 1);\n\n var _ref2$ = _slicedToArray(_ref2[0], 2);\n\n _ = _ref2$[0];\n deleted = _ref2$[1];\n return deleted;\n })();\n }\n\n __addLimiter__(instance) {\n return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => {\n return new this.Promise((resolve, reject) => {\n return this.subscriber.subscribe(channel, () => {\n this.limiters[channel] = instance;\n return resolve();\n });\n });\n }));\n }\n\n __removeLimiter__(instance) {\n var _this2 = this;\n\n return [instance.channel(), instance.channel_client()].forEach(\n /*#__PURE__*/\n function () {\n var _ref3 = _asyncToGenerator(function* (channel) {\n if (!_this2.terminated) {\n yield _this2.subscriber.unsubscribe(channel);\n }\n\n return delete _this2.limiters[channel];\n });\n\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }());\n }\n\n __scriptArgs__(name, id, args, cb) {\n var keys;\n keys = Scripts.keys(name, id);\n return [keys.length].concat(keys, args, cb);\n }\n\n __scriptFn__(name) {\n return this.client[name].bind(this.client);\n }\n\n disconnect(flush = true) {\n var i, k, len, ref;\n ref = Object.keys(this.limiters);\n\n for (i = 0, len = ref.length; i < len; i++) {\n k = ref[i];\n clearInterval(this.limiters[k]._store.heartbeat);\n }\n\n this.limiters = {};\n this.terminated = true;\n\n if (flush) {\n return this.Promise.all([this.client.quit(), this.subscriber.quit()]);\n } else {\n this.client.disconnect();\n this.subscriber.disconnect();\n return this.Promise.resolve();\n }\n }\n\n }\n\n ;\n IORedisConnection.prototype.datastore = \"ioredis\";\n IORedisConnection.prototype.defaults = {\n Redis: null,\n clientOptions: {},\n clusterNodes: null,\n client: null,\n Promise: Promise,\n Events: null\n };\n return IORedisConnection;\n}.call(void 0);\n\nmodule.exports = IORedisConnection;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, IORedisConnection, RedisConnection, RedisDatastore, parser;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nRedisConnection = require(\"./RedisConnection\");\nIORedisConnection = require(\"./IORedisConnection\");\nRedisDatastore = class RedisDatastore {\n constructor(instance, storeOptions, storeInstanceOptions) {\n this.instance = instance;\n this.storeOptions = storeOptions;\n this.originalId = this.instance.id;\n this.clientId = this.instance._randomIndex();\n parser.load(storeInstanceOptions, storeInstanceOptions, this);\n this.clients = {};\n this.capacityPriorityCounters = {};\n this.sharedConnection = this.connection != null;\n\n if (this.connection == null) {\n this.connection = this.instance.datastore === \"redis\" ? new RedisConnection({\n Redis: this.Redis,\n clientOptions: this.clientOptions,\n Promise: this.Promise,\n Events: this.instance.Events\n }) : this.instance.datastore === \"ioredis\" ? new IORedisConnection({\n Redis: this.Redis,\n clientOptions: this.clientOptions,\n clusterNodes: this.clusterNodes,\n Promise: this.Promise,\n Events: this.instance.Events\n }) : void 0;\n }\n\n this.instance.connection = this.connection;\n this.instance.datastore = this.connection.datastore;\n this.ready = this.connection.ready.then(clients => {\n this.clients = clients;\n return this.runScript(\"init\", this.prepareInitSettings(this.clearDatastore));\n }).then(() => {\n return this.connection.__addLimiter__(this.instance);\n }).then(() => {\n return this.runScript(\"register_client\", [this.instance.queued()]);\n }).then(() => {\n var base;\n\n if (typeof (base = this.heartbeat = setInterval(() => {\n return this.runScript(\"heartbeat\", []).catch(e => {\n return this.instance.Events.trigger(\"error\", e);\n });\n }, this.heartbeatInterval)).unref === \"function\") {\n base.unref();\n }\n\n return this.clients;\n });\n }\n\n __publish__(message) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var client;\n\n var _ref = yield _this.ready;\n\n client = _ref.client;\n return client.publish(_this.instance.channel(), `message:${message.toString()}`);\n })();\n }\n\n onMessage(channel, message) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var capacity, counter, data, drained, e, newCapacity, pos, priorityClient, rawCapacity, type;\n\n try {\n pos = message.indexOf(\":\");\n var _ref2 = [message.slice(0, pos), message.slice(pos + 1)];\n type = _ref2[0];\n data = _ref2[1];\n\n if (type === \"capacity\") {\n return yield _this2.instance._drainAll(data.length > 0 ? ~~data : void 0);\n } else if (type === \"capacity-priority\") {\n var _data$split = data.split(\":\");\n\n var _data$split2 = _slicedToArray(_data$split, 3);\n\n rawCapacity = _data$split2[0];\n priorityClient = _data$split2[1];\n counter = _data$split2[2];\n capacity = rawCapacity.length > 0 ? ~~rawCapacity : void 0;\n\n if (priorityClient === _this2.clientId) {\n drained = yield _this2.instance._drainAll(capacity);\n newCapacity = capacity != null ? capacity - (drained || 0) : \"\";\n return yield _this2.clients.client.publish(_this2.instance.channel(), `capacity-priority:${newCapacity}::${counter}`);\n } else if (priorityClient === \"\") {\n clearTimeout(_this2.capacityPriorityCounters[counter]);\n delete _this2.capacityPriorityCounters[counter];\n return _this2.instance._drainAll(capacity);\n } else {\n return _this2.capacityPriorityCounters[counter] = setTimeout(\n /*#__PURE__*/\n _asyncToGenerator(function* () {\n var e;\n\n try {\n delete _this2.capacityPriorityCounters[counter];\n yield _this2.runScript(\"blacklist_client\", [priorityClient]);\n return yield _this2.instance._drainAll(capacity);\n } catch (error) {\n e = error;\n return _this2.instance.Events.trigger(\"error\", e);\n }\n }), 1000);\n }\n } else if (type === \"message\") {\n return _this2.instance.Events.trigger(\"message\", data);\n } else if (type === \"blocked\") {\n return yield _this2.instance._dropAllQueued();\n }\n } catch (error) {\n e = error;\n return _this2.instance.Events.trigger(\"error\", e);\n }\n })();\n }\n\n __disconnect__(flush) {\n clearInterval(this.heartbeat);\n\n if (this.sharedConnection) {\n return this.connection.__removeLimiter__(this.instance);\n } else {\n return this.connection.disconnect(flush);\n }\n }\n\n runScript(name, args) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n if (!(name === \"init\" || name === \"register_client\")) {\n yield _this3.ready;\n }\n\n return new _this3.Promise((resolve, reject) => {\n var all_args, arr;\n all_args = [Date.now(), _this3.clientId].concat(args);\n\n _this3.instance.Events.trigger(\"debug\", `Calling Redis script: ${name}.lua`, all_args);\n\n arr = _this3.connection.__scriptArgs__(name, _this3.originalId, all_args, function (err, replies) {\n if (err != null) {\n return reject(err);\n }\n\n return resolve(replies);\n });\n return _this3.connection.__scriptFn__(name)(...arr);\n }).catch(e => {\n if (e.message === \"SETTINGS_KEY_NOT_FOUND\") {\n if (name === \"heartbeat\") {\n return _this3.Promise.resolve();\n } else {\n return _this3.runScript(\"init\", _this3.prepareInitSettings(false)).then(() => {\n return _this3.runScript(name, args);\n });\n }\n } else if (e.message === \"UNKNOWN_CLIENT\") {\n return _this3.runScript(\"register_client\", [_this3.instance.queued()]).then(() => {\n return _this3.runScript(name, args);\n });\n } else {\n return _this3.Promise.reject(e);\n }\n });\n })();\n }\n\n prepareArray(arr) {\n var i, len, results, x;\n results = [];\n\n for (i = 0, len = arr.length; i < len; i++) {\n x = arr[i];\n results.push(x != null ? x.toString() : \"\");\n }\n\n return results;\n }\n\n prepareObject(obj) {\n var arr, k, v;\n arr = [];\n\n for (k in obj) {\n v = obj[k];\n arr.push(k, v != null ? v.toString() : \"\");\n }\n\n return arr;\n }\n\n prepareInitSettings(clear) {\n var args;\n args = this.prepareObject(Object.assign({}, this.storeOptions, {\n id: this.originalId,\n version: this.instance.version,\n groupTimeout: this.timeout,\n clientTimeout: this.clientTimeout\n }));\n args.unshift(clear ? 1 : 0, this.instance.version);\n return args;\n }\n\n convertBool(b) {\n return !!b;\n }\n\n __updateSettings__(options) {\n var _this4 = this;\n\n return _asyncToGenerator(function* () {\n yield _this4.runScript(\"update_settings\", _this4.prepareObject(options));\n return parser.overwrite(options, options, _this4.storeOptions);\n })();\n }\n\n __running__() {\n return this.runScript(\"running\", []);\n }\n\n __queued__() {\n return this.runScript(\"queued\", []);\n }\n\n __done__() {\n return this.runScript(\"done\", []);\n }\n\n __groupCheck__() {\n var _this5 = this;\n\n return _asyncToGenerator(function* () {\n return _this5.convertBool((yield _this5.runScript(\"group_check\", [])));\n })();\n }\n\n __incrementReservoir__(incr) {\n return this.runScript(\"increment_reservoir\", [incr]);\n }\n\n __currentReservoir__() {\n return this.runScript(\"current_reservoir\", []);\n }\n\n __check__(weight) {\n var _this6 = this;\n\n return _asyncToGenerator(function* () {\n return _this6.convertBool((yield _this6.runScript(\"check\", _this6.prepareArray([weight]))));\n })();\n }\n\n __register__(index, weight, expiration) {\n var _this7 = this;\n\n return _asyncToGenerator(function* () {\n var reservoir, success, wait;\n\n var _ref4 = yield _this7.runScript(\"register\", _this7.prepareArray([index, weight, expiration]));\n\n var _ref5 = _slicedToArray(_ref4, 3);\n\n success = _ref5[0];\n wait = _ref5[1];\n reservoir = _ref5[2];\n return {\n success: _this7.convertBool(success),\n wait,\n reservoir\n };\n })();\n }\n\n __submit__(queueLength, weight) {\n var _this8 = this;\n\n return _asyncToGenerator(function* () {\n var blocked, e, maxConcurrent, overweight, reachedHWM, strategy;\n\n try {\n var _ref6 = yield _this8.runScript(\"submit\", _this8.prepareArray([queueLength, weight]));\n\n var _ref7 = _slicedToArray(_ref6, 3);\n\n reachedHWM = _ref7[0];\n blocked = _ref7[1];\n strategy = _ref7[2];\n return {\n reachedHWM: _this8.convertBool(reachedHWM),\n blocked: _this8.convertBool(blocked),\n strategy\n };\n } catch (error) {\n e = error;\n\n if (e.message.indexOf(\"OVERWEIGHT\") === 0) {\n var _e$message$split = e.message.split(\":\");\n\n var _e$message$split2 = _slicedToArray(_e$message$split, 3);\n\n overweight = _e$message$split2[0];\n weight = _e$message$split2[1];\n maxConcurrent = _e$message$split2[2];\n throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${maxConcurrent}`);\n } else {\n throw e;\n }\n }\n })();\n }\n\n __free__(index, weight) {\n var _this9 = this;\n\n return _asyncToGenerator(function* () {\n var running;\n running = yield _this9.runScript(\"free\", _this9.prepareArray([index]));\n return {\n running\n };\n })();\n }\n\n};\nmodule.exports = RedisDatastore;","\"use strict\";\n\nvar BottleneckError, States;\nBottleneckError = require(\"./BottleneckError\");\nStates = class States {\n constructor(status1) {\n this.status = status1;\n this._jobs = {};\n this.counts = this.status.map(function () {\n return 0;\n });\n }\n\n next(id) {\n var current, next;\n current = this._jobs[id];\n next = current + 1;\n\n if (current != null && next < this.status.length) {\n this.counts[current]--;\n this.counts[next]++;\n return this._jobs[id]++;\n } else if (current != null) {\n this.counts[current]--;\n return delete this._jobs[id];\n }\n }\n\n start(id) {\n var initial;\n initial = 0;\n this._jobs[id] = initial;\n return this.counts[initial]++;\n }\n\n remove(id) {\n var current;\n current = this._jobs[id];\n\n if (current != null) {\n this.counts[current]--;\n delete this._jobs[id];\n }\n\n return current != null;\n }\n\n jobStatus(id) {\n var ref;\n return (ref = this.status[this._jobs[id]]) != null ? ref : null;\n }\n\n statusJobs(status) {\n var k, pos, ref, results, v;\n\n if (status != null) {\n pos = this.status.indexOf(status);\n\n if (pos < 0) {\n throw new BottleneckError(`status must be one of ${this.status.join(', ')}`);\n }\n\n ref = this._jobs;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n\n if (v === pos) {\n results.push(k);\n }\n }\n\n return results;\n } else {\n return Object.keys(this._jobs);\n }\n }\n\n statusCounts() {\n return this.counts.reduce((acc, v, i) => {\n acc[this.status[i]] = v;\n return acc;\n }, {});\n }\n\n};\nmodule.exports = States;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar DLList, Sync;\nDLList = require(\"./DLList\");\nSync = class Sync {\n constructor(name, Promise) {\n this.schedule = this.schedule.bind(this);\n this.name = name;\n this.Promise = Promise;\n this._running = 0;\n this._queue = new DLList();\n }\n\n isEmpty() {\n return this._queue.length === 0;\n }\n\n _tryToRun() {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var args, cb, error, reject, resolve, returned, task;\n\n if (_this._running < 1 && _this._queue.length > 0) {\n _this._running++;\n\n var _this$_queue$shift = _this._queue.shift();\n\n task = _this$_queue$shift.task;\n args = _this$_queue$shift.args;\n resolve = _this$_queue$shift.resolve;\n reject = _this$_queue$shift.reject;\n cb = yield _asyncToGenerator(function* () {\n try {\n returned = yield task(...args);\n return function () {\n return resolve(returned);\n };\n } catch (error1) {\n error = error1;\n return function () {\n return reject(error);\n };\n }\n })();\n _this._running--;\n\n _this._tryToRun();\n\n return cb();\n }\n })();\n }\n\n schedule(task, ...args) {\n var promise, reject, resolve;\n resolve = reject = null;\n promise = new this.Promise(function (_resolve, _reject) {\n resolve = _resolve;\n return reject = _reject;\n });\n\n this._queue.push({\n task,\n args,\n resolve,\n reject\n });\n\n this._tryToRun();\n\n return promise;\n }\n\n};\nmodule.exports = Sync;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, Group, IORedisConnection, RedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nRedisConnection = require(\"./RedisConnection\");\nIORedisConnection = require(\"./IORedisConnection\");\nScripts = require(\"./Scripts\");\n\nGroup = function () {\n class Group {\n constructor(limiterOptions = {}) {\n this.deleteKey = this.deleteKey.bind(this);\n this.limiterOptions = limiterOptions;\n parser.load(this.limiterOptions, this.defaults, this);\n this.Events = new Events(this);\n this.instances = {};\n this.Bottleneck = require(\"./Bottleneck\");\n\n this._startAutoCleanup();\n\n this.sharedConnection = this.connection != null;\n\n if (this.connection == null) {\n if (this.limiterOptions.datastore === \"redis\") {\n this.connection = new RedisConnection(Object.assign({}, this.limiterOptions, {\n Events: this.Events\n }));\n } else if (this.limiterOptions.datastore === \"ioredis\") {\n this.connection = new IORedisConnection(Object.assign({}, this.limiterOptions, {\n Events: this.Events\n }));\n }\n }\n }\n\n key(key = \"\") {\n var ref;\n return (ref = this.instances[key]) != null ? ref : (() => {\n var limiter;\n limiter = this.instances[key] = new this.Bottleneck(Object.assign(this.limiterOptions, {\n id: `${this.id}-${key}`,\n timeout: this.timeout,\n connection: this.connection\n }));\n this.Events.trigger(\"created\", limiter, key);\n return limiter;\n })();\n }\n\n deleteKey(key = \"\") {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var deleted, instance;\n instance = _this.instances[key];\n\n if (_this.connection) {\n deleted = yield _this.connection.__runCommand__(['del', ...Scripts.allKeys(`${_this.id}-${key}`)]);\n }\n\n if (instance != null) {\n delete _this.instances[key];\n yield instance.disconnect();\n }\n\n return instance != null || deleted > 0;\n })();\n }\n\n limiters() {\n var k, ref, results, v;\n ref = this.instances;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n results.push({\n key: k,\n limiter: v\n });\n }\n\n return results;\n }\n\n keys() {\n return Object.keys(this.instances);\n }\n\n clusterKeys() {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var cursor, end, found, i, k, keys, len, next, start;\n\n if (_this2.connection == null) {\n return _this2.Promise.resolve(_this2.keys());\n }\n\n keys = [];\n cursor = null;\n start = `b_${_this2.id}-`.length;\n end = \"_settings\".length;\n\n while (cursor !== 0) {\n var _ref = yield _this2.connection.__runCommand__([\"scan\", cursor != null ? cursor : 0, \"match\", `b_${_this2.id}-*_settings`, \"count\", 10000]);\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n next = _ref2[0];\n found = _ref2[1];\n cursor = ~~next;\n\n for (i = 0, len = found.length; i < len; i++) {\n k = found[i];\n keys.push(k.slice(start, -end));\n }\n }\n\n return keys;\n })();\n }\n\n _startAutoCleanup() {\n var _this3 = this;\n\n var base;\n clearInterval(this.interval);\n return typeof (base = this.interval = setInterval(\n /*#__PURE__*/\n _asyncToGenerator(function* () {\n var e, k, ref, results, time, v;\n time = Date.now();\n ref = _this3.instances;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n\n try {\n if (yield v._store.__groupCheck__(time)) {\n results.push(_this3.deleteKey(k));\n } else {\n results.push(void 0);\n }\n } catch (error) {\n e = error;\n results.push(v.Events.trigger(\"error\", e));\n }\n }\n\n return results;\n }), this.timeout / 2)).unref === \"function\" ? base.unref() : void 0;\n }\n\n updateSettings(options = {}) {\n parser.overwrite(options, this.defaults, this);\n parser.overwrite(options, options, this.limiterOptions);\n\n if (options.timeout != null) {\n return this._startAutoCleanup();\n }\n }\n\n disconnect(flush = true) {\n var ref;\n\n if (!this.sharedConnection) {\n return (ref = this.connection) != null ? ref.disconnect(flush) : void 0;\n }\n }\n\n }\n\n ;\n Group.prototype.defaults = {\n timeout: 1000 * 60 * 5,\n connection: null,\n Promise: Promise,\n id: \"group-key\"\n };\n return Group;\n}.call(void 0);\n\nmodule.exports = Group;","\"use strict\";\n\nvar Batcher, Events, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\n\nBatcher = function () {\n class Batcher {\n constructor(options = {}) {\n this.options = options;\n parser.load(this.options, this.defaults, this);\n this.Events = new Events(this);\n this._arr = [];\n\n this._resetPromise();\n\n this._lastFlush = Date.now();\n }\n\n _resetPromise() {\n return this._promise = new this.Promise((res, rej) => {\n return this._resolve = res;\n });\n }\n\n _flush() {\n clearTimeout(this._timeout);\n this._lastFlush = Date.now();\n\n this._resolve();\n\n this.Events.trigger(\"batch\", this._arr);\n this._arr = [];\n return this._resetPromise();\n }\n\n add(data) {\n var ret;\n\n this._arr.push(data);\n\n ret = this._promise;\n\n if (this._arr.length === this.maxSize) {\n this._flush();\n } else if (this.maxTime != null && this._arr.length === 1) {\n this._timeout = setTimeout(() => {\n return this._flush();\n }, this.maxTime);\n }\n\n return ret;\n }\n\n }\n\n ;\n Batcher.prototype.defaults = {\n maxTime: null,\n maxSize: null,\n Promise: Promise\n };\n return Batcher;\n}.call(void 0);\n\nmodule.exports = Batcher;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Bottleneck,\n DEFAULT_PRIORITY,\n Events,\n Job,\n LocalDatastore,\n NUM_PRIORITIES,\n Queues,\n RedisDatastore,\n States,\n Sync,\n parser,\n splice = [].splice;\nNUM_PRIORITIES = 10;\nDEFAULT_PRIORITY = 5;\nparser = require(\"./parser\");\nQueues = require(\"./Queues\");\nJob = require(\"./Job\");\nLocalDatastore = require(\"./LocalDatastore\");\nRedisDatastore = require(\"./RedisDatastore\");\nEvents = require(\"./Events\");\nStates = require(\"./States\");\nSync = require(\"./Sync\");\n\nBottleneck = function () {\n class Bottleneck {\n constructor(options = {}, ...invalid) {\n var storeInstanceOptions, storeOptions;\n this._addToQueue = this._addToQueue.bind(this);\n\n this._validateOptions(options, invalid);\n\n parser.load(options, this.instanceDefaults, this);\n this._queues = new Queues(NUM_PRIORITIES);\n this._scheduled = {};\n this._states = new States([\"RECEIVED\", \"QUEUED\", \"RUNNING\", \"EXECUTING\"].concat(this.trackDoneStatus ? [\"DONE\"] : []));\n this._limiter = null;\n this.Events = new Events(this);\n this._submitLock = new Sync(\"submit\", this.Promise);\n this._registerLock = new Sync(\"register\", this.Promise);\n storeOptions = parser.load(options, this.storeDefaults, {});\n\n this._store = function () {\n if (this.datastore === \"redis\" || this.datastore === \"ioredis\" || this.connection != null) {\n storeInstanceOptions = parser.load(options, this.redisStoreDefaults, {});\n return new RedisDatastore(this, storeOptions, storeInstanceOptions);\n } else if (this.datastore === \"local\") {\n storeInstanceOptions = parser.load(options, this.localStoreDefaults, {});\n return new LocalDatastore(this, storeOptions, storeInstanceOptions);\n } else {\n throw new Bottleneck.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`);\n }\n }.call(this);\n\n this._queues.on(\"leftzero\", () => {\n var ref;\n return (ref = this._store.heartbeat) != null ? typeof ref.ref === \"function\" ? ref.ref() : void 0 : void 0;\n });\n\n this._queues.on(\"zero\", () => {\n var ref;\n return (ref = this._store.heartbeat) != null ? typeof ref.unref === \"function\" ? ref.unref() : void 0 : void 0;\n });\n }\n\n _validateOptions(options, invalid) {\n if (!(options != null && typeof options === \"object\" && invalid.length === 0)) {\n throw new Bottleneck.prototype.BottleneckError(\"Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.\");\n }\n }\n\n ready() {\n return this._store.ready;\n }\n\n clients() {\n return this._store.clients;\n }\n\n channel() {\n return `b_${this.id}`;\n }\n\n channel_client() {\n return `b_${this.id}_${this._store.clientId}`;\n }\n\n publish(message) {\n return this._store.__publish__(message);\n }\n\n disconnect(flush = true) {\n return this._store.__disconnect__(flush);\n }\n\n chain(_limiter) {\n this._limiter = _limiter;\n return this;\n }\n\n queued(priority) {\n return this._queues.queued(priority);\n }\n\n clusterQueued() {\n return this._store.__queued__();\n }\n\n empty() {\n return this.queued() === 0 && this._submitLock.isEmpty();\n }\n\n running() {\n return this._store.__running__();\n }\n\n done() {\n return this._store.__done__();\n }\n\n jobStatus(id) {\n return this._states.jobStatus(id);\n }\n\n jobs(status) {\n return this._states.statusJobs(status);\n }\n\n counts() {\n return this._states.statusCounts();\n }\n\n _randomIndex() {\n return Math.random().toString(36).slice(2);\n }\n\n check(weight = 1) {\n return this._store.__check__(weight);\n }\n\n _clearGlobalState(index) {\n if (this._scheduled[index] != null) {\n clearTimeout(this._scheduled[index].expiration);\n delete this._scheduled[index];\n return true;\n } else {\n return false;\n }\n }\n\n _free(index, job, options, eventInfo) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var e, running;\n\n try {\n var _ref = yield _this._store.__free__(index, options.weight);\n\n running = _ref.running;\n\n _this.Events.trigger(\"debug\", `Freed ${options.id}`, eventInfo);\n\n if (running === 0 && _this.empty()) {\n return _this.Events.trigger(\"idle\");\n }\n } catch (error1) {\n e = error1;\n return _this.Events.trigger(\"error\", e);\n }\n })();\n }\n\n _run(index, job, wait) {\n var clearGlobalState, free, run;\n job.doRun();\n clearGlobalState = this._clearGlobalState.bind(this, index);\n run = this._run.bind(this, index, job);\n free = this._free.bind(this, index, job);\n return this._scheduled[index] = {\n timeout: setTimeout(() => {\n return job.doExecute(this._limiter, clearGlobalState, run, free);\n }, wait),\n expiration: job.options.expiration != null ? setTimeout(function () {\n return job.doExpire(clearGlobalState, run, free);\n }, wait + job.options.expiration) : void 0,\n job: job\n };\n }\n\n _drainOne(capacity) {\n return this._registerLock.schedule(() => {\n var args, index, next, options, queue;\n\n if (this.queued() === 0) {\n return this.Promise.resolve(null);\n }\n\n queue = this._queues.getFirst();\n\n var _next2 = next = queue.first();\n\n options = _next2.options;\n args = _next2.args;\n\n if (capacity != null && options.weight > capacity) {\n return this.Promise.resolve(null);\n }\n\n this.Events.trigger(\"debug\", `Draining ${options.id}`, {\n args,\n options\n });\n index = this._randomIndex();\n return this._store.__register__(index, options.weight, options.expiration).then(({\n success,\n wait,\n reservoir\n }) => {\n var empty;\n this.Events.trigger(\"debug\", `Drained ${options.id}`, {\n success,\n args,\n options\n });\n\n if (success) {\n queue.shift();\n empty = this.empty();\n\n if (empty) {\n this.Events.trigger(\"empty\");\n }\n\n if (reservoir === 0) {\n this.Events.trigger(\"depleted\", empty);\n }\n\n this._run(index, next, wait);\n\n return this.Promise.resolve(options.weight);\n } else {\n return this.Promise.resolve(null);\n }\n });\n });\n }\n\n _drainAll(capacity, total = 0) {\n return this._drainOne(capacity).then(drained => {\n var newCapacity;\n\n if (drained != null) {\n newCapacity = capacity != null ? capacity - drained : capacity;\n return this._drainAll(newCapacity, total + drained);\n } else {\n return this.Promise.resolve(total);\n }\n }).catch(e => {\n return this.Events.trigger(\"error\", e);\n });\n }\n\n _dropAllQueued(message) {\n return this._queues.shiftAll(function (job) {\n return job.doDrop({\n message\n });\n });\n }\n\n stop(options = {}) {\n var done, waitForExecuting;\n options = parser.load(options, this.stopDefaults);\n\n waitForExecuting = at => {\n var finished;\n\n finished = () => {\n var counts;\n counts = this._states.counts;\n return counts[0] + counts[1] + counts[2] + counts[3] === at;\n };\n\n return new this.Promise((resolve, reject) => {\n if (finished()) {\n return resolve();\n } else {\n return this.on(\"done\", () => {\n if (finished()) {\n this.removeAllListeners(\"done\");\n return resolve();\n }\n });\n }\n });\n };\n\n done = options.dropWaitingJobs ? (this._run = function (index, next) {\n return next.doDrop({\n message: options.dropErrorMessage\n });\n }, this._drainOne = () => {\n return this.Promise.resolve(null);\n }, this._registerLock.schedule(() => {\n return this._submitLock.schedule(() => {\n var k, ref, v;\n ref = this._scheduled;\n\n for (k in ref) {\n v = ref[k];\n\n if (this.jobStatus(v.job.options.id) === \"RUNNING\") {\n clearTimeout(v.timeout);\n clearTimeout(v.expiration);\n v.job.doDrop({\n message: options.dropErrorMessage\n });\n }\n }\n\n this._dropAllQueued(options.dropErrorMessage);\n\n return waitForExecuting(0);\n });\n })) : this.schedule({\n priority: NUM_PRIORITIES - 1,\n weight: 0\n }, () => {\n return waitForExecuting(1);\n });\n\n this._receive = function (job) {\n return job._reject(new Bottleneck.prototype.BottleneckError(options.enqueueErrorMessage));\n };\n\n this.stop = () => {\n return this.Promise.reject(new Bottleneck.prototype.BottleneckError(\"stop() has already been called\"));\n };\n\n return done;\n }\n\n _addToQueue(job) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var args, blocked, error, options, reachedHWM, shifted, strategy;\n args = job.args;\n options = job.options;\n\n try {\n var _ref2 = yield _this2._store.__submit__(_this2.queued(), options.weight);\n\n reachedHWM = _ref2.reachedHWM;\n blocked = _ref2.blocked;\n strategy = _ref2.strategy;\n } catch (error1) {\n error = error1;\n\n _this2.Events.trigger(\"debug\", `Could not queue ${options.id}`, {\n args,\n options,\n error\n });\n\n job.doDrop({\n error\n });\n return false;\n }\n\n if (blocked) {\n job.doDrop();\n return true;\n } else if (reachedHWM) {\n shifted = strategy === Bottleneck.prototype.strategy.LEAK ? _this2._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? _this2._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0;\n\n if (shifted != null) {\n shifted.doDrop();\n }\n\n if (shifted == null || strategy === Bottleneck.prototype.strategy.OVERFLOW) {\n if (shifted == null) {\n job.doDrop();\n }\n\n return reachedHWM;\n }\n }\n\n job.doQueue(reachedHWM, blocked);\n\n _this2._queues.push(job);\n\n yield _this2._drainAll();\n return reachedHWM;\n })();\n }\n\n _receive(job) {\n if (this._states.jobStatus(job.options.id) != null) {\n job._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${job.options.id})`));\n\n return false;\n } else {\n job.doReceive();\n return this._submitLock.schedule(this._addToQueue, job);\n }\n }\n\n submit(...args) {\n var cb, fn, job, options, ref, ref1, task;\n\n if (typeof args[0] === \"function\") {\n var _ref3, _ref4, _splice$call, _splice$call2;\n\n ref = args, (_ref3 = ref, _ref4 = _toArray(_ref3), fn = _ref4[0], args = _ref4.slice(1), _ref3), (_splice$call = splice.call(args, -1), _splice$call2 = _slicedToArray(_splice$call, 1), cb = _splice$call2[0], _splice$call);\n options = parser.load({}, this.jobDefaults);\n } else {\n var _ref5, _ref6, _splice$call3, _splice$call4;\n\n ref1 = args, (_ref5 = ref1, _ref6 = _toArray(_ref5), options = _ref6[0], fn = _ref6[1], args = _ref6.slice(2), _ref5), (_splice$call3 = splice.call(args, -1), _splice$call4 = _slicedToArray(_splice$call3, 1), cb = _splice$call4[0], _splice$call3);\n options = parser.load(options, this.jobDefaults);\n }\n\n task = (...args) => {\n return new this.Promise(function (resolve, reject) {\n return fn(...args, function (...args) {\n return (args[0] != null ? reject : resolve)(args);\n });\n });\n };\n\n job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise);\n job.promise.then(function (args) {\n return typeof cb === \"function\" ? cb(...args) : void 0;\n }).catch(function (args) {\n if (Array.isArray(args)) {\n return typeof cb === \"function\" ? cb(...args) : void 0;\n } else {\n return typeof cb === \"function\" ? cb(args) : void 0;\n }\n });\n return this._receive(job);\n }\n\n schedule(...args) {\n var job, options, task;\n\n if (typeof args[0] === \"function\") {\n var _args = args;\n\n var _args2 = _toArray(_args);\n\n task = _args2[0];\n args = _args2.slice(1);\n options = {};\n } else {\n var _args3 = args;\n\n var _args4 = _toArray(_args3);\n\n options = _args4[0];\n task = _args4[1];\n args = _args4.slice(2);\n }\n\n job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise);\n\n this._receive(job);\n\n return job.promise;\n }\n\n wrap(fn) {\n var schedule, wrapped;\n schedule = this.schedule.bind(this);\n\n wrapped = function wrapped(...args) {\n return schedule(fn.bind(this), ...args);\n };\n\n wrapped.withOptions = function (options, ...args) {\n return schedule(options, fn, ...args);\n };\n\n return wrapped;\n }\n\n updateSettings(options = {}) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n yield _this3._store.__updateSettings__(parser.overwrite(options, _this3.storeDefaults));\n parser.overwrite(options, _this3.instanceDefaults, _this3);\n return _this3;\n })();\n }\n\n currentReservoir() {\n return this._store.__currentReservoir__();\n }\n\n incrementReservoir(incr = 0) {\n return this._store.__incrementReservoir__(incr);\n }\n\n }\n\n ;\n Bottleneck.default = Bottleneck;\n Bottleneck.Events = Events;\n Bottleneck.version = Bottleneck.prototype.version = require(\"./version.json\").version;\n Bottleneck.strategy = Bottleneck.prototype.strategy = {\n LEAK: 1,\n OVERFLOW: 2,\n OVERFLOW_PRIORITY: 4,\n BLOCK: 3\n };\n Bottleneck.BottleneckError = Bottleneck.prototype.BottleneckError = require(\"./BottleneckError\");\n Bottleneck.Group = Bottleneck.prototype.Group = require(\"./Group\");\n Bottleneck.RedisConnection = Bottleneck.prototype.RedisConnection = require(\"./RedisConnection\");\n Bottleneck.IORedisConnection = Bottleneck.prototype.IORedisConnection = require(\"./IORedisConnection\");\n Bottleneck.Batcher = Bottleneck.prototype.Batcher = require(\"./Batcher\");\n Bottleneck.prototype.jobDefaults = {\n priority: DEFAULT_PRIORITY,\n weight: 1,\n expiration: null,\n id: \"\"\n };\n Bottleneck.prototype.storeDefaults = {\n maxConcurrent: null,\n minTime: 0,\n highWater: null,\n strategy: Bottleneck.prototype.strategy.LEAK,\n penalty: null,\n reservoir: null,\n reservoirRefreshInterval: null,\n reservoirRefreshAmount: null,\n reservoirIncreaseInterval: null,\n reservoirIncreaseAmount: null,\n reservoirIncreaseMaximum: null\n };\n Bottleneck.prototype.localStoreDefaults = {\n Promise: Promise,\n timeout: null,\n heartbeatInterval: 250\n };\n Bottleneck.prototype.redisStoreDefaults = {\n Promise: Promise,\n timeout: null,\n heartbeatInterval: 5000,\n clientTimeout: 10000,\n Redis: null,\n clientOptions: {},\n clusterNodes: null,\n clearDatastore: false,\n connection: null\n };\n Bottleneck.prototype.instanceDefaults = {\n datastore: \"local\",\n connection: null,\n id: \"\",\n rejectOnDrop: true,\n trackDoneStatus: false,\n Promise: Promise\n };\n Bottleneck.prototype.stopDefaults = {\n enqueueErrorMessage: \"This limiter has been stopped and cannot accept new jobs.\",\n dropWaitingJobs: true,\n dropErrorMessage: \"This limiter has been stopped.\"\n };\n return Bottleneck;\n}.call(void 0);\n\nmodule.exports = Bottleneck;","\"use strict\";\n\nmodule.exports = require(\"./Bottleneck\");","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","module.exports = require('util').inspect;\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar match = String.prototype.match;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\nvar toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('options \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n return String(obj);\n }\n if (typeof obj === 'bigint') {\n return String(obj) + 'n';\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = seen.slice();\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + String(obj.nodeName).toLowerCase();\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + xs.join(', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + ys.join(', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return String(s).replace(/\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = str.replace(/(['\\\\])/g, '\\\\$1').replace(/[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = Array(opts.indent + 1).join(' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: Array(depth + 1).join(baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + xs.join(',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ((/[^\\w$]/).test(key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n if (sideChannel.has(object)) {\n throw new RangeError('Cyclic object value');\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, true);\n var valueSideChannel = getSideChannel();\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","export default function(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)})}\n//# sourceMappingURL=unfetch.module.js.map\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nmodule.exports = punycode;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","import Stream from 'stream';\nimport http from 'http';\nimport Url from 'url';\nimport whatwgUrl from 'whatwg-url';\nimport https from 'https';\nimport zlib from 'zlib';\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nexport default fetch;\nexport { Headers, Request, Response, FetchError };\n","function r(m){return m && m.default || m;}\nmodule.exports = global.fetch = global.fetch || (\n\ttypeof process=='undefined' ? r(require('unfetch')) : (function(url, opts) {\n\t\treturn r(require('node-fetch'))(String(url).replace(/^\\/\\//g,'https://'), opts);\n\t})\n);\n",null,null,null,"'use strict';\n\nmodule.exports = {\n BINARY_TYPES: ['nodebuffer', 'arraybuffer', 'fragments'],\n GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n kStatusCode: Symbol('status-code'),\n kWebSocket: Symbol('websocket'),\n EMPTY_BUFFER: Buffer.alloc(0),\n NOOP: () => {}\n};\n","var fs = require('fs')\nvar path = require('path')\nvar os = require('os')\n\n// Workaround to fix webpack's build warnings: 'the request of a dependency is an expression'\nvar runtimeRequire = typeof __webpack_require__ === 'function' ? __non_webpack_require__ : require // eslint-disable-line\n\nvar vars = (process.config && process.config.variables) || {}\nvar prebuildsOnly = !!process.env.PREBUILDS_ONLY\nvar abi = process.versions.modules // TODO: support old node where this is undef\nvar runtime = isElectron() ? 'electron' : 'node'\nvar arch = os.arch()\nvar platform = os.platform()\nvar libc = process.env.LIBC || (isAlpine(platform) ? 'musl' : 'glibc')\nvar armv = process.env.ARM_VERSION || (arch === 'arm64' ? '8' : vars.arm_version) || ''\nvar uv = (process.versions.uv || '').split('.')[0]\n\nmodule.exports = load\n\nfunction load (dir) {\n return runtimeRequire(load.path(dir))\n}\n\nload.path = function (dir) {\n dir = path.resolve(dir || '.')\n\n try {\n var name = runtimeRequire(path.join(dir, 'package.json')).name.toUpperCase().replace(/-/g, '_')\n if (process.env[name + '_PREBUILD']) dir = process.env[name + '_PREBUILD']\n } catch (err) {}\n\n if (!prebuildsOnly) {\n var release = getFirst(path.join(dir, 'build/Release'), matchBuild)\n if (release) return release\n\n var debug = getFirst(path.join(dir, 'build/Debug'), matchBuild)\n if (debug) return debug\n }\n\n var prebuild = resolve(dir)\n if (prebuild) return prebuild\n\n var nearby = resolve(path.dirname(process.execPath))\n if (nearby) return nearby\n\n var target = [\n 'platform=' + platform,\n 'arch=' + arch,\n 'runtime=' + runtime,\n 'abi=' + abi,\n 'uv=' + uv,\n armv ? 'armv=' + armv : '',\n 'libc=' + libc,\n 'node=' + process.versions.node,\n (process.versions && process.versions.electron) ? 'electron=' + process.versions.electron : '',\n typeof __webpack_require__ === 'function' ? 'webpack=true' : '' // eslint-disable-line\n ].filter(Boolean).join(' ')\n\n throw new Error('No native build was found for ' + target + '\\n loaded from: ' + dir + '\\n')\n\n function resolve (dir) {\n // Find most specific flavor first\n var prebuilds = path.join(dir, 'prebuilds', platform + '-' + arch)\n var parsed = readdirSync(prebuilds).map(parseTags)\n var candidates = parsed.filter(matchTags(runtime, abi))\n var winner = candidates.sort(compareTags(runtime))[0]\n if (winner) return path.join(prebuilds, winner.file)\n }\n}\n\nfunction readdirSync (dir) {\n try {\n return fs.readdirSync(dir)\n } catch (err) {\n return []\n }\n}\n\nfunction getFirst (dir, filter) {\n var files = readdirSync(dir).filter(filter)\n return files[0] && path.join(dir, files[0])\n}\n\nfunction matchBuild (name) {\n return /\\.node$/.test(name)\n}\n\nfunction parseTags (file) {\n var arr = file.split('.')\n var extension = arr.pop()\n var tags = { file: file, specificity: 0 }\n\n if (extension !== 'node') return\n\n for (var i = 0; i < arr.length; i++) {\n var tag = arr[i]\n\n if (tag === 'node' || tag === 'electron' || tag === 'node-webkit') {\n tags.runtime = tag\n } else if (tag === 'napi') {\n tags.napi = true\n } else if (tag.slice(0, 3) === 'abi') {\n tags.abi = tag.slice(3)\n } else if (tag.slice(0, 2) === 'uv') {\n tags.uv = tag.slice(2)\n } else if (tag.slice(0, 4) === 'armv') {\n tags.armv = tag.slice(4)\n } else if (tag === 'glibc' || tag === 'musl') {\n tags.libc = tag\n } else {\n continue\n }\n\n tags.specificity++\n }\n\n return tags\n}\n\nfunction matchTags (runtime, abi) {\n return function (tags) {\n if (tags == null) return false\n if (tags.runtime !== runtime && !runtimeAgnostic(tags)) return false\n if (tags.abi !== abi && !tags.napi) return false\n if (tags.uv && tags.uv !== uv) return false\n if (tags.armv && tags.armv !== armv) return false\n if (tags.libc && tags.libc !== libc) return false\n\n return true\n }\n}\n\nfunction runtimeAgnostic (tags) {\n return tags.runtime === 'node' && tags.napi\n}\n\nfunction compareTags (runtime) {\n // Precedence: non-agnostic runtime, abi over napi, then by specificity.\n return function (a, b) {\n if (a.runtime !== b.runtime) {\n return a.runtime === runtime ? -1 : 1\n } else if (a.abi !== b.abi) {\n return a.abi ? -1 : 1\n } else if (a.specificity !== b.specificity) {\n return a.specificity > b.specificity ? -1 : 1\n } else {\n return 0\n }\n }\n}\n\nfunction isElectron () {\n if (process.versions && process.versions.electron) return true\n if (process.env.ELECTRON_RUN_AS_NODE) return true\n return typeof window !== 'undefined' && window.process && window.process.type === 'renderer'\n}\n\nfunction isAlpine (platform) {\n return platform === 'linux' && fs.existsSync('/etc/alpine-release')\n}\n\n// Exposed for unit tests\n// TODO: move to lib\nload.parseTags = parseTags\nload.matchTags = matchTags\nload.compareTags = compareTags\n","'use strict';\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nconst mask = (source, mask, output, offset, length) => {\n for (var i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n};\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nconst unmask = (buffer, mask) => {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (var i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n};\n\nmodule.exports = { mask, unmask };\n","'use strict';\n\ntry {\n module.exports = require('node-gyp-build')(__dirname);\n} catch (e) {\n module.exports = require('./fallback');\n}\n","'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n if (list.length === 0) return EMPTY_BUFFER;\n if (list.length === 1) return list[0];\n\n const target = Buffer.allocUnsafe(totalLength);\n let offset = 0;\n\n for (let i = 0; i < list.length; i++) {\n const buf = list[i];\n target.set(buf, offset);\n offset += buf.length;\n }\n\n if (offset < totalLength) return target.slice(0, offset);\n\n return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n for (let i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (let i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n if (buf.byteLength === buf.buffer.byteLength) {\n return buf.buffer;\n }\n\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n toBuffer.readOnly = true;\n\n if (Buffer.isBuffer(data)) return data;\n\n let buf;\n\n if (data instanceof ArrayBuffer) {\n buf = Buffer.from(data);\n } else if (ArrayBuffer.isView(data)) {\n buf = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n } else {\n buf = Buffer.from(data);\n toBuffer.readOnly = false;\n }\n\n return buf;\n}\n\ntry {\n const bufferUtil = require('bufferutil');\n const bu = bufferUtil.BufferUtil || bufferUtil;\n\n module.exports = {\n concat,\n mask(source, mask, output, offset, length) {\n if (length < 48) _mask(source, mask, output, offset, length);\n else bu.mask(source, mask, output, offset, length);\n },\n toArrayBuffer,\n toBuffer,\n unmask(buffer, mask) {\n if (buffer.length < 32) _unmask(buffer, mask);\n else bu.unmask(buffer, mask);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n concat,\n mask: _mask,\n toArrayBuffer,\n toBuffer,\n unmask: _unmask\n };\n}\n","'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n /**\n * Creates a new `Limiter`.\n *\n * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n * to run concurrently\n */\n constructor(concurrency) {\n this[kDone] = () => {\n this.pending--;\n this[kRun]();\n };\n this.concurrency = concurrency || Infinity;\n this.jobs = [];\n this.pending = 0;\n }\n\n /**\n * Adds a job to the queue.\n *\n * @param {Function} job The job to run\n * @public\n */\n add(job) {\n this.jobs.push(job);\n this[kRun]();\n }\n\n /**\n * Removes a job from the queue and runs it if possible.\n *\n * @private\n */\n [kRun]() {\n if (this.pending === this.concurrency) return;\n\n if (this.jobs.length) {\n const job = this.jobs.shift();\n\n this.pending++;\n job(this[kDone]);\n }\n }\n}\n\nmodule.exports = Limiter;\n","'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode, NOOP } = require('./constants');\n\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n /**\n * Creates a PerMessageDeflate instance.\n *\n * @param {Object} [options] Configuration options\n * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n * disabling of server context takeover\n * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n * acknowledge disabling of client context takeover\n * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n * use of a custom server window size\n * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n * for, or request, a custom client window size\n * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n * deflate\n * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n * inflate\n * @param {Number} [options.threshold=1024] Size (in bytes) below which\n * messages should not be compressed\n * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n * calls to zlib\n * @param {Boolean} [isServer=false] Create the instance in either server or\n * client mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(options, isServer, maxPayload) {\n this._maxPayload = maxPayload | 0;\n this._options = options || {};\n this._threshold =\n this._options.threshold !== undefined ? this._options.threshold : 1024;\n this._isServer = !!isServer;\n this._deflate = null;\n this._inflate = null;\n\n this.params = null;\n\n if (!zlibLimiter) {\n const concurrency =\n this._options.concurrencyLimit !== undefined\n ? this._options.concurrencyLimit\n : 10;\n zlibLimiter = new Limiter(concurrency);\n }\n }\n\n /**\n * @type {String}\n */\n static get extensionName() {\n return 'permessage-deflate';\n }\n\n /**\n * Create an extension negotiation offer.\n *\n * @return {Object} Extension parameters\n * @public\n */\n offer() {\n const params = {};\n\n if (this._options.serverNoContextTakeover) {\n params.server_no_context_takeover = true;\n }\n if (this._options.clientNoContextTakeover) {\n params.client_no_context_takeover = true;\n }\n if (this._options.serverMaxWindowBits) {\n params.server_max_window_bits = this._options.serverMaxWindowBits;\n }\n if (this._options.clientMaxWindowBits) {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n } else if (this._options.clientMaxWindowBits == null) {\n params.client_max_window_bits = true;\n }\n\n return params;\n }\n\n /**\n * Accept an extension negotiation offer/response.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Object} Accepted configuration\n * @public\n */\n accept(configurations) {\n configurations = this.normalizeParams(configurations);\n\n this.params = this._isServer\n ? this.acceptAsServer(configurations)\n : this.acceptAsClient(configurations);\n\n return this.params;\n }\n\n /**\n * Releases all resources used by the extension.\n *\n * @public\n */\n cleanup() {\n if (this._inflate) {\n this._inflate.close();\n this._inflate = null;\n }\n\n if (this._deflate) {\n const callback = this._deflate[kCallback];\n\n this._deflate.close();\n this._deflate = null;\n\n if (callback) {\n callback(\n new Error(\n 'The deflate stream was closed while data was being processed'\n )\n );\n }\n }\n }\n\n /**\n * Accept an extension negotiation offer.\n *\n * @param {Array} offers The extension negotiation offers\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsServer(offers) {\n const opts = this._options;\n const accepted = offers.find((params) => {\n if (\n (opts.serverNoContextTakeover === false &&\n params.server_no_context_takeover) ||\n (params.server_max_window_bits &&\n (opts.serverMaxWindowBits === false ||\n (typeof opts.serverMaxWindowBits === 'number' &&\n opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n (typeof opts.clientMaxWindowBits === 'number' &&\n !params.client_max_window_bits)\n ) {\n return false;\n }\n\n return true;\n });\n\n if (!accepted) {\n throw new Error('None of the extension offers can be accepted');\n }\n\n if (opts.serverNoContextTakeover) {\n accepted.server_no_context_takeover = true;\n }\n if (opts.clientNoContextTakeover) {\n accepted.client_no_context_takeover = true;\n }\n if (typeof opts.serverMaxWindowBits === 'number') {\n accepted.server_max_window_bits = opts.serverMaxWindowBits;\n }\n if (typeof opts.clientMaxWindowBits === 'number') {\n accepted.client_max_window_bits = opts.clientMaxWindowBits;\n } else if (\n accepted.client_max_window_bits === true ||\n opts.clientMaxWindowBits === false\n ) {\n delete accepted.client_max_window_bits;\n }\n\n return accepted;\n }\n\n /**\n * Accept the extension negotiation response.\n *\n * @param {Array} response The extension negotiation response\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsClient(response) {\n const params = response[0];\n\n if (\n this._options.clientNoContextTakeover === false &&\n params.client_no_context_takeover\n ) {\n throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n }\n\n if (!params.client_max_window_bits) {\n if (typeof this._options.clientMaxWindowBits === 'number') {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n }\n } else if (\n this._options.clientMaxWindowBits === false ||\n (typeof this._options.clientMaxWindowBits === 'number' &&\n params.client_max_window_bits > this._options.clientMaxWindowBits)\n ) {\n throw new Error(\n 'Unexpected or invalid parameter \"client_max_window_bits\"'\n );\n }\n\n return params;\n }\n\n /**\n * Normalize parameters.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Array} The offers/response with normalized parameters\n * @private\n */\n normalizeParams(configurations) {\n configurations.forEach((params) => {\n Object.keys(params).forEach((key) => {\n let value = params[key];\n\n if (value.length > 1) {\n throw new Error(`Parameter \"${key}\" must have only a single value`);\n }\n\n value = value[0];\n\n if (key === 'client_max_window_bits') {\n if (value !== true) {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (!this._isServer) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else if (key === 'server_max_window_bits') {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (\n key === 'client_no_context_takeover' ||\n key === 'server_no_context_takeover'\n ) {\n if (value !== true) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else {\n throw new Error(`Unknown parameter \"${key}\"`);\n }\n\n params[key] = value;\n });\n });\n\n return configurations;\n }\n\n /**\n * Decompress data. Concurrency limited.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n decompress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._decompress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Compress data. Concurrency limited.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n compress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._compress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Decompress data.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _decompress(data, fin, callback) {\n const endpoint = this._isServer ? 'client' : 'server';\n\n if (!this._inflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._inflate = zlib.createInflateRaw({\n ...this._options.zlibInflateOptions,\n windowBits\n });\n this._inflate[kPerMessageDeflate] = this;\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n this._inflate.on('error', inflateOnError);\n this._inflate.on('data', inflateOnData);\n }\n\n this._inflate[kCallback] = callback;\n\n this._inflate.write(data);\n if (fin) this._inflate.write(TRAILER);\n\n this._inflate.flush(() => {\n const err = this._inflate[kError];\n\n if (err) {\n this._inflate.close();\n this._inflate = null;\n callback(err);\n return;\n }\n\n const data = bufferUtil.concat(\n this._inflate[kBuffers],\n this._inflate[kTotalLength]\n );\n\n if (this._inflate._readableState.endEmitted) {\n this._inflate.close();\n this._inflate = null;\n } else {\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._inflate.reset();\n }\n }\n\n callback(null, data);\n });\n }\n\n /**\n * Compress data.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _compress(data, fin, callback) {\n const endpoint = this._isServer ? 'server' : 'client';\n\n if (!this._deflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._deflate = zlib.createDeflateRaw({\n ...this._options.zlibDeflateOptions,\n windowBits\n });\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n //\n // An `'error'` event is emitted, only on Node.js < 10.0.0, if the\n // `zlib.DeflateRaw` instance is closed while data is being processed.\n // This can happen if `PerMessageDeflate#cleanup()` is called at the wrong\n // time due to an abnormal WebSocket closure.\n //\n this._deflate.on('error', NOOP);\n this._deflate.on('data', deflateOnData);\n }\n\n this._deflate[kCallback] = callback;\n\n this._deflate.write(data);\n this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n if (!this._deflate) {\n //\n // The deflate stream was closed while data was being processed.\n //\n return;\n }\n\n let data = bufferUtil.concat(\n this._deflate[kBuffers],\n this._deflate[kTotalLength]\n );\n\n if (fin) data = data.slice(0, data.length - 4);\n\n //\n // Ensure that the callback will not be called again in\n // `PerMessageDeflate#cleanup()`.\n //\n this._deflate[kCallback] = null;\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._deflate.reset();\n }\n\n callback(null, data);\n });\n }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n this[kBuffers].push(chunk);\n this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n this[kTotalLength] += chunk.length;\n\n if (\n this[kPerMessageDeflate]._maxPayload < 1 ||\n this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n ) {\n this[kBuffers].push(chunk);\n return;\n }\n\n this[kError] = new RangeError('Max payload size exceeded');\n this[kError].code = 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH';\n this[kError][kStatusCode] = 1009;\n this.removeListener('data', inflateOnData);\n this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n //\n // There is no need to call `Zlib#close()` as the handle is automatically\n // closed when an error is emitted.\n //\n this[kPerMessageDeflate]._inflate = null;\n err[kStatusCode] = 1007;\n this[kCallback](err);\n}\n","'use strict';\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0x00) { // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) { // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) { // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80 || // overlong\n buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0 // surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) { // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80 || // overlong\n buf[i] === 0xf4 && buf[i + 1] > 0x8f || buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = isValidUTF8;\n","'use strict';\n\ntry {\n module.exports = require('node-gyp-build')(__dirname);\n} catch (e) {\n module.exports = require('./fallback');\n}\n","'use strict';\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n return (\n (code >= 1000 &&\n code <= 1014 &&\n code !== 1004 &&\n code !== 1005 &&\n code !== 1006) ||\n (code >= 3000 && code <= 4999)\n );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0) {\n // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) {\n // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // Overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) {\n // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\ntry {\n let isValidUTF8 = require('utf-8-validate');\n\n /* istanbul ignore if */\n if (typeof isValidUTF8 === 'object') {\n isValidUTF8 = isValidUTF8.Validation.isValidUTF8; // utf-8-validate@<3.0.0\n }\n\n module.exports = {\n isValidStatusCode,\n isValidUTF8(buf) {\n return buf.length < 150 ? _isValidUTF8(buf) : isValidUTF8(buf);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n isValidStatusCode,\n isValidUTF8: _isValidUTF8\n };\n}\n","'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n kStatusCode,\n kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends Writable\n */\nclass Receiver extends Writable {\n /**\n * Creates a Receiver instance.\n *\n * @param {String} [binaryType=nodebuffer] The type for binary data\n * @param {Object} [extensions] An object containing the negotiated extensions\n * @param {Boolean} [isServer=false] Specifies whether to operate in client or\n * server mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(binaryType, extensions, isServer, maxPayload) {\n super();\n\n this._binaryType = binaryType || BINARY_TYPES[0];\n this[kWebSocket] = undefined;\n this._extensions = extensions || {};\n this._isServer = !!isServer;\n this._maxPayload = maxPayload | 0;\n\n this._bufferedBytes = 0;\n this._buffers = [];\n\n this._compressed = false;\n this._payloadLength = 0;\n this._mask = undefined;\n this._fragmented = 0;\n this._masked = false;\n this._fin = false;\n this._opcode = 0;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragments = [];\n\n this._state = GET_INFO;\n this._loop = false;\n }\n\n /**\n * Implements `Writable.prototype._write()`.\n *\n * @param {Buffer} chunk The chunk of data to write\n * @param {String} encoding The character encoding of `chunk`\n * @param {Function} cb Callback\n * @private\n */\n _write(chunk, encoding, cb) {\n if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n this._bufferedBytes += chunk.length;\n this._buffers.push(chunk);\n this.startLoop(cb);\n }\n\n /**\n * Consumes `n` bytes from the buffered data.\n *\n * @param {Number} n The number of bytes to consume\n * @return {Buffer} The consumed bytes\n * @private\n */\n consume(n) {\n this._bufferedBytes -= n;\n\n if (n === this._buffers[0].length) return this._buffers.shift();\n\n if (n < this._buffers[0].length) {\n const buf = this._buffers[0];\n this._buffers[0] = buf.slice(n);\n return buf.slice(0, n);\n }\n\n const dst = Buffer.allocUnsafe(n);\n\n do {\n const buf = this._buffers[0];\n const offset = dst.length - n;\n\n if (n >= buf.length) {\n dst.set(this._buffers.shift(), offset);\n } else {\n dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n this._buffers[0] = buf.slice(n);\n }\n\n n -= buf.length;\n } while (n > 0);\n\n return dst;\n }\n\n /**\n * Starts the parsing loop.\n *\n * @param {Function} cb Callback\n * @private\n */\n startLoop(cb) {\n let err;\n this._loop = true;\n\n do {\n switch (this._state) {\n case GET_INFO:\n err = this.getInfo();\n break;\n case GET_PAYLOAD_LENGTH_16:\n err = this.getPayloadLength16();\n break;\n case GET_PAYLOAD_LENGTH_64:\n err = this.getPayloadLength64();\n break;\n case GET_MASK:\n this.getMask();\n break;\n case GET_DATA:\n err = this.getData(cb);\n break;\n default:\n // `INFLATING`\n this._loop = false;\n return;\n }\n } while (this._loop);\n\n cb(err);\n }\n\n /**\n * Reads the first two bytes of a frame.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getInfo() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(2);\n\n if ((buf[0] & 0x30) !== 0x00) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV2 and RSV3 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_2_3'\n );\n }\n\n const compressed = (buf[0] & 0x40) === 0x40;\n\n if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n this._fin = (buf[0] & 0x80) === 0x80;\n this._opcode = buf[0] & 0x0f;\n this._payloadLength = buf[1] & 0x7f;\n\n if (this._opcode === 0x00) {\n if (compressed) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n if (!this._fragmented) {\n this._loop = false;\n return error(\n RangeError,\n 'invalid opcode 0',\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n this._opcode = this._fragmented;\n } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n if (this._fragmented) {\n this._loop = false;\n return error(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n this._compressed = compressed;\n } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n if (!this._fin) {\n this._loop = false;\n return error(\n RangeError,\n 'FIN must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_FIN'\n );\n }\n\n if (compressed) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n if (this._payloadLength > 0x7d) {\n this._loop = false;\n return error(\n RangeError,\n `invalid payload length ${this._payloadLength}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n }\n } else {\n this._loop = false;\n return error(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n this._masked = (buf[1] & 0x80) === 0x80;\n\n if (this._isServer) {\n if (!this._masked) {\n this._loop = false;\n return error(\n RangeError,\n 'MASK must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_MASK'\n );\n }\n } else if (this._masked) {\n this._loop = false;\n return error(\n RangeError,\n 'MASK must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_MASK'\n );\n }\n\n if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n else return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+16).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength16() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n this._payloadLength = this.consume(2).readUInt16BE(0);\n return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+64).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength64() {\n if (this._bufferedBytes < 8) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(8);\n const num = buf.readUInt32BE(0);\n\n //\n // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n // if payload length is greater than this number.\n //\n if (num > Math.pow(2, 53 - 32) - 1) {\n this._loop = false;\n return error(\n RangeError,\n 'Unsupported WebSocket frame: payload length > 2^53 - 1',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH'\n );\n }\n\n this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n return this.haveLength();\n }\n\n /**\n * Payload length has been read.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n haveLength() {\n if (this._payloadLength && this._opcode < 0x08) {\n this._totalPayloadLength += this._payloadLength;\n if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n this._loop = false;\n return error(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n );\n }\n }\n\n if (this._masked) this._state = GET_MASK;\n else this._state = GET_DATA;\n }\n\n /**\n * Reads mask bytes.\n *\n * @private\n */\n getMask() {\n if (this._bufferedBytes < 4) {\n this._loop = false;\n return;\n }\n\n this._mask = this.consume(4);\n this._state = GET_DATA;\n }\n\n /**\n * Reads data bytes.\n *\n * @param {Function} cb Callback\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n getData(cb) {\n let data = EMPTY_BUFFER;\n\n if (this._payloadLength) {\n if (this._bufferedBytes < this._payloadLength) {\n this._loop = false;\n return;\n }\n\n data = this.consume(this._payloadLength);\n if (this._masked) unmask(data, this._mask);\n }\n\n if (this._opcode > 0x07) return this.controlMessage(data);\n\n if (this._compressed) {\n this._state = INFLATING;\n this.decompress(data, cb);\n return;\n }\n\n if (data.length) {\n //\n // This message is not compressed so its lenght is the sum of the payload\n // length of all fragments.\n //\n this._messageLength = this._totalPayloadLength;\n this._fragments.push(data);\n }\n\n return this.dataMessage();\n }\n\n /**\n * Decompresses data.\n *\n * @param {Buffer} data Compressed data\n * @param {Function} cb Callback\n * @private\n */\n decompress(data, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n if (err) return cb(err);\n\n if (buf.length) {\n this._messageLength += buf.length;\n if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n return cb(\n error(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n )\n );\n }\n\n this._fragments.push(buf);\n }\n\n const er = this.dataMessage();\n if (er) return cb(er);\n\n this.startLoop(cb);\n });\n }\n\n /**\n * Handles a data message.\n *\n * @return {(Error|undefined)} A possible error\n * @private\n */\n dataMessage() {\n if (this._fin) {\n const messageLength = this._messageLength;\n const fragments = this._fragments;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragmented = 0;\n this._fragments = [];\n\n if (this._opcode === 2) {\n let data;\n\n if (this._binaryType === 'nodebuffer') {\n data = concat(fragments, messageLength);\n } else if (this._binaryType === 'arraybuffer') {\n data = toArrayBuffer(concat(fragments, messageLength));\n } else {\n data = fragments;\n }\n\n this.emit('message', data);\n } else {\n const buf = concat(fragments, messageLength);\n\n if (!isValidUTF8(buf)) {\n this._loop = false;\n return error(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n }\n\n this.emit('message', buf.toString());\n }\n }\n\n this._state = GET_INFO;\n }\n\n /**\n * Handles a control message.\n *\n * @param {Buffer} data Data to handle\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n controlMessage(data) {\n if (this._opcode === 0x08) {\n this._loop = false;\n\n if (data.length === 0) {\n this.emit('conclude', 1005, '');\n this.end();\n } else if (data.length === 1) {\n return error(\n RangeError,\n 'invalid payload length 1',\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n } else {\n const code = data.readUInt16BE(0);\n\n if (!isValidStatusCode(code)) {\n return error(\n RangeError,\n `invalid status code ${code}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CLOSE_CODE'\n );\n }\n\n const buf = data.slice(2);\n\n if (!isValidUTF8(buf)) {\n return error(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n }\n\n this.emit('conclude', code, buf.toString());\n this.end();\n }\n } else if (this._opcode === 0x09) {\n this.emit('ping', data);\n } else {\n this.emit('pong', data);\n }\n\n this._state = GET_INFO;\n }\n}\n\nmodule.exports = Receiver;\n\n/**\n * Builds an error object.\n *\n * @param {function(new:Error|RangeError)} ErrorCtor The error constructor\n * @param {String} message The error message\n * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n * `message`\n * @param {Number} statusCode The status code\n * @param {String} errorCode The exposed error code\n * @return {(Error|RangeError)} The error\n * @private\n */\nfunction error(ErrorCtor, message, prefix, statusCode, errorCode) {\n const err = new ErrorCtor(\n prefix ? `Invalid WebSocket frame: ${message}` : message\n );\n\n Error.captureStackTrace(err, error);\n err.code = errorCode;\n err[kStatusCode] = statusCode;\n return err;\n}\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^net|tls$\" }] */\n\n'use strict';\n\nconst net = require('net');\nconst tls = require('tls');\nconst { randomFillSync } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER } = require('./constants');\nconst { isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst mask = Buffer.alloc(4);\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n /**\n * Creates a Sender instance.\n *\n * @param {(net.Socket|tls.Socket)} socket The connection socket\n * @param {Object} [extensions] An object containing the negotiated extensions\n */\n constructor(socket, extensions) {\n this._extensions = extensions || {};\n this._socket = socket;\n\n this._firstFragment = true;\n this._compress = false;\n\n this._bufferedBytes = 0;\n this._deflating = false;\n this._queue = [];\n }\n\n /**\n * Frames a piece of data according to the HyBi WebSocket protocol.\n *\n * @param {Buffer} data The data to frame\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @return {Buffer[]} The framed data as a list of `Buffer` instances\n * @public\n */\n static frame(data, options) {\n const merge = options.mask && options.readOnly;\n let offset = options.mask ? 6 : 2;\n let payloadLength = data.length;\n\n if (data.length >= 65536) {\n offset += 8;\n payloadLength = 127;\n } else if (data.length > 125) {\n offset += 2;\n payloadLength = 126;\n }\n\n const target = Buffer.allocUnsafe(merge ? data.length + offset : offset);\n\n target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n if (options.rsv1) target[0] |= 0x40;\n\n target[1] = payloadLength;\n\n if (payloadLength === 126) {\n target.writeUInt16BE(data.length, 2);\n } else if (payloadLength === 127) {\n target.writeUInt32BE(0, 2);\n target.writeUInt32BE(data.length, 6);\n }\n\n if (!options.mask) return [target, data];\n\n randomFillSync(mask, 0, 4);\n\n target[1] |= 0x80;\n target[offset - 4] = mask[0];\n target[offset - 3] = mask[1];\n target[offset - 2] = mask[2];\n target[offset - 1] = mask[3];\n\n if (merge) {\n applyMask(data, mask, target, offset, data.length);\n return [target];\n }\n\n applyMask(data, mask, data, 0, data.length);\n return [target, data];\n }\n\n /**\n * Sends a close message to the other peer.\n *\n * @param {Number} [code] The status code component of the body\n * @param {String} [data] The message component of the body\n * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n * @param {Function} [cb] Callback\n * @public\n */\n close(code, data, mask, cb) {\n let buf;\n\n if (code === undefined) {\n buf = EMPTY_BUFFER;\n } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n throw new TypeError('First argument must be a valid error code number');\n } else if (data === undefined || data === '') {\n buf = Buffer.allocUnsafe(2);\n buf.writeUInt16BE(code, 0);\n } else {\n const length = Buffer.byteLength(data);\n\n if (length > 123) {\n throw new RangeError('The message must not be greater than 123 bytes');\n }\n\n buf = Buffer.allocUnsafe(2 + length);\n buf.writeUInt16BE(code, 0);\n buf.write(data, 2);\n }\n\n if (this._deflating) {\n this.enqueue([this.doClose, buf, mask, cb]);\n } else {\n this.doClose(buf, mask, cb);\n }\n }\n\n /**\n * Frames and sends a close message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @private\n */\n doClose(data, mask, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x08,\n mask,\n readOnly: false\n }),\n cb\n );\n }\n\n /**\n * Sends a ping message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n ping(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPing, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPing(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a ping message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPing(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x09,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a pong message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n pong(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPong, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPong(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a pong message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPong(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x0a,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a data message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Object} options Options object\n * @param {Boolean} [options.compress=false] Specifies whether or not to\n * compress `data`\n * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n * or text\n * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Function} [cb] Callback\n * @public\n */\n send(data, options, cb) {\n const buf = toBuffer(data);\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n let opcode = options.binary ? 2 : 1;\n let rsv1 = options.compress;\n\n if (this._firstFragment) {\n this._firstFragment = false;\n if (rsv1 && perMessageDeflate) {\n rsv1 = buf.length >= perMessageDeflate._threshold;\n }\n this._compress = rsv1;\n } else {\n rsv1 = false;\n opcode = 0;\n }\n\n if (options.fin) this._firstFragment = true;\n\n if (perMessageDeflate) {\n const opts = {\n fin: options.fin,\n rsv1,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n };\n\n if (this._deflating) {\n this.enqueue([this.dispatch, buf, this._compress, opts, cb]);\n } else {\n this.dispatch(buf, this._compress, opts, cb);\n }\n } else {\n this.sendFrame(\n Sender.frame(buf, {\n fin: options.fin,\n rsv1: false,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n }),\n cb\n );\n }\n }\n\n /**\n * Dispatches a data message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * `data`\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n dispatch(data, compress, options, cb) {\n if (!compress) {\n this.sendFrame(Sender.frame(data, options), cb);\n return;\n }\n\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n this._bufferedBytes += data.length;\n this._deflating = true;\n perMessageDeflate.compress(data, options.fin, (_, buf) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while data was being compressed'\n );\n\n if (typeof cb === 'function') cb(err);\n\n for (let i = 0; i < this._queue.length; i++) {\n const callback = this._queue[i][4];\n\n if (typeof callback === 'function') callback(err);\n }\n\n return;\n }\n\n this._bufferedBytes -= data.length;\n this._deflating = false;\n options.readOnly = false;\n this.sendFrame(Sender.frame(buf, options), cb);\n this.dequeue();\n });\n }\n\n /**\n * Executes queued send operations.\n *\n * @private\n */\n dequeue() {\n while (!this._deflating && this._queue.length) {\n const params = this._queue.shift();\n\n this._bufferedBytes -= params[1].length;\n Reflect.apply(params[0], this, params.slice(1));\n }\n }\n\n /**\n * Enqueues a send operation.\n *\n * @param {Array} params Send operation parameters.\n * @private\n */\n enqueue(params) {\n this._bufferedBytes += params[1].length;\n this._queue.push(params);\n }\n\n /**\n * Sends a frame.\n *\n * @param {Buffer[]} list The frame to send\n * @param {Function} [cb] Callback\n * @private\n */\n sendFrame(list, cb) {\n if (list.length === 2) {\n this._socket.cork();\n this._socket.write(list[0]);\n this._socket.write(list[1], cb);\n this._socket.uncork();\n } else {\n this._socket.write(list[0], cb);\n }\n }\n}\n\nmodule.exports = Sender;\n","'use strict';\n\n/**\n * Class representing an event.\n *\n * @private\n */\nclass Event {\n /**\n * Create a new `Event`.\n *\n * @param {String} type The name of the event\n * @param {Object} target A reference to the target to which the event was\n * dispatched\n */\n constructor(type, target) {\n this.target = target;\n this.type = type;\n }\n}\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n * @private\n */\nclass MessageEvent extends Event {\n /**\n * Create a new `MessageEvent`.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The received data\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(data, target) {\n super('message', target);\n\n this.data = data;\n }\n}\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n * @private\n */\nclass CloseEvent extends Event {\n /**\n * Create a new `CloseEvent`.\n *\n * @param {Number} code The status code explaining why the connection is being\n * closed\n * @param {String} reason A human-readable string explaining why the\n * connection is closing\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(code, reason, target) {\n super('close', target);\n\n this.wasClean = target._closeFrameReceived && target._closeFrameSent;\n this.reason = reason;\n this.code = code;\n }\n}\n\n/**\n * Class representing an open event.\n *\n * @extends Event\n * @private\n */\nclass OpenEvent extends Event {\n /**\n * Create a new `OpenEvent`.\n *\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(target) {\n super('open', target);\n }\n}\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n * @private\n */\nclass ErrorEvent extends Event {\n /**\n * Create a new `ErrorEvent`.\n *\n * @param {Object} error The error that generated this event\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(error, target) {\n super('error', target);\n\n this.message = error.message;\n this.error = error;\n }\n}\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n /**\n * Register an event listener.\n *\n * @param {String} type A string representing the event type to listen for\n * @param {Function} listener The listener to add\n * @param {Object} [options] An options object specifies characteristics about\n * the event listener\n * @param {Boolean} [options.once=false] A `Boolean`` indicating that the\n * listener should be invoked at most once after being added. If `true`,\n * the listener would be automatically removed when invoked.\n * @public\n */\n addEventListener(type, listener, options) {\n if (typeof listener !== 'function') return;\n\n function onMessage(data) {\n listener.call(this, new MessageEvent(data, this));\n }\n\n function onClose(code, message) {\n listener.call(this, new CloseEvent(code, message, this));\n }\n\n function onError(error) {\n listener.call(this, new ErrorEvent(error, this));\n }\n\n function onOpen() {\n listener.call(this, new OpenEvent(this));\n }\n\n const method = options && options.once ? 'once' : 'on';\n\n if (type === 'message') {\n onMessage._listener = listener;\n this[method](type, onMessage);\n } else if (type === 'close') {\n onClose._listener = listener;\n this[method](type, onClose);\n } else if (type === 'error') {\n onError._listener = listener;\n this[method](type, onError);\n } else if (type === 'open') {\n onOpen._listener = listener;\n this[method](type, onOpen);\n } else {\n this[method](type, listener);\n }\n },\n\n /**\n * Remove an event listener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {Function} listener The listener to remove\n * @public\n */\n removeEventListener(type, listener) {\n const listeners = this.listeners(type);\n\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i] === listener || listeners[i]._listener === listener) {\n this.removeListener(type, listeners[i]);\n }\n }\n }\n};\n\nmodule.exports = EventTarget;\n","'use strict';\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n * parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n if (dest[name] === undefined) dest[name] = [elem];\n else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n const offers = Object.create(null);\n\n if (header === undefined || header === '') return offers;\n\n let params = Object.create(null);\n let mustUnescape = false;\n let isEscaping = false;\n let inQuotes = false;\n let extensionName;\n let paramName;\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (; i < header.length; i++) {\n const code = header.charCodeAt(i);\n\n if (extensionName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 /* ' ' */ || code === 0x09 /* '\\t' */) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n const name = header.slice(start, end);\n if (code === 0x2c) {\n push(offers, name, params);\n params = Object.create(null);\n } else {\n extensionName = name;\n }\n\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (paramName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 || code === 0x09) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n push(params, header.slice(start, end), true);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n start = end = -1;\n } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n paramName = header.slice(start, i);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else {\n //\n // The value of a quoted-string after unescaping must conform to the\n // token ABNF, so only token characters are valid.\n // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n //\n if (isEscaping) {\n if (tokenChars[code] !== 1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n if (start === -1) start = i;\n else if (!mustUnescape) mustUnescape = true;\n isEscaping = false;\n } else if (inQuotes) {\n if (tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x22 /* '\"' */ && start !== -1) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5c /* '\\' */) {\n isEscaping = true;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n inQuotes = true;\n } else if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n if (end === -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n let value = header.slice(start, end);\n if (mustUnescape) {\n value = value.replace(/\\\\/g, '');\n mustUnescape = false;\n }\n push(params, paramName, value);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n paramName = undefined;\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n }\n\n if (start === -1 || inQuotes) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n if (end === -1) end = i;\n const token = header.slice(start, end);\n if (extensionName === undefined) {\n push(offers, token, params);\n } else {\n if (paramName === undefined) {\n push(params, token, true);\n } else if (mustUnescape) {\n push(params, paramName, token.replace(/\\\\/g, ''));\n } else {\n push(params, paramName, token);\n }\n push(offers, extensionName, params);\n }\n\n return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n return Object.keys(extensions)\n .map((extension) => {\n let configurations = extensions[extension];\n if (!Array.isArray(configurations)) configurations = [configurations];\n return configurations\n .map((params) => {\n return [extension]\n .concat(\n Object.keys(params).map((k) => {\n let values = params[k];\n if (!Array.isArray(values)) values = [values];\n return values\n .map((v) => (v === true ? k : `${k}=${v}`))\n .join('; ');\n })\n )\n .join('; ');\n })\n .join(', ');\n })\n .join(', ');\n}\n\nmodule.exports = { format, parse };\n","'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n GUID,\n kStatusCode,\n kWebSocket,\n NOOP\n} = require('./constants');\nconst { addEventListener, removeEventListener } = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst protocolVersions = [8, 13];\nconst closeTimeout = 30 * 1000;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n /**\n * Create a new `WebSocket`.\n *\n * @param {(String|URL)} address The URL to which to connect\n * @param {(String|String[])} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n */\n constructor(address, protocols, options) {\n super();\n\n this._binaryType = BINARY_TYPES[0];\n this._closeCode = 1006;\n this._closeFrameReceived = false;\n this._closeFrameSent = false;\n this._closeMessage = '';\n this._closeTimer = null;\n this._extensions = {};\n this._protocol = '';\n this._readyState = WebSocket.CONNECTING;\n this._receiver = null;\n this._sender = null;\n this._socket = null;\n\n if (address !== null) {\n this._bufferedAmount = 0;\n this._isServer = false;\n this._redirects = 0;\n\n if (Array.isArray(protocols)) {\n protocols = protocols.join(', ');\n } else if (typeof protocols === 'object' && protocols !== null) {\n options = protocols;\n protocols = undefined;\n }\n\n initAsClient(this, address, protocols, options);\n } else {\n this._isServer = true;\n }\n }\n\n /**\n * This deviates from the WHATWG interface since ws doesn't support the\n * required default \"blob\" type (instead we define a custom \"nodebuffer\"\n * type).\n *\n * @type {String}\n */\n get binaryType() {\n return this._binaryType;\n }\n\n set binaryType(type) {\n if (!BINARY_TYPES.includes(type)) return;\n\n this._binaryType = type;\n\n //\n // Allow to change `binaryType` on the fly.\n //\n if (this._receiver) this._receiver._binaryType = type;\n }\n\n /**\n * @type {Number}\n */\n get bufferedAmount() {\n if (!this._socket) return this._bufferedAmount;\n\n return this._socket._writableState.length + this._sender._bufferedBytes;\n }\n\n /**\n * @type {String}\n */\n get extensions() {\n return Object.keys(this._extensions).join();\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onclose() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onclose(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onerror() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onerror(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onopen() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onopen(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onmessage() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onmessage(listener) {}\n\n /**\n * @type {String}\n */\n get protocol() {\n return this._protocol;\n }\n\n /**\n * @type {Number}\n */\n get readyState() {\n return this._readyState;\n }\n\n /**\n * @type {String}\n */\n get url() {\n return this._url;\n }\n\n /**\n * Set up the socket and the internal resources.\n *\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Number} [maxPayload=0] The maximum allowed message size\n * @private\n */\n setSocket(socket, head, maxPayload) {\n const receiver = new Receiver(\n this.binaryType,\n this._extensions,\n this._isServer,\n maxPayload\n );\n\n this._sender = new Sender(socket, this._extensions);\n this._receiver = receiver;\n this._socket = socket;\n\n receiver[kWebSocket] = this;\n socket[kWebSocket] = this;\n\n receiver.on('conclude', receiverOnConclude);\n receiver.on('drain', receiverOnDrain);\n receiver.on('error', receiverOnError);\n receiver.on('message', receiverOnMessage);\n receiver.on('ping', receiverOnPing);\n receiver.on('pong', receiverOnPong);\n\n socket.setTimeout(0);\n socket.setNoDelay();\n\n if (head.length > 0) socket.unshift(head);\n\n socket.on('close', socketOnClose);\n socket.on('data', socketOnData);\n socket.on('end', socketOnEnd);\n socket.on('error', socketOnError);\n\n this._readyState = WebSocket.OPEN;\n this.emit('open');\n }\n\n /**\n * Emit the `'close'` event.\n *\n * @private\n */\n emitClose() {\n if (!this._socket) {\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n return;\n }\n\n if (this._extensions[PerMessageDeflate.extensionName]) {\n this._extensions[PerMessageDeflate.extensionName].cleanup();\n }\n\n this._receiver.removeAllListeners();\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n }\n\n /**\n * Start a closing handshake.\n *\n * +----------+ +-----------+ +----------+\n * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n * | +----------+ +-----------+ +----------+ |\n * +----------+ +-----------+ |\n * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING\n * +----------+ +-----------+ |\n * | | | +---+ |\n * +------------------------+-->|fin| - - - -\n * | +---+ | +---+\n * - - - - -|fin|<---------------------+\n * +---+\n *\n * @param {Number} [code] Status code explaining why the connection is closing\n * @param {String} [data] A string explaining why the connection is closing\n * @public\n */\n close(code, data) {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this.readyState === WebSocket.CLOSING) {\n if (\n this._closeFrameSent &&\n (this._closeFrameReceived || this._receiver._writableState.errorEmitted)\n ) {\n this._socket.end();\n }\n\n return;\n }\n\n this._readyState = WebSocket.CLOSING;\n this._sender.close(code, data, !this._isServer, (err) => {\n //\n // This error is handled by the `'error'` listener on the socket. We only\n // want to know if the close frame has been sent here.\n //\n if (err) return;\n\n this._closeFrameSent = true;\n\n if (\n this._closeFrameReceived ||\n this._receiver._writableState.errorEmitted\n ) {\n this._socket.end();\n }\n });\n\n //\n // Specify a timeout for the closing handshake to complete.\n //\n this._closeTimer = setTimeout(\n this._socket.destroy.bind(this._socket),\n closeTimeout\n );\n }\n\n /**\n * Send a ping.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the ping is sent\n * @public\n */\n ping(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a pong.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the pong is sent\n * @public\n */\n pong(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a data message.\n *\n * @param {*} data The message to send\n * @param {Object} [options] Options object\n * @param {Boolean} [options.compress] Specifies whether or not to compress\n * `data`\n * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n * text\n * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when data is written out\n * @public\n */\n send(data, options, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n const opts = {\n binary: typeof data !== 'string',\n mask: !this._isServer,\n compress: true,\n fin: true,\n ...options\n };\n\n if (!this._extensions[PerMessageDeflate.extensionName]) {\n opts.compress = false;\n }\n\n this._sender.send(data || EMPTY_BUFFER, opts, cb);\n }\n\n /**\n * Forcibly close the connection.\n *\n * @public\n */\n terminate() {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this._socket) {\n this._readyState = WebSocket.CLOSING;\n this._socket.destroy();\n }\n }\n}\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n[\n 'binaryType',\n 'bufferedAmount',\n 'extensions',\n 'protocol',\n 'readyState',\n 'url'\n].forEach((property) => {\n Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n Object.defineProperty(WebSocket.prototype, `on${method}`, {\n enumerable: true,\n get() {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i]._listener) return listeners[i]._listener;\n }\n\n return undefined;\n },\n set(listener) {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n //\n // Remove only the listeners added via `addEventListener`.\n //\n if (listeners[i]._listener) this.removeListener(method, listeners[i]);\n }\n this.addEventListener(method, listener);\n }\n });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|URL)} address The URL to which to connect\n * @param {String} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n * permessage-deflate\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n * handshake request\n * @param {Number} [options.protocolVersion=13] Value of the\n * `Sec-WebSocket-Version` header\n * @param {String} [options.origin] Value of the `Origin` or\n * `Sec-WebSocket-Origin` header\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n * redirects\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n * allowed\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n const opts = {\n protocolVersion: protocolVersions[1],\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: true,\n followRedirects: false,\n maxRedirects: 10,\n ...options,\n createConnection: undefined,\n socketPath: undefined,\n hostname: undefined,\n protocol: undefined,\n timeout: undefined,\n method: undefined,\n host: undefined,\n path: undefined,\n port: undefined\n };\n\n if (!protocolVersions.includes(opts.protocolVersion)) {\n throw new RangeError(\n `Unsupported protocol version: ${opts.protocolVersion} ` +\n `(supported versions: ${protocolVersions.join(', ')})`\n );\n }\n\n let parsedUrl;\n\n if (address instanceof URL) {\n parsedUrl = address;\n websocket._url = address.href;\n } else {\n parsedUrl = new URL(address);\n websocket._url = address;\n }\n\n const isUnixSocket = parsedUrl.protocol === 'ws+unix:';\n\n if (!parsedUrl.host && (!isUnixSocket || !parsedUrl.pathname)) {\n throw new Error(`Invalid URL: ${websocket.url}`);\n }\n\n const isSecure =\n parsedUrl.protocol === 'wss:' || parsedUrl.protocol === 'https:';\n const defaultPort = isSecure ? 443 : 80;\n const key = randomBytes(16).toString('base64');\n const get = isSecure ? https.get : http.get;\n let perMessageDeflate;\n\n opts.createConnection = isSecure ? tlsConnect : netConnect;\n opts.defaultPort = opts.defaultPort || defaultPort;\n opts.port = parsedUrl.port || defaultPort;\n opts.host = parsedUrl.hostname.startsWith('[')\n ? parsedUrl.hostname.slice(1, -1)\n : parsedUrl.hostname;\n opts.headers = {\n 'Sec-WebSocket-Version': opts.protocolVersion,\n 'Sec-WebSocket-Key': key,\n Connection: 'Upgrade',\n Upgrade: 'websocket',\n ...opts.headers\n };\n opts.path = parsedUrl.pathname + parsedUrl.search;\n opts.timeout = opts.handshakeTimeout;\n\n if (opts.perMessageDeflate) {\n perMessageDeflate = new PerMessageDeflate(\n opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},\n false,\n opts.maxPayload\n );\n opts.headers['Sec-WebSocket-Extensions'] = format({\n [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n });\n }\n if (protocols) {\n opts.headers['Sec-WebSocket-Protocol'] = protocols;\n }\n if (opts.origin) {\n if (opts.protocolVersion < 13) {\n opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n } else {\n opts.headers.Origin = opts.origin;\n }\n }\n if (parsedUrl.username || parsedUrl.password) {\n opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n }\n\n if (isUnixSocket) {\n const parts = opts.path.split(':');\n\n opts.socketPath = parts[0];\n opts.path = parts[1];\n }\n\n let req = (websocket._req = get(opts));\n\n if (opts.timeout) {\n req.on('timeout', () => {\n abortHandshake(websocket, req, 'Opening handshake has timed out');\n });\n }\n\n req.on('error', (err) => {\n if (req === null || req.aborted) return;\n\n req = websocket._req = null;\n websocket._readyState = WebSocket.CLOSING;\n websocket.emit('error', err);\n websocket.emitClose();\n });\n\n req.on('response', (res) => {\n const location = res.headers.location;\n const statusCode = res.statusCode;\n\n if (\n location &&\n opts.followRedirects &&\n statusCode >= 300 &&\n statusCode < 400\n ) {\n if (++websocket._redirects > opts.maxRedirects) {\n abortHandshake(websocket, req, 'Maximum redirects exceeded');\n return;\n }\n\n req.abort();\n\n const addr = new URL(location, address);\n\n initAsClient(websocket, addr, protocols, options);\n } else if (!websocket.emit('unexpected-response', req, res)) {\n abortHandshake(\n websocket,\n req,\n `Unexpected server response: ${res.statusCode}`\n );\n }\n });\n\n req.on('upgrade', (res, socket, head) => {\n websocket.emit('upgrade', res);\n\n //\n // The user may have closed the connection from a listener of the `upgrade`\n // event.\n //\n if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n req = websocket._req = null;\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n if (res.headers['sec-websocket-accept'] !== digest) {\n abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n return;\n }\n\n const serverProt = res.headers['sec-websocket-protocol'];\n const protList = (protocols || '').split(/, */);\n let protError;\n\n if (!protocols && serverProt) {\n protError = 'Server sent a subprotocol but none was requested';\n } else if (protocols && !serverProt) {\n protError = 'Server sent no subprotocol';\n } else if (serverProt && !protList.includes(serverProt)) {\n protError = 'Server sent an invalid subprotocol';\n }\n\n if (protError) {\n abortHandshake(websocket, socket, protError);\n return;\n }\n\n if (serverProt) websocket._protocol = serverProt;\n\n const secWebSocketExtensions = res.headers['sec-websocket-extensions'];\n\n if (secWebSocketExtensions !== undefined) {\n if (!perMessageDeflate) {\n const message =\n 'Server sent a Sec-WebSocket-Extensions header but no extension ' +\n 'was requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n let extensions;\n\n try {\n extensions = parse(secWebSocketExtensions);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n const extensionNames = Object.keys(extensions);\n\n if (extensionNames.length) {\n if (\n extensionNames.length !== 1 ||\n extensionNames[0] !== PerMessageDeflate.extensionName\n ) {\n const message =\n 'Server indicated an extension that was not requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n try {\n perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n websocket._extensions[PerMessageDeflate.extensionName] =\n perMessageDeflate;\n }\n }\n\n websocket.setSocket(socket, head, opts.maxPayload);\n });\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n options.path = options.socketPath;\n return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n options.path = undefined;\n\n if (!options.servername && options.servername !== '') {\n options.servername = net.isIP(options.host) ? '' : options.host;\n }\n\n return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket|tls.Socket)} stream The request to\n * abort or the socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n websocket._readyState = WebSocket.CLOSING;\n\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshake);\n\n if (stream.setHeader) {\n stream.abort();\n\n if (stream.socket && !stream.socket.destroyed) {\n //\n // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n // called after the request completed. See\n // https://github.com/websockets/ws/issues/1869.\n //\n stream.socket.destroy();\n }\n\n stream.once('abort', websocket.emitClose.bind(websocket));\n websocket.emit('error', err);\n } else {\n stream.destroy(err);\n stream.once('error', websocket.emit.bind(websocket, 'error'));\n stream.once('close', websocket.emitClose.bind(websocket));\n }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n if (data) {\n const length = toBuffer(data).length;\n\n //\n // The `_bufferedAmount` property is used only when the peer is a client and\n // the opening handshake fails. Under these circumstances, in fact, the\n // `setSocket()` method is not called, so the `_socket` and `_sender`\n // properties are set to `null`.\n //\n if (websocket._socket) websocket._sender._bufferedBytes += length;\n else websocket._bufferedAmount += length;\n }\n\n if (cb) {\n const err = new Error(\n `WebSocket is not open: readyState ${websocket.readyState} ` +\n `(${readyStates[websocket.readyState]})`\n );\n cb(err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {String} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n const websocket = this[kWebSocket];\n\n websocket._socket.removeListener('data', socketOnData);\n websocket._socket.resume();\n\n websocket._closeFrameReceived = true;\n websocket._closeMessage = reason;\n websocket._closeCode = code;\n\n if (code === 1005) websocket.close();\n else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n this[kWebSocket]._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n const websocket = this[kWebSocket];\n\n websocket._socket.removeListener('data', socketOnData);\n websocket._socket.resume();\n\n websocket.close(err[kStatusCode]);\n websocket.emit('error', err);\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The message\n * @private\n */\nfunction receiverOnMessage(data) {\n this[kWebSocket].emit('message', data);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n const websocket = this[kWebSocket];\n\n websocket.pong(data, !websocket._isServer, NOOP);\n websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n this[kWebSocket].emit('pong', data);\n}\n\n/**\n * The listener of the `net.Socket` `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n const websocket = this[kWebSocket];\n\n this.removeListener('close', socketOnClose);\n this.removeListener('end', socketOnEnd);\n\n websocket._readyState = WebSocket.CLOSING;\n\n //\n // The close frame might not have been received or the `'end'` event emitted,\n // for example, if the socket was destroyed due to an error. Ensure that the\n // `receiver` stream is closed after writing any remaining buffered data to\n // it. If the readable side of the socket is in flowing mode then there is no\n // buffered data as everything has been already written and `readable.read()`\n // will return `null`. If instead, the socket is paused, any possible buffered\n // data will be read as a single chunk and emitted synchronously in a single\n // `'data'` event.\n //\n websocket._socket.read();\n websocket._receiver.end();\n\n this.removeListener('data', socketOnData);\n this[kWebSocket] = undefined;\n\n clearTimeout(websocket._closeTimer);\n\n if (\n websocket._receiver._writableState.finished ||\n websocket._receiver._writableState.errorEmitted\n ) {\n websocket.emitClose();\n } else {\n websocket._receiver.on('error', receiverOnFinish);\n websocket._receiver.on('finish', receiverOnFinish);\n }\n}\n\n/**\n * The listener of the `net.Socket` `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n if (!this[kWebSocket]._receiver.write(chunk)) {\n this.pause();\n }\n}\n\n/**\n * The listener of the `net.Socket` `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n const websocket = this[kWebSocket];\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._receiver.end();\n this.end();\n}\n\n/**\n * The listener of the `net.Socket` `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n const websocket = this[kWebSocket];\n\n this.removeListener('error', socketOnError);\n this.on('error', NOOP);\n\n if (websocket) {\n websocket._readyState = WebSocket.CLOSING;\n this.destroy();\n }\n}\n","'use strict';\n\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {Duplex} stream The stream.\n * @private\n */\nfunction emitClose(stream) {\n stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n if (!this.destroyed && this._writableState.finished) {\n this.destroy();\n }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n this.removeListener('error', duplexOnError);\n this.destroy();\n if (this.listenerCount('error') === 0) {\n // Do not suppress the throwing behavior.\n this.emit('error', err);\n }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n let resumeOnReceiverDrain = true;\n let terminateOnDestroy = true;\n\n function receiverOnDrain() {\n if (resumeOnReceiverDrain) ws._socket.resume();\n }\n\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n });\n } else {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n }\n\n const duplex = new Duplex({\n ...options,\n autoDestroy: false,\n emitClose: false,\n objectMode: false,\n writableObjectMode: false\n });\n\n ws.on('message', function message(msg) {\n if (!duplex.push(msg)) {\n resumeOnReceiverDrain = false;\n ws._socket.pause();\n }\n });\n\n ws.once('error', function error(err) {\n if (duplex.destroyed) return;\n\n // Prevent `ws.terminate()` from being called by `duplex._destroy()`.\n //\n // - If the `'error'` event is emitted before the `'open'` event, then\n // `ws.terminate()` is a noop as no socket is assigned.\n // - Otherwise, the error is re-emitted by the listener of the `'error'`\n // event of the `Receiver` object. The listener already closes the\n // connection by calling `ws.close()`. This allows a close frame to be\n // sent to the other peer. If `ws.terminate()` is called right after this,\n // then the close frame might not be sent.\n terminateOnDestroy = false;\n duplex.destroy(err);\n });\n\n ws.once('close', function close() {\n if (duplex.destroyed) return;\n\n duplex.push(null);\n });\n\n duplex._destroy = function (err, callback) {\n if (ws.readyState === ws.CLOSED) {\n callback(err);\n process.nextTick(emitClose, duplex);\n return;\n }\n\n let called = false;\n\n ws.once('error', function error(err) {\n called = true;\n callback(err);\n });\n\n ws.once('close', function close() {\n if (!called) callback(err);\n process.nextTick(emitClose, duplex);\n });\n\n if (terminateOnDestroy) ws.terminate();\n };\n\n duplex._final = function (callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._final(callback);\n });\n return;\n }\n\n // If the value of the `_socket` property is `null` it means that `ws` is a\n // client websocket and the handshake failed. In fact, when this happens, a\n // socket is never assigned to the websocket. Wait for the `'error'` event\n // that will be emitted by the websocket.\n if (ws._socket === null) return;\n\n if (ws._socket._writableState.finished) {\n callback();\n if (duplex._readableState.endEmitted) duplex.destroy();\n } else {\n ws._socket.once('finish', function finish() {\n // `duplex` is not destroyed here because the `'end'` event will be\n // emitted on `duplex` after this `'finish'` event. The EOF signaling\n // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n callback();\n });\n ws.close();\n }\n };\n\n duplex._read = function () {\n if (ws.readyState === ws.OPEN && !resumeOnReceiverDrain) {\n resumeOnReceiverDrain = true;\n if (!ws._receiver._writableState.needDrain) ws._socket.resume();\n }\n };\n\n duplex._write = function (chunk, encoding, callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._write(chunk, encoding, callback);\n });\n return;\n }\n\n ws.send(chunk, callback);\n };\n\n duplex.on('end', duplexOnEnd);\n duplex.on('error', duplexOnError);\n return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^net|tls|https$\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst http = require('http');\nconst https = require('https');\nconst net = require('net');\nconst tls = require('tls');\nconst { createHash } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst WebSocket = require('./websocket');\nconst { format, parse } = require('./extension');\nconst { GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\nconst RUNNING = 0;\nconst CLOSING = 1;\nconst CLOSED = 2;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n /**\n * Create a `WebSocketServer` instance.\n *\n * @param {Object} options Configuration options\n * @param {Number} [options.backlog=511] The maximum length of the queue of\n * pending connections\n * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n * track clients\n * @param {Function} [options.handleProtocols] A hook to handle protocols\n * @param {String} [options.host] The hostname where to bind the server\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.noServer=false] Enable no server mode\n * @param {String} [options.path] Accept only connections matching this path\n * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n * permessage-deflate\n * @param {Number} [options.port] The port where to bind the server\n * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S\n * server to use\n * @param {Function} [options.verifyClient] A hook to reject connections\n * @param {Function} [callback] A listener for the `listening` event\n */\n constructor(options, callback) {\n super();\n\n options = {\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: false,\n handleProtocols: null,\n clientTracking: true,\n verifyClient: null,\n noServer: false,\n backlog: null, // use default (511 as implemented in net.js)\n server: null,\n host: null,\n path: null,\n port: null,\n ...options\n };\n\n if (\n (options.port == null && !options.server && !options.noServer) ||\n (options.port != null && (options.server || options.noServer)) ||\n (options.server && options.noServer)\n ) {\n throw new TypeError(\n 'One and only one of the \"port\", \"server\", or \"noServer\" options ' +\n 'must be specified'\n );\n }\n\n if (options.port != null) {\n this._server = http.createServer((req, res) => {\n const body = http.STATUS_CODES[426];\n\n res.writeHead(426, {\n 'Content-Length': body.length,\n 'Content-Type': 'text/plain'\n });\n res.end(body);\n });\n this._server.listen(\n options.port,\n options.host,\n options.backlog,\n callback\n );\n } else if (options.server) {\n this._server = options.server;\n }\n\n if (this._server) {\n const emitConnection = this.emit.bind(this, 'connection');\n\n this._removeListeners = addListeners(this._server, {\n listening: this.emit.bind(this, 'listening'),\n error: this.emit.bind(this, 'error'),\n upgrade: (req, socket, head) => {\n this.handleUpgrade(req, socket, head, emitConnection);\n }\n });\n }\n\n if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n if (options.clientTracking) this.clients = new Set();\n this.options = options;\n this._state = RUNNING;\n }\n\n /**\n * Returns the bound address, the address family name, and port of the server\n * as reported by the operating system if listening on an IP socket.\n * If the server is listening on a pipe or UNIX domain socket, the name is\n * returned as a string.\n *\n * @return {(Object|String|null)} The address of the server\n * @public\n */\n address() {\n if (this.options.noServer) {\n throw new Error('The server is operating in \"noServer\" mode');\n }\n\n if (!this._server) return null;\n return this._server.address();\n }\n\n /**\n * Close the server.\n *\n * @param {Function} [cb] Callback\n * @public\n */\n close(cb) {\n if (cb) this.once('close', cb);\n\n if (this._state === CLOSED) {\n process.nextTick(emitClose, this);\n return;\n }\n\n if (this._state === CLOSING) return;\n this._state = CLOSING;\n\n //\n // Terminate all associated clients.\n //\n if (this.clients) {\n for (const client of this.clients) client.terminate();\n }\n\n const server = this._server;\n\n if (server) {\n this._removeListeners();\n this._removeListeners = this._server = null;\n\n //\n // Close the http server if it was internally created.\n //\n if (this.options.port != null) {\n server.close(emitClose.bind(undefined, this));\n return;\n }\n }\n\n process.nextTick(emitClose, this);\n }\n\n /**\n * See if a given request should be handled by this server instance.\n *\n * @param {http.IncomingMessage} req Request object to inspect\n * @return {Boolean} `true` if the request is valid, else `false`\n * @public\n */\n shouldHandle(req) {\n if (this.options.path) {\n const index = req.url.indexOf('?');\n const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n if (pathname !== this.options.path) return false;\n }\n\n return true;\n }\n\n /**\n * Handle a HTTP Upgrade request.\n *\n * @param {http.IncomingMessage} req The request object\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @public\n */\n handleUpgrade(req, socket, head, cb) {\n socket.on('error', socketOnError);\n\n const key =\n req.headers['sec-websocket-key'] !== undefined\n ? req.headers['sec-websocket-key'].trim()\n : false;\n const version = +req.headers['sec-websocket-version'];\n const extensions = {};\n\n if (\n req.method !== 'GET' ||\n req.headers.upgrade.toLowerCase() !== 'websocket' ||\n !key ||\n !keyRegex.test(key) ||\n (version !== 8 && version !== 13) ||\n !this.shouldHandle(req)\n ) {\n return abortHandshake(socket, 400);\n }\n\n if (this.options.perMessageDeflate) {\n const perMessageDeflate = new PerMessageDeflate(\n this.options.perMessageDeflate,\n true,\n this.options.maxPayload\n );\n\n try {\n const offers = parse(req.headers['sec-websocket-extensions']);\n\n if (offers[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n }\n } catch (err) {\n return abortHandshake(socket, 400);\n }\n }\n\n //\n // Optionally call external client verification handler.\n //\n if (this.options.verifyClient) {\n const info = {\n origin:\n req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n secure: !!(req.socket.authorized || req.socket.encrypted),\n req\n };\n\n if (this.options.verifyClient.length === 2) {\n this.options.verifyClient(info, (verified, code, message, headers) => {\n if (!verified) {\n return abortHandshake(socket, code || 401, message, headers);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n });\n return;\n }\n\n if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n }\n\n /**\n * Upgrade the connection to WebSocket.\n *\n * @param {String} key The value of the `Sec-WebSocket-Key` header\n * @param {Object} extensions The accepted extensions\n * @param {http.IncomingMessage} req The request object\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @throws {Error} If called more than once with the same socket\n * @private\n */\n completeUpgrade(key, extensions, req, socket, head, cb) {\n //\n // Destroy the socket if the client has already sent a FIN packet.\n //\n if (!socket.readable || !socket.writable) return socket.destroy();\n\n if (socket[kWebSocket]) {\n throw new Error(\n 'server.handleUpgrade() was called more than once with the same ' +\n 'socket, possibly due to a misconfiguration'\n );\n }\n\n if (this._state > RUNNING) return abortHandshake(socket, 503);\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n const headers = [\n 'HTTP/1.1 101 Switching Protocols',\n 'Upgrade: websocket',\n 'Connection: Upgrade',\n `Sec-WebSocket-Accept: ${digest}`\n ];\n\n const ws = new WebSocket(null);\n let protocol = req.headers['sec-websocket-protocol'];\n\n if (protocol) {\n protocol = protocol.split(',').map(trim);\n\n //\n // Optionally call external protocol selection handler.\n //\n if (this.options.handleProtocols) {\n protocol = this.options.handleProtocols(protocol, req);\n } else {\n protocol = protocol[0];\n }\n\n if (protocol) {\n headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n ws._protocol = protocol;\n }\n }\n\n if (extensions[PerMessageDeflate.extensionName]) {\n const params = extensions[PerMessageDeflate.extensionName].params;\n const value = format({\n [PerMessageDeflate.extensionName]: [params]\n });\n headers.push(`Sec-WebSocket-Extensions: ${value}`);\n ws._extensions = extensions;\n }\n\n //\n // Allow external modification/inspection of handshake headers.\n //\n this.emit('headers', headers, req);\n\n socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n socket.removeListener('error', socketOnError);\n\n ws.setSocket(socket, head, this.options.maxPayload);\n\n if (this.clients) {\n this.clients.add(ws);\n ws.on('close', () => this.clients.delete(ws));\n }\n\n cb(ws, req);\n }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of \n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n * called\n * @private\n */\nfunction addListeners(server, map) {\n for (const event of Object.keys(map)) server.on(event, map[event]);\n\n return function removeListeners() {\n for (const event of Object.keys(map)) {\n server.removeListener(event, map[event]);\n }\n };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n server._state = CLOSED;\n server.emit('close');\n}\n\n/**\n * Handle premature socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {(net.Socket|tls.Socket)} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n if (socket.writable) {\n message = message || http.STATUS_CODES[code];\n headers = {\n Connection: 'close',\n 'Content-Type': 'text/html',\n 'Content-Length': Buffer.byteLength(message),\n ...headers\n };\n\n socket.write(\n `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\\r\\n` +\n Object.keys(headers)\n .map((h) => `${h}: ${headers[h]}`)\n .join('\\r\\n') +\n '\\r\\n\\r\\n' +\n message\n );\n }\n\n socket.removeListener('error', socketOnError);\n socket.destroy();\n}\n\n/**\n * Remove whitespace characters from both ends of a string.\n *\n * @param {String} str The string\n * @return {String} A new string representing `str` stripped of whitespace\n * characters from both its beginning and end\n * @private\n */\nfunction trim(str) {\n return str.trim();\n}\n","'use strict';\n\nconst WebSocket = require('./lib/websocket');\n\nWebSocket.createWebSocketStream = require('./lib/stream');\nWebSocket.Server = require('./lib/websocket-server');\nWebSocket.Receiver = require('./lib/receiver');\nWebSocket.Sender = require('./lib/sender');\n\nmodule.exports = WebSocket;\n","\"use strict\";\n\nmodule.exports = require('ws');","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\n\nmodule.exports = value => {\n\tif (typeof Blob === 'undefined') {\n\t\treturn false;\n\t}\n\n\treturn value instanceof Blob || Object.prototype.toString.call(value) === '[object Blob]';\n};\n",null,null],"names":["DLList","asyncGeneratorStep","_asyncToGenerator","Events","Queues","require$$0","require$$1","BottleneckError","DEFAULT_PRIORITY","Job","NUM_PRIORITIES","parser","LocalDatastore","RedisConnection","Scripts","require$$2","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","IORedisConnection","RedisDatastore","require$$3","States","Sync","require$$4","require$$5","require$$6","require$$7","require$$9","require$$10","require$$11","require$$12","require$$13","hasSymbolSham","toStr","implementation","bind","undefined","$TypeError","hasOwn","GetIntrinsic","has","isArray","isRegExp","inspect","decode","encode","push","defaults","utils","sideChannel","getSideChannel","parse","stringify","error","toUnicode","toASCII","punycode","usm","conversions","Impl","Blob","isBlob","URL","whatwgUrl","URL$1","fetch","global","isofetch","Bottleneck","qs","require","mask","unmask","kStatusCode","NOOP","Limiter","isValidUTF8","BINARY_TYPES","EMPTY_BUFFER","kWebSocket","isValidStatusCode","PerMessageDeflate","toBuffer","format","createHash","GUID","receiver","Receiver","Sender","socketOnError","abortHandshake","emitClose","WebSocket","EventEmitter"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} \ No newline at end of file +{"version":3,"file":"alpaca.bundle.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/bottleneck/lib/parser.js","../node_modules/bottleneck/lib/DLList.js","../node_modules/bottleneck/lib/Events.js","../node_modules/bottleneck/lib/Queues.js","../node_modules/bottleneck/lib/BottleneckError.js","../node_modules/bottleneck/lib/Job.js","../node_modules/bottleneck/lib/LocalDatastore.js","../node_modules/bottleneck/lib/Scripts.js","../node_modules/bottleneck/lib/RedisConnection.js","../node_modules/bottleneck/lib/IORedisConnection.js","../node_modules/bottleneck/lib/RedisDatastore.js","../node_modules/bottleneck/lib/States.js","../node_modules/bottleneck/lib/Sync.js","../node_modules/bottleneck/lib/Group.js","../node_modules/bottleneck/lib/Batcher.js","../node_modules/bottleneck/lib/Bottleneck.js","../node_modules/bottleneck/lib/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-symbols/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/has/src/index.js","../node_modules/get-intrinsic/index.js","../node_modules/call-bind/index.js","../node_modules/call-bind/callBound.js","../node_modules/object-inspect/util.inspect.js","../node_modules/object-inspect/index.js","../node_modules/side-channel/index.js","../node_modules/qs/lib/formats.js","../node_modules/qs/lib/utils.js","../node_modules/qs/lib/stringify.js","../node_modules/qs/lib/parse.js","../node_modules/qs/lib/index.js","../node_modules/unfetch/dist/unfetch.module.js","../node_modules/node-fetch/node_modules/webidl-conversions/lib/index.js","../node_modules/node-fetch/node_modules/whatwg-url/lib/utils.js","../node_modules/punycode/punycode.js","../node_modules/node-fetch/node_modules/tr46/index.js","../node_modules/node-fetch/node_modules/whatwg-url/lib/url-state-machine.js","../node_modules/node-fetch/node_modules/whatwg-url/lib/URL-impl.js","../node_modules/node-fetch/node_modules/whatwg-url/lib/URL.js","../node_modules/node-fetch/node_modules/whatwg-url/lib/public-api.js","../node_modules/node-fetch/lib/index.mjs","../node_modules/isomorphic-unfetch/index.js","../src/urls.ts","../src/parse.ts","../src/client.ts","../node_modules/ws/lib/constants.js","../node_modules/node-gyp-build/index.js","../node_modules/bufferutil/fallback.js","../node_modules/bufferutil/index.js","../node_modules/ws/lib/buffer-util.js","../node_modules/ws/lib/limiter.js","../node_modules/ws/lib/permessage-deflate.js","../node_modules/utf-8-validate/fallback.js","../node_modules/utf-8-validate/index.js","../node_modules/ws/lib/validation.js","../node_modules/ws/lib/receiver.js","../node_modules/ws/lib/sender.js","../node_modules/ws/lib/event-target.js","../node_modules/ws/lib/extension.js","../node_modules/ws/lib/websocket.js","../node_modules/ws/lib/stream.js","../node_modules/ws/lib/websocket-server.js","../node_modules/ws/index.js","../node_modules/isomorphic-ws/node.js","../node_modules/eventemitter3/index.js","../node_modules/is-blob/index.js","../src/stream.ts","../src/index.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","\"use strict\";\n\nexports.load = function (received, defaults, onto = {}) {\n var k, ref, v;\n\n for (k in defaults) {\n v = defaults[k];\n onto[k] = (ref = received[k]) != null ? ref : v;\n }\n\n return onto;\n};\n\nexports.overwrite = function (received, defaults, onto = {}) {\n var k, v;\n\n for (k in received) {\n v = received[k];\n\n if (defaults[k] !== void 0) {\n onto[k] = v;\n }\n }\n\n return onto;\n};","\"use strict\";\n\nvar DLList;\nDLList = class DLList {\n constructor(incr, decr) {\n this.incr = incr;\n this.decr = decr;\n this._first = null;\n this._last = null;\n this.length = 0;\n }\n\n push(value) {\n var node;\n this.length++;\n\n if (typeof this.incr === \"function\") {\n this.incr();\n }\n\n node = {\n value,\n prev: this._last,\n next: null\n };\n\n if (this._last != null) {\n this._last.next = node;\n this._last = node;\n } else {\n this._first = this._last = node;\n }\n\n return void 0;\n }\n\n shift() {\n var value;\n\n if (this._first == null) {\n return;\n } else {\n this.length--;\n\n if (typeof this.decr === \"function\") {\n this.decr();\n }\n }\n\n value = this._first.value;\n\n if ((this._first = this._first.next) != null) {\n this._first.prev = null;\n } else {\n this._last = null;\n }\n\n return value;\n }\n\n first() {\n if (this._first != null) {\n return this._first.value;\n }\n }\n\n getArray() {\n var node, ref, results;\n node = this._first;\n results = [];\n\n while (node != null) {\n results.push((ref = node, node = node.next, ref.value));\n }\n\n return results;\n }\n\n forEachShift(cb) {\n var node;\n node = this.shift();\n\n while (node != null) {\n cb(node), node = this.shift();\n }\n\n return void 0;\n }\n\n debug() {\n var node, ref, ref1, ref2, results;\n node = this._first;\n results = [];\n\n while (node != null) {\n results.push((ref = node, node = node.next, {\n value: ref.value,\n prev: (ref1 = ref.prev) != null ? ref1.value : void 0,\n next: (ref2 = ref.next) != null ? ref2.value : void 0\n }));\n }\n\n return results;\n }\n\n};\nmodule.exports = DLList;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events;\nEvents = class Events {\n constructor(instance) {\n this.instance = instance;\n this._events = {};\n\n if (this.instance.on != null || this.instance.once != null || this.instance.removeAllListeners != null) {\n throw new Error(\"An Emitter already exists for this object\");\n }\n\n this.instance.on = (name, cb) => {\n return this._addListener(name, \"many\", cb);\n };\n\n this.instance.once = (name, cb) => {\n return this._addListener(name, \"once\", cb);\n };\n\n this.instance.removeAllListeners = (name = null) => {\n if (name != null) {\n return delete this._events[name];\n } else {\n return this._events = {};\n }\n };\n }\n\n _addListener(name, status, cb) {\n var base;\n\n if ((base = this._events)[name] == null) {\n base[name] = [];\n }\n\n this._events[name].push({\n cb,\n status\n });\n\n return this.instance;\n }\n\n listenerCount(name) {\n if (this._events[name] != null) {\n return this._events[name].length;\n } else {\n return 0;\n }\n }\n\n trigger(name, ...args) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var e, promises;\n\n try {\n if (name !== \"debug\") {\n _this.trigger(\"debug\", `Event triggered: ${name}`, args);\n }\n\n if (_this._events[name] == null) {\n return;\n }\n\n _this._events[name] = _this._events[name].filter(function (listener) {\n return listener.status !== \"none\";\n });\n promises = _this._events[name].map(\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(function* (listener) {\n var e, returned;\n\n if (listener.status === \"none\") {\n return;\n }\n\n if (listener.status === \"once\") {\n listener.status = \"none\";\n }\n\n try {\n returned = typeof listener.cb === \"function\" ? listener.cb(...args) : void 0;\n\n if (typeof (returned != null ? returned.then : void 0) === \"function\") {\n return yield returned;\n } else {\n return returned;\n }\n } catch (error) {\n e = error;\n\n if (\"name\" !== \"error\") {\n _this.trigger(\"error\", e);\n }\n\n return null;\n }\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n return (yield Promise.all(promises)).find(function (x) {\n return x != null;\n });\n } catch (error) {\n e = error;\n\n if (\"name\" !== \"error\") {\n _this.trigger(\"error\", e);\n }\n\n return null;\n }\n })();\n }\n\n};\nmodule.exports = Events;","\"use strict\";\n\nvar DLList, Events, Queues;\nDLList = require(\"./DLList\");\nEvents = require(\"./Events\");\nQueues = class Queues {\n constructor(num_priorities) {\n var i;\n this.Events = new Events(this);\n this._length = 0;\n\n this._lists = function () {\n var j, ref, results;\n results = [];\n\n for (i = j = 1, ref = num_priorities; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\n results.push(new DLList(() => {\n return this.incr();\n }, () => {\n return this.decr();\n }));\n }\n\n return results;\n }.call(this);\n }\n\n incr() {\n if (this._length++ === 0) {\n return this.Events.trigger(\"leftzero\");\n }\n }\n\n decr() {\n if (--this._length === 0) {\n return this.Events.trigger(\"zero\");\n }\n }\n\n push(job) {\n return this._lists[job.options.priority].push(job);\n }\n\n queued(priority) {\n if (priority != null) {\n return this._lists[priority].length;\n } else {\n return this._length;\n }\n }\n\n shiftAll(fn) {\n return this._lists.forEach(function (list) {\n return list.forEachShift(fn);\n });\n }\n\n getFirst(arr = this._lists) {\n var j, len, list;\n\n for (j = 0, len = arr.length; j < len; j++) {\n list = arr[j];\n\n if (list.length > 0) {\n return list;\n }\n }\n\n return [];\n }\n\n shiftLastFrom(priority) {\n return this.getFirst(this._lists.slice(priority).reverse()).shift();\n }\n\n};\nmodule.exports = Queues;","\"use strict\";\n\nvar BottleneckError;\nBottleneckError = class BottleneckError extends Error {};\nmodule.exports = BottleneckError;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, DEFAULT_PRIORITY, Job, NUM_PRIORITIES, parser;\nNUM_PRIORITIES = 10;\nDEFAULT_PRIORITY = 5;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nJob = class Job {\n constructor(task, args, options, jobDefaults, rejectOnDrop, Events, _states, Promise) {\n this.task = task;\n this.args = args;\n this.rejectOnDrop = rejectOnDrop;\n this.Events = Events;\n this._states = _states;\n this.Promise = Promise;\n this.options = parser.load(options, jobDefaults);\n this.options.priority = this._sanitizePriority(this.options.priority);\n\n if (this.options.id === jobDefaults.id) {\n this.options.id = `${this.options.id}-${this._randomIndex()}`;\n }\n\n this.promise = new this.Promise((_resolve, _reject) => {\n this._resolve = _resolve;\n this._reject = _reject;\n });\n this.retryCount = 0;\n }\n\n _sanitizePriority(priority) {\n var sProperty;\n sProperty = ~~priority !== priority ? DEFAULT_PRIORITY : priority;\n\n if (sProperty < 0) {\n return 0;\n } else if (sProperty > NUM_PRIORITIES - 1) {\n return NUM_PRIORITIES - 1;\n } else {\n return sProperty;\n }\n }\n\n _randomIndex() {\n return Math.random().toString(36).slice(2);\n }\n\n doDrop({\n error,\n message = \"This job has been dropped by Bottleneck\"\n } = {}) {\n if (this._states.remove(this.options.id)) {\n if (this.rejectOnDrop) {\n this._reject(error != null ? error : new BottleneckError(message));\n }\n\n this.Events.trigger(\"dropped\", {\n args: this.args,\n options: this.options,\n task: this.task,\n promise: this.promise\n });\n return true;\n } else {\n return false;\n }\n }\n\n _assertStatus(expected) {\n var status;\n status = this._states.jobStatus(this.options.id);\n\n if (!(status === expected || expected === \"DONE\" && status === null)) {\n throw new BottleneckError(`Invalid job status ${status}, expected ${expected}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`);\n }\n }\n\n doReceive() {\n this._states.start(this.options.id);\n\n return this.Events.trigger(\"received\", {\n args: this.args,\n options: this.options\n });\n }\n\n doQueue(reachedHWM, blocked) {\n this._assertStatus(\"RECEIVED\");\n\n this._states.next(this.options.id);\n\n return this.Events.trigger(\"queued\", {\n args: this.args,\n options: this.options,\n reachedHWM,\n blocked\n });\n }\n\n doRun() {\n if (this.retryCount === 0) {\n this._assertStatus(\"QUEUED\");\n\n this._states.next(this.options.id);\n } else {\n this._assertStatus(\"EXECUTING\");\n }\n\n return this.Events.trigger(\"scheduled\", {\n args: this.args,\n options: this.options\n });\n }\n\n doExecute(chained, clearGlobalState, run, free) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var error, eventInfo, passed;\n\n if (_this.retryCount === 0) {\n _this._assertStatus(\"RUNNING\");\n\n _this._states.next(_this.options.id);\n } else {\n _this._assertStatus(\"EXECUTING\");\n }\n\n eventInfo = {\n args: _this.args,\n options: _this.options,\n retryCount: _this.retryCount\n };\n\n _this.Events.trigger(\"executing\", eventInfo);\n\n try {\n passed = yield chained != null ? chained.schedule(_this.options, _this.task, ..._this.args) : _this.task(..._this.args);\n\n if (clearGlobalState()) {\n _this.doDone(eventInfo);\n\n yield free(_this.options, eventInfo);\n\n _this._assertStatus(\"DONE\");\n\n return _this._resolve(passed);\n }\n } catch (error1) {\n error = error1;\n return _this._onFailure(error, eventInfo, clearGlobalState, run, free);\n }\n })();\n }\n\n doExpire(clearGlobalState, run, free) {\n var error, eventInfo;\n\n if (this._states.jobStatus(this.options.id === \"RUNNING\")) {\n this._states.next(this.options.id);\n }\n\n this._assertStatus(\"EXECUTING\");\n\n eventInfo = {\n args: this.args,\n options: this.options,\n retryCount: this.retryCount\n };\n error = new BottleneckError(`This job timed out after ${this.options.expiration} ms.`);\n return this._onFailure(error, eventInfo, clearGlobalState, run, free);\n }\n\n _onFailure(error, eventInfo, clearGlobalState, run, free) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var retry, retryAfter;\n\n if (clearGlobalState()) {\n retry = yield _this2.Events.trigger(\"failed\", error, eventInfo);\n\n if (retry != null) {\n retryAfter = ~~retry;\n\n _this2.Events.trigger(\"retry\", `Retrying ${_this2.options.id} after ${retryAfter} ms`, eventInfo);\n\n _this2.retryCount++;\n return run(retryAfter);\n } else {\n _this2.doDone(eventInfo);\n\n yield free(_this2.options, eventInfo);\n\n _this2._assertStatus(\"DONE\");\n\n return _this2._reject(error);\n }\n }\n })();\n }\n\n doDone(eventInfo) {\n this._assertStatus(\"EXECUTING\");\n\n this._states.next(this.options.id);\n\n return this.Events.trigger(\"done\", eventInfo);\n }\n\n};\nmodule.exports = Job;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, LocalDatastore, parser;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nLocalDatastore = class LocalDatastore {\n constructor(instance, storeOptions, storeInstanceOptions) {\n this.instance = instance;\n this.storeOptions = storeOptions;\n this.clientId = this.instance._randomIndex();\n parser.load(storeInstanceOptions, storeInstanceOptions, this);\n this._nextRequest = this._lastReservoirRefresh = this._lastReservoirIncrease = Date.now();\n this._running = 0;\n this._done = 0;\n this._unblockTime = 0;\n this.ready = this.Promise.resolve();\n this.clients = {};\n\n this._startHeartbeat();\n }\n\n _startHeartbeat() {\n var base;\n\n if (this.heartbeat == null && (this.storeOptions.reservoirRefreshInterval != null && this.storeOptions.reservoirRefreshAmount != null || this.storeOptions.reservoirIncreaseInterval != null && this.storeOptions.reservoirIncreaseAmount != null)) {\n return typeof (base = this.heartbeat = setInterval(() => {\n var amount, incr, maximum, now, reservoir;\n now = Date.now();\n\n if (this.storeOptions.reservoirRefreshInterval != null && now >= this._lastReservoirRefresh + this.storeOptions.reservoirRefreshInterval) {\n this._lastReservoirRefresh = now;\n this.storeOptions.reservoir = this.storeOptions.reservoirRefreshAmount;\n\n this.instance._drainAll(this.computeCapacity());\n }\n\n if (this.storeOptions.reservoirIncreaseInterval != null && now >= this._lastReservoirIncrease + this.storeOptions.reservoirIncreaseInterval) {\n var _this$storeOptions = this.storeOptions;\n amount = _this$storeOptions.reservoirIncreaseAmount;\n maximum = _this$storeOptions.reservoirIncreaseMaximum;\n reservoir = _this$storeOptions.reservoir;\n this._lastReservoirIncrease = now;\n incr = maximum != null ? Math.min(amount, maximum - reservoir) : amount;\n\n if (incr > 0) {\n this.storeOptions.reservoir += incr;\n return this.instance._drainAll(this.computeCapacity());\n }\n }\n }, this.heartbeatInterval)).unref === \"function\" ? base.unref() : void 0;\n } else {\n return clearInterval(this.heartbeat);\n }\n }\n\n __publish__(message) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n yield _this.yieldLoop();\n return _this.instance.Events.trigger(\"message\", message.toString());\n })();\n }\n\n __disconnect__(flush) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n yield _this2.yieldLoop();\n clearInterval(_this2.heartbeat);\n return _this2.Promise.resolve();\n })();\n }\n\n yieldLoop(t = 0) {\n return new this.Promise(function (resolve, reject) {\n return setTimeout(resolve, t);\n });\n }\n\n computePenalty() {\n var ref;\n return (ref = this.storeOptions.penalty) != null ? ref : 15 * this.storeOptions.minTime || 5000;\n }\n\n __updateSettings__(options) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n yield _this3.yieldLoop();\n parser.overwrite(options, options, _this3.storeOptions);\n\n _this3._startHeartbeat();\n\n _this3.instance._drainAll(_this3.computeCapacity());\n\n return true;\n })();\n }\n\n __running__() {\n var _this4 = this;\n\n return _asyncToGenerator(function* () {\n yield _this4.yieldLoop();\n return _this4._running;\n })();\n }\n\n __queued__() {\n var _this5 = this;\n\n return _asyncToGenerator(function* () {\n yield _this5.yieldLoop();\n return _this5.instance.queued();\n })();\n }\n\n __done__() {\n var _this6 = this;\n\n return _asyncToGenerator(function* () {\n yield _this6.yieldLoop();\n return _this6._done;\n })();\n }\n\n __groupCheck__(time) {\n var _this7 = this;\n\n return _asyncToGenerator(function* () {\n yield _this7.yieldLoop();\n return _this7._nextRequest + _this7.timeout < time;\n })();\n }\n\n computeCapacity() {\n var maxConcurrent, reservoir;\n var _this$storeOptions2 = this.storeOptions;\n maxConcurrent = _this$storeOptions2.maxConcurrent;\n reservoir = _this$storeOptions2.reservoir;\n\n if (maxConcurrent != null && reservoir != null) {\n return Math.min(maxConcurrent - this._running, reservoir);\n } else if (maxConcurrent != null) {\n return maxConcurrent - this._running;\n } else if (reservoir != null) {\n return reservoir;\n } else {\n return null;\n }\n }\n\n conditionsCheck(weight) {\n var capacity;\n capacity = this.computeCapacity();\n return capacity == null || weight <= capacity;\n }\n\n __incrementReservoir__(incr) {\n var _this8 = this;\n\n return _asyncToGenerator(function* () {\n var reservoir;\n yield _this8.yieldLoop();\n reservoir = _this8.storeOptions.reservoir += incr;\n\n _this8.instance._drainAll(_this8.computeCapacity());\n\n return reservoir;\n })();\n }\n\n __currentReservoir__() {\n var _this9 = this;\n\n return _asyncToGenerator(function* () {\n yield _this9.yieldLoop();\n return _this9.storeOptions.reservoir;\n })();\n }\n\n isBlocked(now) {\n return this._unblockTime >= now;\n }\n\n check(weight, now) {\n return this.conditionsCheck(weight) && this._nextRequest - now <= 0;\n }\n\n __check__(weight) {\n var _this10 = this;\n\n return _asyncToGenerator(function* () {\n var now;\n yield _this10.yieldLoop();\n now = Date.now();\n return _this10.check(weight, now);\n })();\n }\n\n __register__(index, weight, expiration) {\n var _this11 = this;\n\n return _asyncToGenerator(function* () {\n var now, wait;\n yield _this11.yieldLoop();\n now = Date.now();\n\n if (_this11.conditionsCheck(weight)) {\n _this11._running += weight;\n\n if (_this11.storeOptions.reservoir != null) {\n _this11.storeOptions.reservoir -= weight;\n }\n\n wait = Math.max(_this11._nextRequest - now, 0);\n _this11._nextRequest = now + wait + _this11.storeOptions.minTime;\n return {\n success: true,\n wait,\n reservoir: _this11.storeOptions.reservoir\n };\n } else {\n return {\n success: false\n };\n }\n })();\n }\n\n strategyIsBlock() {\n return this.storeOptions.strategy === 3;\n }\n\n __submit__(queueLength, weight) {\n var _this12 = this;\n\n return _asyncToGenerator(function* () {\n var blocked, now, reachedHWM;\n yield _this12.yieldLoop();\n\n if (_this12.storeOptions.maxConcurrent != null && weight > _this12.storeOptions.maxConcurrent) {\n throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${_this12.storeOptions.maxConcurrent}`);\n }\n\n now = Date.now();\n reachedHWM = _this12.storeOptions.highWater != null && queueLength === _this12.storeOptions.highWater && !_this12.check(weight, now);\n blocked = _this12.strategyIsBlock() && (reachedHWM || _this12.isBlocked(now));\n\n if (blocked) {\n _this12._unblockTime = now + _this12.computePenalty();\n _this12._nextRequest = _this12._unblockTime + _this12.storeOptions.minTime;\n\n _this12.instance._dropAllQueued();\n }\n\n return {\n reachedHWM,\n blocked,\n strategy: _this12.storeOptions.strategy\n };\n })();\n }\n\n __free__(index, weight) {\n var _this13 = this;\n\n return _asyncToGenerator(function* () {\n yield _this13.yieldLoop();\n _this13._running -= weight;\n _this13._done += weight;\n\n _this13.instance._drainAll(_this13.computeCapacity());\n\n return {\n running: _this13._running\n };\n })();\n }\n\n};\nmodule.exports = LocalDatastore;","\"use strict\";\n\nvar headers, lua, templates;\nlua = require(\"./lua.json\");\nheaders = {\n refs: lua[\"refs.lua\"],\n validate_keys: lua[\"validate_keys.lua\"],\n validate_client: lua[\"validate_client.lua\"],\n refresh_expiration: lua[\"refresh_expiration.lua\"],\n process_tick: lua[\"process_tick.lua\"],\n conditions_check: lua[\"conditions_check.lua\"],\n get_time: lua[\"get_time.lua\"]\n};\n\nexports.allKeys = function (id) {\n return [\n /*\n HASH\n */\n `b_${id}_settings`,\n /*\n HASH\n job index -> weight\n */\n `b_${id}_job_weights`,\n /*\n ZSET\n job index -> expiration\n */\n `b_${id}_job_expirations`,\n /*\n HASH\n job index -> client\n */\n `b_${id}_job_clients`,\n /*\n ZSET\n client -> sum running\n */\n `b_${id}_client_running`,\n /*\n HASH\n client -> num queued\n */\n `b_${id}_client_num_queued`,\n /*\n ZSET\n client -> last job registered\n */\n `b_${id}_client_last_registered`,\n /*\n ZSET\n client -> last seen\n */\n `b_${id}_client_last_seen`];\n};\n\ntemplates = {\n init: {\n keys: exports.allKeys,\n headers: [\"process_tick\"],\n refresh_expiration: true,\n code: lua[\"init.lua\"]\n },\n group_check: {\n keys: exports.allKeys,\n headers: [],\n refresh_expiration: false,\n code: lua[\"group_check.lua\"]\n },\n register_client: {\n keys: exports.allKeys,\n headers: [\"validate_keys\"],\n refresh_expiration: false,\n code: lua[\"register_client.lua\"]\n },\n blacklist_client: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\"],\n refresh_expiration: false,\n code: lua[\"blacklist_client.lua\"]\n },\n heartbeat: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"heartbeat.lua\"]\n },\n update_settings: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"update_settings.lua\"]\n },\n running: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"running.lua\"]\n },\n queued: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\"],\n refresh_expiration: false,\n code: lua[\"queued.lua\"]\n },\n done: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"done.lua\"]\n },\n check: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: false,\n code: lua[\"check.lua\"]\n },\n submit: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: true,\n code: lua[\"submit.lua\"]\n },\n register: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\", \"conditions_check\"],\n refresh_expiration: true,\n code: lua[\"register.lua\"]\n },\n free: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"free.lua\"]\n },\n current_reservoir: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: false,\n code: lua[\"current_reservoir.lua\"]\n },\n increment_reservoir: {\n keys: exports.allKeys,\n headers: [\"validate_keys\", \"validate_client\", \"process_tick\"],\n refresh_expiration: true,\n code: lua[\"increment_reservoir.lua\"]\n }\n};\nexports.names = Object.keys(templates);\n\nexports.keys = function (name, id) {\n return templates[name].keys(id);\n};\n\nexports.payload = function (name) {\n var template;\n template = templates[name];\n return Array.prototype.concat(headers.refs, template.headers.map(function (h) {\n return headers[h];\n }), template.refresh_expiration ? headers.refresh_expiration : \"\", template.code).join(\"\\n\");\n};","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, RedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nScripts = require(\"./Scripts\");\n\nRedisConnection = function () {\n class RedisConnection {\n constructor(options = {}) {\n parser.load(options, this.defaults, this);\n\n if (this.Redis == null) {\n this.Redis = eval(\"require\")(\"redis\"); // Obfuscated or else Webpack/Angular will try to inline the optional redis module. To override this behavior: pass the redis module to Bottleneck as the 'Redis' option.\n }\n\n if (this.Events == null) {\n this.Events = new Events(this);\n }\n\n this.terminated = false;\n\n if (this.client == null) {\n this.client = this.Redis.createClient(this.clientOptions);\n }\n\n this.subscriber = this.client.duplicate();\n this.limiters = {};\n this.shas = {};\n this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => {\n return this._loadScripts();\n }).then(() => {\n return {\n client: this.client,\n subscriber: this.subscriber\n };\n });\n }\n\n _setup(client, sub) {\n client.setMaxListeners(0);\n return new this.Promise((resolve, reject) => {\n client.on(\"error\", e => {\n return this.Events.trigger(\"error\", e);\n });\n\n if (sub) {\n client.on(\"message\", (channel, message) => {\n var ref;\n return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0;\n });\n }\n\n if (client.ready) {\n return resolve();\n } else {\n return client.once(\"ready\", resolve);\n }\n });\n }\n\n _loadScript(name) {\n return new this.Promise((resolve, reject) => {\n var payload;\n payload = Scripts.payload(name);\n return this.client.multi([[\"script\", \"load\", payload]]).exec((err, replies) => {\n if (err != null) {\n return reject(err);\n }\n\n this.shas[name] = replies[0];\n return resolve(replies[0]);\n });\n });\n }\n\n _loadScripts() {\n return this.Promise.all(Scripts.names.map(k => {\n return this._loadScript(k);\n }));\n }\n\n __runCommand__(cmd) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n yield _this.ready;\n return new _this.Promise((resolve, reject) => {\n return _this.client.multi([cmd]).exec_atomic(function (err, replies) {\n if (err != null) {\n return reject(err);\n } else {\n return resolve(replies[0]);\n }\n });\n });\n })();\n }\n\n __addLimiter__(instance) {\n return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => {\n return new this.Promise((resolve, reject) => {\n var handler;\n\n handler = chan => {\n if (chan === channel) {\n this.subscriber.removeListener(\"subscribe\", handler);\n this.limiters[channel] = instance;\n return resolve();\n }\n };\n\n this.subscriber.on(\"subscribe\", handler);\n return this.subscriber.subscribe(channel);\n });\n }));\n }\n\n __removeLimiter__(instance) {\n var _this2 = this;\n\n return this.Promise.all([instance.channel(), instance.channel_client()].map(\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(function* (channel) {\n if (!_this2.terminated) {\n yield new _this2.Promise((resolve, reject) => {\n return _this2.subscriber.unsubscribe(channel, function (err, chan) {\n if (err != null) {\n return reject(err);\n }\n\n if (chan === channel) {\n return resolve();\n }\n });\n });\n }\n\n return delete _this2.limiters[channel];\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()));\n }\n\n __scriptArgs__(name, id, args, cb) {\n var keys;\n keys = Scripts.keys(name, id);\n return [this.shas[name], keys.length].concat(keys, args, cb);\n }\n\n __scriptFn__(name) {\n return this.client.evalsha.bind(this.client);\n }\n\n disconnect(flush = true) {\n var i, k, len, ref;\n ref = Object.keys(this.limiters);\n\n for (i = 0, len = ref.length; i < len; i++) {\n k = ref[i];\n clearInterval(this.limiters[k]._store.heartbeat);\n }\n\n this.limiters = {};\n this.terminated = true;\n this.client.end(flush);\n this.subscriber.end(flush);\n return this.Promise.resolve();\n }\n\n }\n\n ;\n RedisConnection.prototype.datastore = \"redis\";\n RedisConnection.prototype.defaults = {\n Redis: null,\n clientOptions: {},\n client: null,\n Promise: Promise,\n Events: null\n };\n return RedisConnection;\n}.call(void 0);\n\nmodule.exports = RedisConnection;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, IORedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nScripts = require(\"./Scripts\");\n\nIORedisConnection = function () {\n class IORedisConnection {\n constructor(options = {}) {\n parser.load(options, this.defaults, this);\n\n if (this.Redis == null) {\n this.Redis = eval(\"require\")(\"ioredis\"); // Obfuscated or else Webpack/Angular will try to inline the optional ioredis module. To override this behavior: pass the ioredis module to Bottleneck as the 'Redis' option.\n }\n\n if (this.Events == null) {\n this.Events = new Events(this);\n }\n\n this.terminated = false;\n\n if (this.clusterNodes != null) {\n this.client = new this.Redis.Cluster(this.clusterNodes, this.clientOptions);\n this.subscriber = new this.Redis.Cluster(this.clusterNodes, this.clientOptions);\n } else if (this.client != null && this.client.duplicate == null) {\n this.subscriber = new this.Redis.Cluster(this.client.startupNodes, this.client.options);\n } else {\n if (this.client == null) {\n this.client = new this.Redis(this.clientOptions);\n }\n\n this.subscriber = this.client.duplicate();\n }\n\n this.limiters = {};\n this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => {\n this._loadScripts();\n\n return {\n client: this.client,\n subscriber: this.subscriber\n };\n });\n }\n\n _setup(client, sub) {\n client.setMaxListeners(0);\n return new this.Promise((resolve, reject) => {\n client.on(\"error\", e => {\n return this.Events.trigger(\"error\", e);\n });\n\n if (sub) {\n client.on(\"message\", (channel, message) => {\n var ref;\n return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0;\n });\n }\n\n if (client.status === \"ready\") {\n return resolve();\n } else {\n return client.once(\"ready\", resolve);\n }\n });\n }\n\n _loadScripts() {\n return Scripts.names.forEach(name => {\n return this.client.defineCommand(name, {\n lua: Scripts.payload(name)\n });\n });\n }\n\n __runCommand__(cmd) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var _, deleted;\n\n yield _this.ready;\n\n var _ref = yield _this.client.pipeline([cmd]).exec();\n\n var _ref2 = _slicedToArray(_ref, 1);\n\n var _ref2$ = _slicedToArray(_ref2[0], 2);\n\n _ = _ref2$[0];\n deleted = _ref2$[1];\n return deleted;\n })();\n }\n\n __addLimiter__(instance) {\n return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => {\n return new this.Promise((resolve, reject) => {\n return this.subscriber.subscribe(channel, () => {\n this.limiters[channel] = instance;\n return resolve();\n });\n });\n }));\n }\n\n __removeLimiter__(instance) {\n var _this2 = this;\n\n return [instance.channel(), instance.channel_client()].forEach(\n /*#__PURE__*/\n function () {\n var _ref3 = _asyncToGenerator(function* (channel) {\n if (!_this2.terminated) {\n yield _this2.subscriber.unsubscribe(channel);\n }\n\n return delete _this2.limiters[channel];\n });\n\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }());\n }\n\n __scriptArgs__(name, id, args, cb) {\n var keys;\n keys = Scripts.keys(name, id);\n return [keys.length].concat(keys, args, cb);\n }\n\n __scriptFn__(name) {\n return this.client[name].bind(this.client);\n }\n\n disconnect(flush = true) {\n var i, k, len, ref;\n ref = Object.keys(this.limiters);\n\n for (i = 0, len = ref.length; i < len; i++) {\n k = ref[i];\n clearInterval(this.limiters[k]._store.heartbeat);\n }\n\n this.limiters = {};\n this.terminated = true;\n\n if (flush) {\n return this.Promise.all([this.client.quit(), this.subscriber.quit()]);\n } else {\n this.client.disconnect();\n this.subscriber.disconnect();\n return this.Promise.resolve();\n }\n }\n\n }\n\n ;\n IORedisConnection.prototype.datastore = \"ioredis\";\n IORedisConnection.prototype.defaults = {\n Redis: null,\n clientOptions: {},\n clusterNodes: null,\n client: null,\n Promise: Promise,\n Events: null\n };\n return IORedisConnection;\n}.call(void 0);\n\nmodule.exports = IORedisConnection;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar BottleneckError, IORedisConnection, RedisConnection, RedisDatastore, parser;\nparser = require(\"./parser\");\nBottleneckError = require(\"./BottleneckError\");\nRedisConnection = require(\"./RedisConnection\");\nIORedisConnection = require(\"./IORedisConnection\");\nRedisDatastore = class RedisDatastore {\n constructor(instance, storeOptions, storeInstanceOptions) {\n this.instance = instance;\n this.storeOptions = storeOptions;\n this.originalId = this.instance.id;\n this.clientId = this.instance._randomIndex();\n parser.load(storeInstanceOptions, storeInstanceOptions, this);\n this.clients = {};\n this.capacityPriorityCounters = {};\n this.sharedConnection = this.connection != null;\n\n if (this.connection == null) {\n this.connection = this.instance.datastore === \"redis\" ? new RedisConnection({\n Redis: this.Redis,\n clientOptions: this.clientOptions,\n Promise: this.Promise,\n Events: this.instance.Events\n }) : this.instance.datastore === \"ioredis\" ? new IORedisConnection({\n Redis: this.Redis,\n clientOptions: this.clientOptions,\n clusterNodes: this.clusterNodes,\n Promise: this.Promise,\n Events: this.instance.Events\n }) : void 0;\n }\n\n this.instance.connection = this.connection;\n this.instance.datastore = this.connection.datastore;\n this.ready = this.connection.ready.then(clients => {\n this.clients = clients;\n return this.runScript(\"init\", this.prepareInitSettings(this.clearDatastore));\n }).then(() => {\n return this.connection.__addLimiter__(this.instance);\n }).then(() => {\n return this.runScript(\"register_client\", [this.instance.queued()]);\n }).then(() => {\n var base;\n\n if (typeof (base = this.heartbeat = setInterval(() => {\n return this.runScript(\"heartbeat\", []).catch(e => {\n return this.instance.Events.trigger(\"error\", e);\n });\n }, this.heartbeatInterval)).unref === \"function\") {\n base.unref();\n }\n\n return this.clients;\n });\n }\n\n __publish__(message) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var client;\n\n var _ref = yield _this.ready;\n\n client = _ref.client;\n return client.publish(_this.instance.channel(), `message:${message.toString()}`);\n })();\n }\n\n onMessage(channel, message) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var capacity, counter, data, drained, e, newCapacity, pos, priorityClient, rawCapacity, type;\n\n try {\n pos = message.indexOf(\":\");\n var _ref2 = [message.slice(0, pos), message.slice(pos + 1)];\n type = _ref2[0];\n data = _ref2[1];\n\n if (type === \"capacity\") {\n return yield _this2.instance._drainAll(data.length > 0 ? ~~data : void 0);\n } else if (type === \"capacity-priority\") {\n var _data$split = data.split(\":\");\n\n var _data$split2 = _slicedToArray(_data$split, 3);\n\n rawCapacity = _data$split2[0];\n priorityClient = _data$split2[1];\n counter = _data$split2[2];\n capacity = rawCapacity.length > 0 ? ~~rawCapacity : void 0;\n\n if (priorityClient === _this2.clientId) {\n drained = yield _this2.instance._drainAll(capacity);\n newCapacity = capacity != null ? capacity - (drained || 0) : \"\";\n return yield _this2.clients.client.publish(_this2.instance.channel(), `capacity-priority:${newCapacity}::${counter}`);\n } else if (priorityClient === \"\") {\n clearTimeout(_this2.capacityPriorityCounters[counter]);\n delete _this2.capacityPriorityCounters[counter];\n return _this2.instance._drainAll(capacity);\n } else {\n return _this2.capacityPriorityCounters[counter] = setTimeout(\n /*#__PURE__*/\n _asyncToGenerator(function* () {\n var e;\n\n try {\n delete _this2.capacityPriorityCounters[counter];\n yield _this2.runScript(\"blacklist_client\", [priorityClient]);\n return yield _this2.instance._drainAll(capacity);\n } catch (error) {\n e = error;\n return _this2.instance.Events.trigger(\"error\", e);\n }\n }), 1000);\n }\n } else if (type === \"message\") {\n return _this2.instance.Events.trigger(\"message\", data);\n } else if (type === \"blocked\") {\n return yield _this2.instance._dropAllQueued();\n }\n } catch (error) {\n e = error;\n return _this2.instance.Events.trigger(\"error\", e);\n }\n })();\n }\n\n __disconnect__(flush) {\n clearInterval(this.heartbeat);\n\n if (this.sharedConnection) {\n return this.connection.__removeLimiter__(this.instance);\n } else {\n return this.connection.disconnect(flush);\n }\n }\n\n runScript(name, args) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n if (!(name === \"init\" || name === \"register_client\")) {\n yield _this3.ready;\n }\n\n return new _this3.Promise((resolve, reject) => {\n var all_args, arr;\n all_args = [Date.now(), _this3.clientId].concat(args);\n\n _this3.instance.Events.trigger(\"debug\", `Calling Redis script: ${name}.lua`, all_args);\n\n arr = _this3.connection.__scriptArgs__(name, _this3.originalId, all_args, function (err, replies) {\n if (err != null) {\n return reject(err);\n }\n\n return resolve(replies);\n });\n return _this3.connection.__scriptFn__(name)(...arr);\n }).catch(e => {\n if (e.message === \"SETTINGS_KEY_NOT_FOUND\") {\n if (name === \"heartbeat\") {\n return _this3.Promise.resolve();\n } else {\n return _this3.runScript(\"init\", _this3.prepareInitSettings(false)).then(() => {\n return _this3.runScript(name, args);\n });\n }\n } else if (e.message === \"UNKNOWN_CLIENT\") {\n return _this3.runScript(\"register_client\", [_this3.instance.queued()]).then(() => {\n return _this3.runScript(name, args);\n });\n } else {\n return _this3.Promise.reject(e);\n }\n });\n })();\n }\n\n prepareArray(arr) {\n var i, len, results, x;\n results = [];\n\n for (i = 0, len = arr.length; i < len; i++) {\n x = arr[i];\n results.push(x != null ? x.toString() : \"\");\n }\n\n return results;\n }\n\n prepareObject(obj) {\n var arr, k, v;\n arr = [];\n\n for (k in obj) {\n v = obj[k];\n arr.push(k, v != null ? v.toString() : \"\");\n }\n\n return arr;\n }\n\n prepareInitSettings(clear) {\n var args;\n args = this.prepareObject(Object.assign({}, this.storeOptions, {\n id: this.originalId,\n version: this.instance.version,\n groupTimeout: this.timeout,\n clientTimeout: this.clientTimeout\n }));\n args.unshift(clear ? 1 : 0, this.instance.version);\n return args;\n }\n\n convertBool(b) {\n return !!b;\n }\n\n __updateSettings__(options) {\n var _this4 = this;\n\n return _asyncToGenerator(function* () {\n yield _this4.runScript(\"update_settings\", _this4.prepareObject(options));\n return parser.overwrite(options, options, _this4.storeOptions);\n })();\n }\n\n __running__() {\n return this.runScript(\"running\", []);\n }\n\n __queued__() {\n return this.runScript(\"queued\", []);\n }\n\n __done__() {\n return this.runScript(\"done\", []);\n }\n\n __groupCheck__() {\n var _this5 = this;\n\n return _asyncToGenerator(function* () {\n return _this5.convertBool((yield _this5.runScript(\"group_check\", [])));\n })();\n }\n\n __incrementReservoir__(incr) {\n return this.runScript(\"increment_reservoir\", [incr]);\n }\n\n __currentReservoir__() {\n return this.runScript(\"current_reservoir\", []);\n }\n\n __check__(weight) {\n var _this6 = this;\n\n return _asyncToGenerator(function* () {\n return _this6.convertBool((yield _this6.runScript(\"check\", _this6.prepareArray([weight]))));\n })();\n }\n\n __register__(index, weight, expiration) {\n var _this7 = this;\n\n return _asyncToGenerator(function* () {\n var reservoir, success, wait;\n\n var _ref4 = yield _this7.runScript(\"register\", _this7.prepareArray([index, weight, expiration]));\n\n var _ref5 = _slicedToArray(_ref4, 3);\n\n success = _ref5[0];\n wait = _ref5[1];\n reservoir = _ref5[2];\n return {\n success: _this7.convertBool(success),\n wait,\n reservoir\n };\n })();\n }\n\n __submit__(queueLength, weight) {\n var _this8 = this;\n\n return _asyncToGenerator(function* () {\n var blocked, e, maxConcurrent, overweight, reachedHWM, strategy;\n\n try {\n var _ref6 = yield _this8.runScript(\"submit\", _this8.prepareArray([queueLength, weight]));\n\n var _ref7 = _slicedToArray(_ref6, 3);\n\n reachedHWM = _ref7[0];\n blocked = _ref7[1];\n strategy = _ref7[2];\n return {\n reachedHWM: _this8.convertBool(reachedHWM),\n blocked: _this8.convertBool(blocked),\n strategy\n };\n } catch (error) {\n e = error;\n\n if (e.message.indexOf(\"OVERWEIGHT\") === 0) {\n var _e$message$split = e.message.split(\":\");\n\n var _e$message$split2 = _slicedToArray(_e$message$split, 3);\n\n overweight = _e$message$split2[0];\n weight = _e$message$split2[1];\n maxConcurrent = _e$message$split2[2];\n throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${maxConcurrent}`);\n } else {\n throw e;\n }\n }\n })();\n }\n\n __free__(index, weight) {\n var _this9 = this;\n\n return _asyncToGenerator(function* () {\n var running;\n running = yield _this9.runScript(\"free\", _this9.prepareArray([index]));\n return {\n running\n };\n })();\n }\n\n};\nmodule.exports = RedisDatastore;","\"use strict\";\n\nvar BottleneckError, States;\nBottleneckError = require(\"./BottleneckError\");\nStates = class States {\n constructor(status1) {\n this.status = status1;\n this._jobs = {};\n this.counts = this.status.map(function () {\n return 0;\n });\n }\n\n next(id) {\n var current, next;\n current = this._jobs[id];\n next = current + 1;\n\n if (current != null && next < this.status.length) {\n this.counts[current]--;\n this.counts[next]++;\n return this._jobs[id]++;\n } else if (current != null) {\n this.counts[current]--;\n return delete this._jobs[id];\n }\n }\n\n start(id) {\n var initial;\n initial = 0;\n this._jobs[id] = initial;\n return this.counts[initial]++;\n }\n\n remove(id) {\n var current;\n current = this._jobs[id];\n\n if (current != null) {\n this.counts[current]--;\n delete this._jobs[id];\n }\n\n return current != null;\n }\n\n jobStatus(id) {\n var ref;\n return (ref = this.status[this._jobs[id]]) != null ? ref : null;\n }\n\n statusJobs(status) {\n var k, pos, ref, results, v;\n\n if (status != null) {\n pos = this.status.indexOf(status);\n\n if (pos < 0) {\n throw new BottleneckError(`status must be one of ${this.status.join(', ')}`);\n }\n\n ref = this._jobs;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n\n if (v === pos) {\n results.push(k);\n }\n }\n\n return results;\n } else {\n return Object.keys(this._jobs);\n }\n }\n\n statusCounts() {\n return this.counts.reduce((acc, v, i) => {\n acc[this.status[i]] = v;\n return acc;\n }, {});\n }\n\n};\nmodule.exports = States;","\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar DLList, Sync;\nDLList = require(\"./DLList\");\nSync = class Sync {\n constructor(name, Promise) {\n this.schedule = this.schedule.bind(this);\n this.name = name;\n this.Promise = Promise;\n this._running = 0;\n this._queue = new DLList();\n }\n\n isEmpty() {\n return this._queue.length === 0;\n }\n\n _tryToRun() {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var args, cb, error, reject, resolve, returned, task;\n\n if (_this._running < 1 && _this._queue.length > 0) {\n _this._running++;\n\n var _this$_queue$shift = _this._queue.shift();\n\n task = _this$_queue$shift.task;\n args = _this$_queue$shift.args;\n resolve = _this$_queue$shift.resolve;\n reject = _this$_queue$shift.reject;\n cb = yield _asyncToGenerator(function* () {\n try {\n returned = yield task(...args);\n return function () {\n return resolve(returned);\n };\n } catch (error1) {\n error = error1;\n return function () {\n return reject(error);\n };\n }\n })();\n _this._running--;\n\n _this._tryToRun();\n\n return cb();\n }\n })();\n }\n\n schedule(task, ...args) {\n var promise, reject, resolve;\n resolve = reject = null;\n promise = new this.Promise(function (_resolve, _reject) {\n resolve = _resolve;\n return reject = _reject;\n });\n\n this._queue.push({\n task,\n args,\n resolve,\n reject\n });\n\n this._tryToRun();\n\n return promise;\n }\n\n};\nmodule.exports = Sync;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Events, Group, IORedisConnection, RedisConnection, Scripts, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\nRedisConnection = require(\"./RedisConnection\");\nIORedisConnection = require(\"./IORedisConnection\");\nScripts = require(\"./Scripts\");\n\nGroup = function () {\n class Group {\n constructor(limiterOptions = {}) {\n this.deleteKey = this.deleteKey.bind(this);\n this.limiterOptions = limiterOptions;\n parser.load(this.limiterOptions, this.defaults, this);\n this.Events = new Events(this);\n this.instances = {};\n this.Bottleneck = require(\"./Bottleneck\");\n\n this._startAutoCleanup();\n\n this.sharedConnection = this.connection != null;\n\n if (this.connection == null) {\n if (this.limiterOptions.datastore === \"redis\") {\n this.connection = new RedisConnection(Object.assign({}, this.limiterOptions, {\n Events: this.Events\n }));\n } else if (this.limiterOptions.datastore === \"ioredis\") {\n this.connection = new IORedisConnection(Object.assign({}, this.limiterOptions, {\n Events: this.Events\n }));\n }\n }\n }\n\n key(key = \"\") {\n var ref;\n return (ref = this.instances[key]) != null ? ref : (() => {\n var limiter;\n limiter = this.instances[key] = new this.Bottleneck(Object.assign(this.limiterOptions, {\n id: `${this.id}-${key}`,\n timeout: this.timeout,\n connection: this.connection\n }));\n this.Events.trigger(\"created\", limiter, key);\n return limiter;\n })();\n }\n\n deleteKey(key = \"\") {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var deleted, instance;\n instance = _this.instances[key];\n\n if (_this.connection) {\n deleted = yield _this.connection.__runCommand__(['del', ...Scripts.allKeys(`${_this.id}-${key}`)]);\n }\n\n if (instance != null) {\n delete _this.instances[key];\n yield instance.disconnect();\n }\n\n return instance != null || deleted > 0;\n })();\n }\n\n limiters() {\n var k, ref, results, v;\n ref = this.instances;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n results.push({\n key: k,\n limiter: v\n });\n }\n\n return results;\n }\n\n keys() {\n return Object.keys(this.instances);\n }\n\n clusterKeys() {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var cursor, end, found, i, k, keys, len, next, start;\n\n if (_this2.connection == null) {\n return _this2.Promise.resolve(_this2.keys());\n }\n\n keys = [];\n cursor = null;\n start = `b_${_this2.id}-`.length;\n end = \"_settings\".length;\n\n while (cursor !== 0) {\n var _ref = yield _this2.connection.__runCommand__([\"scan\", cursor != null ? cursor : 0, \"match\", `b_${_this2.id}-*_settings`, \"count\", 10000]);\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n next = _ref2[0];\n found = _ref2[1];\n cursor = ~~next;\n\n for (i = 0, len = found.length; i < len; i++) {\n k = found[i];\n keys.push(k.slice(start, -end));\n }\n }\n\n return keys;\n })();\n }\n\n _startAutoCleanup() {\n var _this3 = this;\n\n var base;\n clearInterval(this.interval);\n return typeof (base = this.interval = setInterval(\n /*#__PURE__*/\n _asyncToGenerator(function* () {\n var e, k, ref, results, time, v;\n time = Date.now();\n ref = _this3.instances;\n results = [];\n\n for (k in ref) {\n v = ref[k];\n\n try {\n if (yield v._store.__groupCheck__(time)) {\n results.push(_this3.deleteKey(k));\n } else {\n results.push(void 0);\n }\n } catch (error) {\n e = error;\n results.push(v.Events.trigger(\"error\", e));\n }\n }\n\n return results;\n }), this.timeout / 2)).unref === \"function\" ? base.unref() : void 0;\n }\n\n updateSettings(options = {}) {\n parser.overwrite(options, this.defaults, this);\n parser.overwrite(options, options, this.limiterOptions);\n\n if (options.timeout != null) {\n return this._startAutoCleanup();\n }\n }\n\n disconnect(flush = true) {\n var ref;\n\n if (!this.sharedConnection) {\n return (ref = this.connection) != null ? ref.disconnect(flush) : void 0;\n }\n }\n\n }\n\n ;\n Group.prototype.defaults = {\n timeout: 1000 * 60 * 5,\n connection: null,\n Promise: Promise,\n id: \"group-key\"\n };\n return Group;\n}.call(void 0);\n\nmodule.exports = Group;","\"use strict\";\n\nvar Batcher, Events, parser;\nparser = require(\"./parser\");\nEvents = require(\"./Events\");\n\nBatcher = function () {\n class Batcher {\n constructor(options = {}) {\n this.options = options;\n parser.load(this.options, this.defaults, this);\n this.Events = new Events(this);\n this._arr = [];\n\n this._resetPromise();\n\n this._lastFlush = Date.now();\n }\n\n _resetPromise() {\n return this._promise = new this.Promise((res, rej) => {\n return this._resolve = res;\n });\n }\n\n _flush() {\n clearTimeout(this._timeout);\n this._lastFlush = Date.now();\n\n this._resolve();\n\n this.Events.trigger(\"batch\", this._arr);\n this._arr = [];\n return this._resetPromise();\n }\n\n add(data) {\n var ret;\n\n this._arr.push(data);\n\n ret = this._promise;\n\n if (this._arr.length === this.maxSize) {\n this._flush();\n } else if (this.maxTime != null && this._arr.length === 1) {\n this._timeout = setTimeout(() => {\n return this._flush();\n }, this.maxTime);\n }\n\n return ret;\n }\n\n }\n\n ;\n Batcher.prototype.defaults = {\n maxTime: null,\n maxSize: null,\n Promise: Promise\n };\n return Batcher;\n}.call(void 0);\n\nmodule.exports = Batcher;","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { 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); } }\n\nfunction _asyncToGenerator(fn) { 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); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar Bottleneck,\n DEFAULT_PRIORITY,\n Events,\n Job,\n LocalDatastore,\n NUM_PRIORITIES,\n Queues,\n RedisDatastore,\n States,\n Sync,\n parser,\n splice = [].splice;\nNUM_PRIORITIES = 10;\nDEFAULT_PRIORITY = 5;\nparser = require(\"./parser\");\nQueues = require(\"./Queues\");\nJob = require(\"./Job\");\nLocalDatastore = require(\"./LocalDatastore\");\nRedisDatastore = require(\"./RedisDatastore\");\nEvents = require(\"./Events\");\nStates = require(\"./States\");\nSync = require(\"./Sync\");\n\nBottleneck = function () {\n class Bottleneck {\n constructor(options = {}, ...invalid) {\n var storeInstanceOptions, storeOptions;\n this._addToQueue = this._addToQueue.bind(this);\n\n this._validateOptions(options, invalid);\n\n parser.load(options, this.instanceDefaults, this);\n this._queues = new Queues(NUM_PRIORITIES);\n this._scheduled = {};\n this._states = new States([\"RECEIVED\", \"QUEUED\", \"RUNNING\", \"EXECUTING\"].concat(this.trackDoneStatus ? [\"DONE\"] : []));\n this._limiter = null;\n this.Events = new Events(this);\n this._submitLock = new Sync(\"submit\", this.Promise);\n this._registerLock = new Sync(\"register\", this.Promise);\n storeOptions = parser.load(options, this.storeDefaults, {});\n\n this._store = function () {\n if (this.datastore === \"redis\" || this.datastore === \"ioredis\" || this.connection != null) {\n storeInstanceOptions = parser.load(options, this.redisStoreDefaults, {});\n return new RedisDatastore(this, storeOptions, storeInstanceOptions);\n } else if (this.datastore === \"local\") {\n storeInstanceOptions = parser.load(options, this.localStoreDefaults, {});\n return new LocalDatastore(this, storeOptions, storeInstanceOptions);\n } else {\n throw new Bottleneck.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`);\n }\n }.call(this);\n\n this._queues.on(\"leftzero\", () => {\n var ref;\n return (ref = this._store.heartbeat) != null ? typeof ref.ref === \"function\" ? ref.ref() : void 0 : void 0;\n });\n\n this._queues.on(\"zero\", () => {\n var ref;\n return (ref = this._store.heartbeat) != null ? typeof ref.unref === \"function\" ? ref.unref() : void 0 : void 0;\n });\n }\n\n _validateOptions(options, invalid) {\n if (!(options != null && typeof options === \"object\" && invalid.length === 0)) {\n throw new Bottleneck.prototype.BottleneckError(\"Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.\");\n }\n }\n\n ready() {\n return this._store.ready;\n }\n\n clients() {\n return this._store.clients;\n }\n\n channel() {\n return `b_${this.id}`;\n }\n\n channel_client() {\n return `b_${this.id}_${this._store.clientId}`;\n }\n\n publish(message) {\n return this._store.__publish__(message);\n }\n\n disconnect(flush = true) {\n return this._store.__disconnect__(flush);\n }\n\n chain(_limiter) {\n this._limiter = _limiter;\n return this;\n }\n\n queued(priority) {\n return this._queues.queued(priority);\n }\n\n clusterQueued() {\n return this._store.__queued__();\n }\n\n empty() {\n return this.queued() === 0 && this._submitLock.isEmpty();\n }\n\n running() {\n return this._store.__running__();\n }\n\n done() {\n return this._store.__done__();\n }\n\n jobStatus(id) {\n return this._states.jobStatus(id);\n }\n\n jobs(status) {\n return this._states.statusJobs(status);\n }\n\n counts() {\n return this._states.statusCounts();\n }\n\n _randomIndex() {\n return Math.random().toString(36).slice(2);\n }\n\n check(weight = 1) {\n return this._store.__check__(weight);\n }\n\n _clearGlobalState(index) {\n if (this._scheduled[index] != null) {\n clearTimeout(this._scheduled[index].expiration);\n delete this._scheduled[index];\n return true;\n } else {\n return false;\n }\n }\n\n _free(index, job, options, eventInfo) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n var e, running;\n\n try {\n var _ref = yield _this._store.__free__(index, options.weight);\n\n running = _ref.running;\n\n _this.Events.trigger(\"debug\", `Freed ${options.id}`, eventInfo);\n\n if (running === 0 && _this.empty()) {\n return _this.Events.trigger(\"idle\");\n }\n } catch (error1) {\n e = error1;\n return _this.Events.trigger(\"error\", e);\n }\n })();\n }\n\n _run(index, job, wait) {\n var clearGlobalState, free, run;\n job.doRun();\n clearGlobalState = this._clearGlobalState.bind(this, index);\n run = this._run.bind(this, index, job);\n free = this._free.bind(this, index, job);\n return this._scheduled[index] = {\n timeout: setTimeout(() => {\n return job.doExecute(this._limiter, clearGlobalState, run, free);\n }, wait),\n expiration: job.options.expiration != null ? setTimeout(function () {\n return job.doExpire(clearGlobalState, run, free);\n }, wait + job.options.expiration) : void 0,\n job: job\n };\n }\n\n _drainOne(capacity) {\n return this._registerLock.schedule(() => {\n var args, index, next, options, queue;\n\n if (this.queued() === 0) {\n return this.Promise.resolve(null);\n }\n\n queue = this._queues.getFirst();\n\n var _next2 = next = queue.first();\n\n options = _next2.options;\n args = _next2.args;\n\n if (capacity != null && options.weight > capacity) {\n return this.Promise.resolve(null);\n }\n\n this.Events.trigger(\"debug\", `Draining ${options.id}`, {\n args,\n options\n });\n index = this._randomIndex();\n return this._store.__register__(index, options.weight, options.expiration).then(({\n success,\n wait,\n reservoir\n }) => {\n var empty;\n this.Events.trigger(\"debug\", `Drained ${options.id}`, {\n success,\n args,\n options\n });\n\n if (success) {\n queue.shift();\n empty = this.empty();\n\n if (empty) {\n this.Events.trigger(\"empty\");\n }\n\n if (reservoir === 0) {\n this.Events.trigger(\"depleted\", empty);\n }\n\n this._run(index, next, wait);\n\n return this.Promise.resolve(options.weight);\n } else {\n return this.Promise.resolve(null);\n }\n });\n });\n }\n\n _drainAll(capacity, total = 0) {\n return this._drainOne(capacity).then(drained => {\n var newCapacity;\n\n if (drained != null) {\n newCapacity = capacity != null ? capacity - drained : capacity;\n return this._drainAll(newCapacity, total + drained);\n } else {\n return this.Promise.resolve(total);\n }\n }).catch(e => {\n return this.Events.trigger(\"error\", e);\n });\n }\n\n _dropAllQueued(message) {\n return this._queues.shiftAll(function (job) {\n return job.doDrop({\n message\n });\n });\n }\n\n stop(options = {}) {\n var done, waitForExecuting;\n options = parser.load(options, this.stopDefaults);\n\n waitForExecuting = at => {\n var finished;\n\n finished = () => {\n var counts;\n counts = this._states.counts;\n return counts[0] + counts[1] + counts[2] + counts[3] === at;\n };\n\n return new this.Promise((resolve, reject) => {\n if (finished()) {\n return resolve();\n } else {\n return this.on(\"done\", () => {\n if (finished()) {\n this.removeAllListeners(\"done\");\n return resolve();\n }\n });\n }\n });\n };\n\n done = options.dropWaitingJobs ? (this._run = function (index, next) {\n return next.doDrop({\n message: options.dropErrorMessage\n });\n }, this._drainOne = () => {\n return this.Promise.resolve(null);\n }, this._registerLock.schedule(() => {\n return this._submitLock.schedule(() => {\n var k, ref, v;\n ref = this._scheduled;\n\n for (k in ref) {\n v = ref[k];\n\n if (this.jobStatus(v.job.options.id) === \"RUNNING\") {\n clearTimeout(v.timeout);\n clearTimeout(v.expiration);\n v.job.doDrop({\n message: options.dropErrorMessage\n });\n }\n }\n\n this._dropAllQueued(options.dropErrorMessage);\n\n return waitForExecuting(0);\n });\n })) : this.schedule({\n priority: NUM_PRIORITIES - 1,\n weight: 0\n }, () => {\n return waitForExecuting(1);\n });\n\n this._receive = function (job) {\n return job._reject(new Bottleneck.prototype.BottleneckError(options.enqueueErrorMessage));\n };\n\n this.stop = () => {\n return this.Promise.reject(new Bottleneck.prototype.BottleneckError(\"stop() has already been called\"));\n };\n\n return done;\n }\n\n _addToQueue(job) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var args, blocked, error, options, reachedHWM, shifted, strategy;\n args = job.args;\n options = job.options;\n\n try {\n var _ref2 = yield _this2._store.__submit__(_this2.queued(), options.weight);\n\n reachedHWM = _ref2.reachedHWM;\n blocked = _ref2.blocked;\n strategy = _ref2.strategy;\n } catch (error1) {\n error = error1;\n\n _this2.Events.trigger(\"debug\", `Could not queue ${options.id}`, {\n args,\n options,\n error\n });\n\n job.doDrop({\n error\n });\n return false;\n }\n\n if (blocked) {\n job.doDrop();\n return true;\n } else if (reachedHWM) {\n shifted = strategy === Bottleneck.prototype.strategy.LEAK ? _this2._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? _this2._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0;\n\n if (shifted != null) {\n shifted.doDrop();\n }\n\n if (shifted == null || strategy === Bottleneck.prototype.strategy.OVERFLOW) {\n if (shifted == null) {\n job.doDrop();\n }\n\n return reachedHWM;\n }\n }\n\n job.doQueue(reachedHWM, blocked);\n\n _this2._queues.push(job);\n\n yield _this2._drainAll();\n return reachedHWM;\n })();\n }\n\n _receive(job) {\n if (this._states.jobStatus(job.options.id) != null) {\n job._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${job.options.id})`));\n\n return false;\n } else {\n job.doReceive();\n return this._submitLock.schedule(this._addToQueue, job);\n }\n }\n\n submit(...args) {\n var cb, fn, job, options, ref, ref1, task;\n\n if (typeof args[0] === \"function\") {\n var _ref3, _ref4, _splice$call, _splice$call2;\n\n ref = args, (_ref3 = ref, _ref4 = _toArray(_ref3), fn = _ref4[0], args = _ref4.slice(1), _ref3), (_splice$call = splice.call(args, -1), _splice$call2 = _slicedToArray(_splice$call, 1), cb = _splice$call2[0], _splice$call);\n options = parser.load({}, this.jobDefaults);\n } else {\n var _ref5, _ref6, _splice$call3, _splice$call4;\n\n ref1 = args, (_ref5 = ref1, _ref6 = _toArray(_ref5), options = _ref6[0], fn = _ref6[1], args = _ref6.slice(2), _ref5), (_splice$call3 = splice.call(args, -1), _splice$call4 = _slicedToArray(_splice$call3, 1), cb = _splice$call4[0], _splice$call3);\n options = parser.load(options, this.jobDefaults);\n }\n\n task = (...args) => {\n return new this.Promise(function (resolve, reject) {\n return fn(...args, function (...args) {\n return (args[0] != null ? reject : resolve)(args);\n });\n });\n };\n\n job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise);\n job.promise.then(function (args) {\n return typeof cb === \"function\" ? cb(...args) : void 0;\n }).catch(function (args) {\n if (Array.isArray(args)) {\n return typeof cb === \"function\" ? cb(...args) : void 0;\n } else {\n return typeof cb === \"function\" ? cb(args) : void 0;\n }\n });\n return this._receive(job);\n }\n\n schedule(...args) {\n var job, options, task;\n\n if (typeof args[0] === \"function\") {\n var _args = args;\n\n var _args2 = _toArray(_args);\n\n task = _args2[0];\n args = _args2.slice(1);\n options = {};\n } else {\n var _args3 = args;\n\n var _args4 = _toArray(_args3);\n\n options = _args4[0];\n task = _args4[1];\n args = _args4.slice(2);\n }\n\n job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise);\n\n this._receive(job);\n\n return job.promise;\n }\n\n wrap(fn) {\n var schedule, wrapped;\n schedule = this.schedule.bind(this);\n\n wrapped = function wrapped(...args) {\n return schedule(fn.bind(this), ...args);\n };\n\n wrapped.withOptions = function (options, ...args) {\n return schedule(options, fn, ...args);\n };\n\n return wrapped;\n }\n\n updateSettings(options = {}) {\n var _this3 = this;\n\n return _asyncToGenerator(function* () {\n yield _this3._store.__updateSettings__(parser.overwrite(options, _this3.storeDefaults));\n parser.overwrite(options, _this3.instanceDefaults, _this3);\n return _this3;\n })();\n }\n\n currentReservoir() {\n return this._store.__currentReservoir__();\n }\n\n incrementReservoir(incr = 0) {\n return this._store.__incrementReservoir__(incr);\n }\n\n }\n\n ;\n Bottleneck.default = Bottleneck;\n Bottleneck.Events = Events;\n Bottleneck.version = Bottleneck.prototype.version = require(\"./version.json\").version;\n Bottleneck.strategy = Bottleneck.prototype.strategy = {\n LEAK: 1,\n OVERFLOW: 2,\n OVERFLOW_PRIORITY: 4,\n BLOCK: 3\n };\n Bottleneck.BottleneckError = Bottleneck.prototype.BottleneckError = require(\"./BottleneckError\");\n Bottleneck.Group = Bottleneck.prototype.Group = require(\"./Group\");\n Bottleneck.RedisConnection = Bottleneck.prototype.RedisConnection = require(\"./RedisConnection\");\n Bottleneck.IORedisConnection = Bottleneck.prototype.IORedisConnection = require(\"./IORedisConnection\");\n Bottleneck.Batcher = Bottleneck.prototype.Batcher = require(\"./Batcher\");\n Bottleneck.prototype.jobDefaults = {\n priority: DEFAULT_PRIORITY,\n weight: 1,\n expiration: null,\n id: \"\"\n };\n Bottleneck.prototype.storeDefaults = {\n maxConcurrent: null,\n minTime: 0,\n highWater: null,\n strategy: Bottleneck.prototype.strategy.LEAK,\n penalty: null,\n reservoir: null,\n reservoirRefreshInterval: null,\n reservoirRefreshAmount: null,\n reservoirIncreaseInterval: null,\n reservoirIncreaseAmount: null,\n reservoirIncreaseMaximum: null\n };\n Bottleneck.prototype.localStoreDefaults = {\n Promise: Promise,\n timeout: null,\n heartbeatInterval: 250\n };\n Bottleneck.prototype.redisStoreDefaults = {\n Promise: Promise,\n timeout: null,\n heartbeatInterval: 5000,\n clientTimeout: 10000,\n Redis: null,\n clientOptions: {},\n clusterNodes: null,\n clearDatastore: false,\n connection: null\n };\n Bottleneck.prototype.instanceDefaults = {\n datastore: \"local\",\n connection: null,\n id: \"\",\n rejectOnDrop: true,\n trackDoneStatus: false,\n Promise: Promise\n };\n Bottleneck.prototype.stopDefaults = {\n enqueueErrorMessage: \"This limiter has been stopped and cannot accept new jobs.\",\n dropWaitingJobs: true,\n dropErrorMessage: \"This limiter has been stopped.\"\n };\n return Bottleneck;\n}.call(void 0);\n\nmodule.exports = Bottleneck;","\"use strict\";\n\nmodule.exports = require(\"./Bottleneck\");","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","module.exports = require('util').inspect;\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar match = String.prototype.match;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\nvar toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('options \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n return String(obj);\n }\n if (typeof obj === 'bigint') {\n return String(obj) + 'n';\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = seen.slice();\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + String(obj.nodeName).toLowerCase();\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + xs.join(', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + ys.join(', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return String(s).replace(/\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = str.replace(/(['\\\\])/g, '\\\\$1').replace(/[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = Array(opts.indent + 1).join(' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: Array(depth + 1).join(baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + xs.join(',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ((/[^\\w$]/).test(key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n if (sideChannel.has(object)) {\n throw new RangeError('Cyclic object value');\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, true);\n var valueSideChannel = getSideChannel();\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","export default function(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)})}\n//# sourceMappingURL=unfetch.module.js.map\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nmodule.exports = punycode;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","import Stream from 'stream';\nimport http from 'http';\nimport Url from 'url';\nimport whatwgUrl from 'whatwg-url';\nimport https from 'https';\nimport zlib from 'zlib';\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nexport default fetch;\nexport { Headers, Request, Response, FetchError };\n","function r(m){return m && m.default || m;}\nmodule.exports = global.fetch = global.fetch || (\n\ttypeof process=='undefined' ? r(require('unfetch')) : (function(url, opts) {\n\t\treturn r(require('node-fetch'))(String(url).replace(/^\\/\\//g,'https://'), opts);\n\t})\n);\n",null,null,null,"'use strict';\n\nmodule.exports = {\n BINARY_TYPES: ['nodebuffer', 'arraybuffer', 'fragments'],\n GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n kStatusCode: Symbol('status-code'),\n kWebSocket: Symbol('websocket'),\n EMPTY_BUFFER: Buffer.alloc(0),\n NOOP: () => {}\n};\n","var fs = require('fs')\nvar path = require('path')\nvar os = require('os')\n\n// Workaround to fix webpack's build warnings: 'the request of a dependency is an expression'\nvar runtimeRequire = typeof __webpack_require__ === 'function' ? __non_webpack_require__ : require // eslint-disable-line\n\nvar vars = (process.config && process.config.variables) || {}\nvar prebuildsOnly = !!process.env.PREBUILDS_ONLY\nvar abi = process.versions.modules // TODO: support old node where this is undef\nvar runtime = isElectron() ? 'electron' : 'node'\nvar arch = os.arch()\nvar platform = os.platform()\nvar libc = process.env.LIBC || (isAlpine(platform) ? 'musl' : 'glibc')\nvar armv = process.env.ARM_VERSION || (arch === 'arm64' ? '8' : vars.arm_version) || ''\nvar uv = (process.versions.uv || '').split('.')[0]\n\nmodule.exports = load\n\nfunction load (dir) {\n return runtimeRequire(load.path(dir))\n}\n\nload.path = function (dir) {\n dir = path.resolve(dir || '.')\n\n try {\n var name = runtimeRequire(path.join(dir, 'package.json')).name.toUpperCase().replace(/-/g, '_')\n if (process.env[name + '_PREBUILD']) dir = process.env[name + '_PREBUILD']\n } catch (err) {}\n\n if (!prebuildsOnly) {\n var release = getFirst(path.join(dir, 'build/Release'), matchBuild)\n if (release) return release\n\n var debug = getFirst(path.join(dir, 'build/Debug'), matchBuild)\n if (debug) return debug\n }\n\n var prebuild = resolve(dir)\n if (prebuild) return prebuild\n\n var nearby = resolve(path.dirname(process.execPath))\n if (nearby) return nearby\n\n var target = [\n 'platform=' + platform,\n 'arch=' + arch,\n 'runtime=' + runtime,\n 'abi=' + abi,\n 'uv=' + uv,\n armv ? 'armv=' + armv : '',\n 'libc=' + libc,\n 'node=' + process.versions.node,\n (process.versions && process.versions.electron) ? 'electron=' + process.versions.electron : '',\n typeof __webpack_require__ === 'function' ? 'webpack=true' : '' // eslint-disable-line\n ].filter(Boolean).join(' ')\n\n throw new Error('No native build was found for ' + target + '\\n loaded from: ' + dir + '\\n')\n\n function resolve (dir) {\n // Find most specific flavor first\n var prebuilds = path.join(dir, 'prebuilds', platform + '-' + arch)\n var parsed = readdirSync(prebuilds).map(parseTags)\n var candidates = parsed.filter(matchTags(runtime, abi))\n var winner = candidates.sort(compareTags(runtime))[0]\n if (winner) return path.join(prebuilds, winner.file)\n }\n}\n\nfunction readdirSync (dir) {\n try {\n return fs.readdirSync(dir)\n } catch (err) {\n return []\n }\n}\n\nfunction getFirst (dir, filter) {\n var files = readdirSync(dir).filter(filter)\n return files[0] && path.join(dir, files[0])\n}\n\nfunction matchBuild (name) {\n return /\\.node$/.test(name)\n}\n\nfunction parseTags (file) {\n var arr = file.split('.')\n var extension = arr.pop()\n var tags = { file: file, specificity: 0 }\n\n if (extension !== 'node') return\n\n for (var i = 0; i < arr.length; i++) {\n var tag = arr[i]\n\n if (tag === 'node' || tag === 'electron' || tag === 'node-webkit') {\n tags.runtime = tag\n } else if (tag === 'napi') {\n tags.napi = true\n } else if (tag.slice(0, 3) === 'abi') {\n tags.abi = tag.slice(3)\n } else if (tag.slice(0, 2) === 'uv') {\n tags.uv = tag.slice(2)\n } else if (tag.slice(0, 4) === 'armv') {\n tags.armv = tag.slice(4)\n } else if (tag === 'glibc' || tag === 'musl') {\n tags.libc = tag\n } else {\n continue\n }\n\n tags.specificity++\n }\n\n return tags\n}\n\nfunction matchTags (runtime, abi) {\n return function (tags) {\n if (tags == null) return false\n if (tags.runtime !== runtime && !runtimeAgnostic(tags)) return false\n if (tags.abi !== abi && !tags.napi) return false\n if (tags.uv && tags.uv !== uv) return false\n if (tags.armv && tags.armv !== armv) return false\n if (tags.libc && tags.libc !== libc) return false\n\n return true\n }\n}\n\nfunction runtimeAgnostic (tags) {\n return tags.runtime === 'node' && tags.napi\n}\n\nfunction compareTags (runtime) {\n // Precedence: non-agnostic runtime, abi over napi, then by specificity.\n return function (a, b) {\n if (a.runtime !== b.runtime) {\n return a.runtime === runtime ? -1 : 1\n } else if (a.abi !== b.abi) {\n return a.abi ? -1 : 1\n } else if (a.specificity !== b.specificity) {\n return a.specificity > b.specificity ? -1 : 1\n } else {\n return 0\n }\n }\n}\n\nfunction isElectron () {\n if (process.versions && process.versions.electron) return true\n if (process.env.ELECTRON_RUN_AS_NODE) return true\n return typeof window !== 'undefined' && window.process && window.process.type === 'renderer'\n}\n\nfunction isAlpine (platform) {\n return platform === 'linux' && fs.existsSync('/etc/alpine-release')\n}\n\n// Exposed for unit tests\n// TODO: move to lib\nload.parseTags = parseTags\nload.matchTags = matchTags\nload.compareTags = compareTags\n","'use strict';\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nconst mask = (source, mask, output, offset, length) => {\n for (var i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n};\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nconst unmask = (buffer, mask) => {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (var i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n};\n\nmodule.exports = { mask, unmask };\n","'use strict';\n\ntry {\n module.exports = require('node-gyp-build')(__dirname);\n} catch (e) {\n module.exports = require('./fallback');\n}\n","'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n if (list.length === 0) return EMPTY_BUFFER;\n if (list.length === 1) return list[0];\n\n const target = Buffer.allocUnsafe(totalLength);\n let offset = 0;\n\n for (let i = 0; i < list.length; i++) {\n const buf = list[i];\n target.set(buf, offset);\n offset += buf.length;\n }\n\n if (offset < totalLength) return target.slice(0, offset);\n\n return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n for (let i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (let i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n if (buf.byteLength === buf.buffer.byteLength) {\n return buf.buffer;\n }\n\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n toBuffer.readOnly = true;\n\n if (Buffer.isBuffer(data)) return data;\n\n let buf;\n\n if (data instanceof ArrayBuffer) {\n buf = Buffer.from(data);\n } else if (ArrayBuffer.isView(data)) {\n buf = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n } else {\n buf = Buffer.from(data);\n toBuffer.readOnly = false;\n }\n\n return buf;\n}\n\ntry {\n const bufferUtil = require('bufferutil');\n const bu = bufferUtil.BufferUtil || bufferUtil;\n\n module.exports = {\n concat,\n mask(source, mask, output, offset, length) {\n if (length < 48) _mask(source, mask, output, offset, length);\n else bu.mask(source, mask, output, offset, length);\n },\n toArrayBuffer,\n toBuffer,\n unmask(buffer, mask) {\n if (buffer.length < 32) _unmask(buffer, mask);\n else bu.unmask(buffer, mask);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n concat,\n mask: _mask,\n toArrayBuffer,\n toBuffer,\n unmask: _unmask\n };\n}\n","'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n /**\n * Creates a new `Limiter`.\n *\n * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n * to run concurrently\n */\n constructor(concurrency) {\n this[kDone] = () => {\n this.pending--;\n this[kRun]();\n };\n this.concurrency = concurrency || Infinity;\n this.jobs = [];\n this.pending = 0;\n }\n\n /**\n * Adds a job to the queue.\n *\n * @param {Function} job The job to run\n * @public\n */\n add(job) {\n this.jobs.push(job);\n this[kRun]();\n }\n\n /**\n * Removes a job from the queue and runs it if possible.\n *\n * @private\n */\n [kRun]() {\n if (this.pending === this.concurrency) return;\n\n if (this.jobs.length) {\n const job = this.jobs.shift();\n\n this.pending++;\n job(this[kDone]);\n }\n }\n}\n\nmodule.exports = Limiter;\n","'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode, NOOP } = require('./constants');\n\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n /**\n * Creates a PerMessageDeflate instance.\n *\n * @param {Object} [options] Configuration options\n * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n * disabling of server context takeover\n * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n * acknowledge disabling of client context takeover\n * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n * use of a custom server window size\n * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n * for, or request, a custom client window size\n * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n * deflate\n * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n * inflate\n * @param {Number} [options.threshold=1024] Size (in bytes) below which\n * messages should not be compressed\n * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n * calls to zlib\n * @param {Boolean} [isServer=false] Create the instance in either server or\n * client mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(options, isServer, maxPayload) {\n this._maxPayload = maxPayload | 0;\n this._options = options || {};\n this._threshold =\n this._options.threshold !== undefined ? this._options.threshold : 1024;\n this._isServer = !!isServer;\n this._deflate = null;\n this._inflate = null;\n\n this.params = null;\n\n if (!zlibLimiter) {\n const concurrency =\n this._options.concurrencyLimit !== undefined\n ? this._options.concurrencyLimit\n : 10;\n zlibLimiter = new Limiter(concurrency);\n }\n }\n\n /**\n * @type {String}\n */\n static get extensionName() {\n return 'permessage-deflate';\n }\n\n /**\n * Create an extension negotiation offer.\n *\n * @return {Object} Extension parameters\n * @public\n */\n offer() {\n const params = {};\n\n if (this._options.serverNoContextTakeover) {\n params.server_no_context_takeover = true;\n }\n if (this._options.clientNoContextTakeover) {\n params.client_no_context_takeover = true;\n }\n if (this._options.serverMaxWindowBits) {\n params.server_max_window_bits = this._options.serverMaxWindowBits;\n }\n if (this._options.clientMaxWindowBits) {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n } else if (this._options.clientMaxWindowBits == null) {\n params.client_max_window_bits = true;\n }\n\n return params;\n }\n\n /**\n * Accept an extension negotiation offer/response.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Object} Accepted configuration\n * @public\n */\n accept(configurations) {\n configurations = this.normalizeParams(configurations);\n\n this.params = this._isServer\n ? this.acceptAsServer(configurations)\n : this.acceptAsClient(configurations);\n\n return this.params;\n }\n\n /**\n * Releases all resources used by the extension.\n *\n * @public\n */\n cleanup() {\n if (this._inflate) {\n this._inflate.close();\n this._inflate = null;\n }\n\n if (this._deflate) {\n const callback = this._deflate[kCallback];\n\n this._deflate.close();\n this._deflate = null;\n\n if (callback) {\n callback(\n new Error(\n 'The deflate stream was closed while data was being processed'\n )\n );\n }\n }\n }\n\n /**\n * Accept an extension negotiation offer.\n *\n * @param {Array} offers The extension negotiation offers\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsServer(offers) {\n const opts = this._options;\n const accepted = offers.find((params) => {\n if (\n (opts.serverNoContextTakeover === false &&\n params.server_no_context_takeover) ||\n (params.server_max_window_bits &&\n (opts.serverMaxWindowBits === false ||\n (typeof opts.serverMaxWindowBits === 'number' &&\n opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n (typeof opts.clientMaxWindowBits === 'number' &&\n !params.client_max_window_bits)\n ) {\n return false;\n }\n\n return true;\n });\n\n if (!accepted) {\n throw new Error('None of the extension offers can be accepted');\n }\n\n if (opts.serverNoContextTakeover) {\n accepted.server_no_context_takeover = true;\n }\n if (opts.clientNoContextTakeover) {\n accepted.client_no_context_takeover = true;\n }\n if (typeof opts.serverMaxWindowBits === 'number') {\n accepted.server_max_window_bits = opts.serverMaxWindowBits;\n }\n if (typeof opts.clientMaxWindowBits === 'number') {\n accepted.client_max_window_bits = opts.clientMaxWindowBits;\n } else if (\n accepted.client_max_window_bits === true ||\n opts.clientMaxWindowBits === false\n ) {\n delete accepted.client_max_window_bits;\n }\n\n return accepted;\n }\n\n /**\n * Accept the extension negotiation response.\n *\n * @param {Array} response The extension negotiation response\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsClient(response) {\n const params = response[0];\n\n if (\n this._options.clientNoContextTakeover === false &&\n params.client_no_context_takeover\n ) {\n throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n }\n\n if (!params.client_max_window_bits) {\n if (typeof this._options.clientMaxWindowBits === 'number') {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n }\n } else if (\n this._options.clientMaxWindowBits === false ||\n (typeof this._options.clientMaxWindowBits === 'number' &&\n params.client_max_window_bits > this._options.clientMaxWindowBits)\n ) {\n throw new Error(\n 'Unexpected or invalid parameter \"client_max_window_bits\"'\n );\n }\n\n return params;\n }\n\n /**\n * Normalize parameters.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Array} The offers/response with normalized parameters\n * @private\n */\n normalizeParams(configurations) {\n configurations.forEach((params) => {\n Object.keys(params).forEach((key) => {\n let value = params[key];\n\n if (value.length > 1) {\n throw new Error(`Parameter \"${key}\" must have only a single value`);\n }\n\n value = value[0];\n\n if (key === 'client_max_window_bits') {\n if (value !== true) {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (!this._isServer) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else if (key === 'server_max_window_bits') {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (\n key === 'client_no_context_takeover' ||\n key === 'server_no_context_takeover'\n ) {\n if (value !== true) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else {\n throw new Error(`Unknown parameter \"${key}\"`);\n }\n\n params[key] = value;\n });\n });\n\n return configurations;\n }\n\n /**\n * Decompress data. Concurrency limited.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n decompress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._decompress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Compress data. Concurrency limited.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n compress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._compress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Decompress data.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _decompress(data, fin, callback) {\n const endpoint = this._isServer ? 'client' : 'server';\n\n if (!this._inflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._inflate = zlib.createInflateRaw({\n ...this._options.zlibInflateOptions,\n windowBits\n });\n this._inflate[kPerMessageDeflate] = this;\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n this._inflate.on('error', inflateOnError);\n this._inflate.on('data', inflateOnData);\n }\n\n this._inflate[kCallback] = callback;\n\n this._inflate.write(data);\n if (fin) this._inflate.write(TRAILER);\n\n this._inflate.flush(() => {\n const err = this._inflate[kError];\n\n if (err) {\n this._inflate.close();\n this._inflate = null;\n callback(err);\n return;\n }\n\n const data = bufferUtil.concat(\n this._inflate[kBuffers],\n this._inflate[kTotalLength]\n );\n\n if (this._inflate._readableState.endEmitted) {\n this._inflate.close();\n this._inflate = null;\n } else {\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._inflate.reset();\n }\n }\n\n callback(null, data);\n });\n }\n\n /**\n * Compress data.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _compress(data, fin, callback) {\n const endpoint = this._isServer ? 'server' : 'client';\n\n if (!this._deflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._deflate = zlib.createDeflateRaw({\n ...this._options.zlibDeflateOptions,\n windowBits\n });\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n //\n // An `'error'` event is emitted, only on Node.js < 10.0.0, if the\n // `zlib.DeflateRaw` instance is closed while data is being processed.\n // This can happen if `PerMessageDeflate#cleanup()` is called at the wrong\n // time due to an abnormal WebSocket closure.\n //\n this._deflate.on('error', NOOP);\n this._deflate.on('data', deflateOnData);\n }\n\n this._deflate[kCallback] = callback;\n\n this._deflate.write(data);\n this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n if (!this._deflate) {\n //\n // The deflate stream was closed while data was being processed.\n //\n return;\n }\n\n let data = bufferUtil.concat(\n this._deflate[kBuffers],\n this._deflate[kTotalLength]\n );\n\n if (fin) data = data.slice(0, data.length - 4);\n\n //\n // Ensure that the callback will not be called again in\n // `PerMessageDeflate#cleanup()`.\n //\n this._deflate[kCallback] = null;\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._deflate.reset();\n }\n\n callback(null, data);\n });\n }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n this[kBuffers].push(chunk);\n this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n this[kTotalLength] += chunk.length;\n\n if (\n this[kPerMessageDeflate]._maxPayload < 1 ||\n this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n ) {\n this[kBuffers].push(chunk);\n return;\n }\n\n this[kError] = new RangeError('Max payload size exceeded');\n this[kError].code = 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH';\n this[kError][kStatusCode] = 1009;\n this.removeListener('data', inflateOnData);\n this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n //\n // There is no need to call `Zlib#close()` as the handle is automatically\n // closed when an error is emitted.\n //\n this[kPerMessageDeflate]._inflate = null;\n err[kStatusCode] = 1007;\n this[kCallback](err);\n}\n","'use strict';\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0x00) { // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) { // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) { // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80 || // overlong\n buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0 // surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) { // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80 || // overlong\n buf[i] === 0xf4 && buf[i + 1] > 0x8f || buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = isValidUTF8;\n","'use strict';\n\ntry {\n module.exports = require('node-gyp-build')(__dirname);\n} catch (e) {\n module.exports = require('./fallback');\n}\n","'use strict';\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n return (\n (code >= 1000 &&\n code <= 1014 &&\n code !== 1004 &&\n code !== 1005 &&\n code !== 1006) ||\n (code >= 3000 && code <= 4999)\n );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0) {\n // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) {\n // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // Overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) {\n // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\ntry {\n let isValidUTF8 = require('utf-8-validate');\n\n /* istanbul ignore if */\n if (typeof isValidUTF8 === 'object') {\n isValidUTF8 = isValidUTF8.Validation.isValidUTF8; // utf-8-validate@<3.0.0\n }\n\n module.exports = {\n isValidStatusCode,\n isValidUTF8(buf) {\n return buf.length < 150 ? _isValidUTF8(buf) : isValidUTF8(buf);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n isValidStatusCode,\n isValidUTF8: _isValidUTF8\n };\n}\n","'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n kStatusCode,\n kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends Writable\n */\nclass Receiver extends Writable {\n /**\n * Creates a Receiver instance.\n *\n * @param {String} [binaryType=nodebuffer] The type for binary data\n * @param {Object} [extensions] An object containing the negotiated extensions\n * @param {Boolean} [isServer=false] Specifies whether to operate in client or\n * server mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(binaryType, extensions, isServer, maxPayload) {\n super();\n\n this._binaryType = binaryType || BINARY_TYPES[0];\n this[kWebSocket] = undefined;\n this._extensions = extensions || {};\n this._isServer = !!isServer;\n this._maxPayload = maxPayload | 0;\n\n this._bufferedBytes = 0;\n this._buffers = [];\n\n this._compressed = false;\n this._payloadLength = 0;\n this._mask = undefined;\n this._fragmented = 0;\n this._masked = false;\n this._fin = false;\n this._opcode = 0;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragments = [];\n\n this._state = GET_INFO;\n this._loop = false;\n }\n\n /**\n * Implements `Writable.prototype._write()`.\n *\n * @param {Buffer} chunk The chunk of data to write\n * @param {String} encoding The character encoding of `chunk`\n * @param {Function} cb Callback\n * @private\n */\n _write(chunk, encoding, cb) {\n if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n this._bufferedBytes += chunk.length;\n this._buffers.push(chunk);\n this.startLoop(cb);\n }\n\n /**\n * Consumes `n` bytes from the buffered data.\n *\n * @param {Number} n The number of bytes to consume\n * @return {Buffer} The consumed bytes\n * @private\n */\n consume(n) {\n this._bufferedBytes -= n;\n\n if (n === this._buffers[0].length) return this._buffers.shift();\n\n if (n < this._buffers[0].length) {\n const buf = this._buffers[0];\n this._buffers[0] = buf.slice(n);\n return buf.slice(0, n);\n }\n\n const dst = Buffer.allocUnsafe(n);\n\n do {\n const buf = this._buffers[0];\n const offset = dst.length - n;\n\n if (n >= buf.length) {\n dst.set(this._buffers.shift(), offset);\n } else {\n dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n this._buffers[0] = buf.slice(n);\n }\n\n n -= buf.length;\n } while (n > 0);\n\n return dst;\n }\n\n /**\n * Starts the parsing loop.\n *\n * @param {Function} cb Callback\n * @private\n */\n startLoop(cb) {\n let err;\n this._loop = true;\n\n do {\n switch (this._state) {\n case GET_INFO:\n err = this.getInfo();\n break;\n case GET_PAYLOAD_LENGTH_16:\n err = this.getPayloadLength16();\n break;\n case GET_PAYLOAD_LENGTH_64:\n err = this.getPayloadLength64();\n break;\n case GET_MASK:\n this.getMask();\n break;\n case GET_DATA:\n err = this.getData(cb);\n break;\n default:\n // `INFLATING`\n this._loop = false;\n return;\n }\n } while (this._loop);\n\n cb(err);\n }\n\n /**\n * Reads the first two bytes of a frame.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getInfo() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(2);\n\n if ((buf[0] & 0x30) !== 0x00) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV2 and RSV3 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_2_3'\n );\n }\n\n const compressed = (buf[0] & 0x40) === 0x40;\n\n if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n this._fin = (buf[0] & 0x80) === 0x80;\n this._opcode = buf[0] & 0x0f;\n this._payloadLength = buf[1] & 0x7f;\n\n if (this._opcode === 0x00) {\n if (compressed) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n if (!this._fragmented) {\n this._loop = false;\n return error(\n RangeError,\n 'invalid opcode 0',\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n this._opcode = this._fragmented;\n } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n if (this._fragmented) {\n this._loop = false;\n return error(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n this._compressed = compressed;\n } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n if (!this._fin) {\n this._loop = false;\n return error(\n RangeError,\n 'FIN must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_FIN'\n );\n }\n\n if (compressed) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n if (this._payloadLength > 0x7d) {\n this._loop = false;\n return error(\n RangeError,\n `invalid payload length ${this._payloadLength}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n }\n } else {\n this._loop = false;\n return error(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n this._masked = (buf[1] & 0x80) === 0x80;\n\n if (this._isServer) {\n if (!this._masked) {\n this._loop = false;\n return error(\n RangeError,\n 'MASK must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_MASK'\n );\n }\n } else if (this._masked) {\n this._loop = false;\n return error(\n RangeError,\n 'MASK must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_MASK'\n );\n }\n\n if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n else return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+16).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength16() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n this._payloadLength = this.consume(2).readUInt16BE(0);\n return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+64).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength64() {\n if (this._bufferedBytes < 8) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(8);\n const num = buf.readUInt32BE(0);\n\n //\n // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n // if payload length is greater than this number.\n //\n if (num > Math.pow(2, 53 - 32) - 1) {\n this._loop = false;\n return error(\n RangeError,\n 'Unsupported WebSocket frame: payload length > 2^53 - 1',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH'\n );\n }\n\n this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n return this.haveLength();\n }\n\n /**\n * Payload length has been read.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n haveLength() {\n if (this._payloadLength && this._opcode < 0x08) {\n this._totalPayloadLength += this._payloadLength;\n if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n this._loop = false;\n return error(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n );\n }\n }\n\n if (this._masked) this._state = GET_MASK;\n else this._state = GET_DATA;\n }\n\n /**\n * Reads mask bytes.\n *\n * @private\n */\n getMask() {\n if (this._bufferedBytes < 4) {\n this._loop = false;\n return;\n }\n\n this._mask = this.consume(4);\n this._state = GET_DATA;\n }\n\n /**\n * Reads data bytes.\n *\n * @param {Function} cb Callback\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n getData(cb) {\n let data = EMPTY_BUFFER;\n\n if (this._payloadLength) {\n if (this._bufferedBytes < this._payloadLength) {\n this._loop = false;\n return;\n }\n\n data = this.consume(this._payloadLength);\n if (this._masked) unmask(data, this._mask);\n }\n\n if (this._opcode > 0x07) return this.controlMessage(data);\n\n if (this._compressed) {\n this._state = INFLATING;\n this.decompress(data, cb);\n return;\n }\n\n if (data.length) {\n //\n // This message is not compressed so its lenght is the sum of the payload\n // length of all fragments.\n //\n this._messageLength = this._totalPayloadLength;\n this._fragments.push(data);\n }\n\n return this.dataMessage();\n }\n\n /**\n * Decompresses data.\n *\n * @param {Buffer} data Compressed data\n * @param {Function} cb Callback\n * @private\n */\n decompress(data, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n if (err) return cb(err);\n\n if (buf.length) {\n this._messageLength += buf.length;\n if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n return cb(\n error(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n )\n );\n }\n\n this._fragments.push(buf);\n }\n\n const er = this.dataMessage();\n if (er) return cb(er);\n\n this.startLoop(cb);\n });\n }\n\n /**\n * Handles a data message.\n *\n * @return {(Error|undefined)} A possible error\n * @private\n */\n dataMessage() {\n if (this._fin) {\n const messageLength = this._messageLength;\n const fragments = this._fragments;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragmented = 0;\n this._fragments = [];\n\n if (this._opcode === 2) {\n let data;\n\n if (this._binaryType === 'nodebuffer') {\n data = concat(fragments, messageLength);\n } else if (this._binaryType === 'arraybuffer') {\n data = toArrayBuffer(concat(fragments, messageLength));\n } else {\n data = fragments;\n }\n\n this.emit('message', data);\n } else {\n const buf = concat(fragments, messageLength);\n\n if (!isValidUTF8(buf)) {\n this._loop = false;\n return error(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n }\n\n this.emit('message', buf.toString());\n }\n }\n\n this._state = GET_INFO;\n }\n\n /**\n * Handles a control message.\n *\n * @param {Buffer} data Data to handle\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n controlMessage(data) {\n if (this._opcode === 0x08) {\n this._loop = false;\n\n if (data.length === 0) {\n this.emit('conclude', 1005, '');\n this.end();\n } else if (data.length === 1) {\n return error(\n RangeError,\n 'invalid payload length 1',\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n } else {\n const code = data.readUInt16BE(0);\n\n if (!isValidStatusCode(code)) {\n return error(\n RangeError,\n `invalid status code ${code}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CLOSE_CODE'\n );\n }\n\n const buf = data.slice(2);\n\n if (!isValidUTF8(buf)) {\n return error(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n }\n\n this.emit('conclude', code, buf.toString());\n this.end();\n }\n } else if (this._opcode === 0x09) {\n this.emit('ping', data);\n } else {\n this.emit('pong', data);\n }\n\n this._state = GET_INFO;\n }\n}\n\nmodule.exports = Receiver;\n\n/**\n * Builds an error object.\n *\n * @param {function(new:Error|RangeError)} ErrorCtor The error constructor\n * @param {String} message The error message\n * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n * `message`\n * @param {Number} statusCode The status code\n * @param {String} errorCode The exposed error code\n * @return {(Error|RangeError)} The error\n * @private\n */\nfunction error(ErrorCtor, message, prefix, statusCode, errorCode) {\n const err = new ErrorCtor(\n prefix ? `Invalid WebSocket frame: ${message}` : message\n );\n\n Error.captureStackTrace(err, error);\n err.code = errorCode;\n err[kStatusCode] = statusCode;\n return err;\n}\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^net|tls$\" }] */\n\n'use strict';\n\nconst net = require('net');\nconst tls = require('tls');\nconst { randomFillSync } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER } = require('./constants');\nconst { isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst mask = Buffer.alloc(4);\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n /**\n * Creates a Sender instance.\n *\n * @param {(net.Socket|tls.Socket)} socket The connection socket\n * @param {Object} [extensions] An object containing the negotiated extensions\n */\n constructor(socket, extensions) {\n this._extensions = extensions || {};\n this._socket = socket;\n\n this._firstFragment = true;\n this._compress = false;\n\n this._bufferedBytes = 0;\n this._deflating = false;\n this._queue = [];\n }\n\n /**\n * Frames a piece of data according to the HyBi WebSocket protocol.\n *\n * @param {Buffer} data The data to frame\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @return {Buffer[]} The framed data as a list of `Buffer` instances\n * @public\n */\n static frame(data, options) {\n const merge = options.mask && options.readOnly;\n let offset = options.mask ? 6 : 2;\n let payloadLength = data.length;\n\n if (data.length >= 65536) {\n offset += 8;\n payloadLength = 127;\n } else if (data.length > 125) {\n offset += 2;\n payloadLength = 126;\n }\n\n const target = Buffer.allocUnsafe(merge ? data.length + offset : offset);\n\n target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n if (options.rsv1) target[0] |= 0x40;\n\n target[1] = payloadLength;\n\n if (payloadLength === 126) {\n target.writeUInt16BE(data.length, 2);\n } else if (payloadLength === 127) {\n target.writeUInt32BE(0, 2);\n target.writeUInt32BE(data.length, 6);\n }\n\n if (!options.mask) return [target, data];\n\n randomFillSync(mask, 0, 4);\n\n target[1] |= 0x80;\n target[offset - 4] = mask[0];\n target[offset - 3] = mask[1];\n target[offset - 2] = mask[2];\n target[offset - 1] = mask[3];\n\n if (merge) {\n applyMask(data, mask, target, offset, data.length);\n return [target];\n }\n\n applyMask(data, mask, data, 0, data.length);\n return [target, data];\n }\n\n /**\n * Sends a close message to the other peer.\n *\n * @param {Number} [code] The status code component of the body\n * @param {String} [data] The message component of the body\n * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n * @param {Function} [cb] Callback\n * @public\n */\n close(code, data, mask, cb) {\n let buf;\n\n if (code === undefined) {\n buf = EMPTY_BUFFER;\n } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n throw new TypeError('First argument must be a valid error code number');\n } else if (data === undefined || data === '') {\n buf = Buffer.allocUnsafe(2);\n buf.writeUInt16BE(code, 0);\n } else {\n const length = Buffer.byteLength(data);\n\n if (length > 123) {\n throw new RangeError('The message must not be greater than 123 bytes');\n }\n\n buf = Buffer.allocUnsafe(2 + length);\n buf.writeUInt16BE(code, 0);\n buf.write(data, 2);\n }\n\n if (this._deflating) {\n this.enqueue([this.doClose, buf, mask, cb]);\n } else {\n this.doClose(buf, mask, cb);\n }\n }\n\n /**\n * Frames and sends a close message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @private\n */\n doClose(data, mask, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x08,\n mask,\n readOnly: false\n }),\n cb\n );\n }\n\n /**\n * Sends a ping message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n ping(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPing, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPing(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a ping message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPing(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x09,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a pong message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n pong(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPong, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPong(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a pong message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPong(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x0a,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a data message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Object} options Options object\n * @param {Boolean} [options.compress=false] Specifies whether or not to\n * compress `data`\n * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n * or text\n * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Function} [cb] Callback\n * @public\n */\n send(data, options, cb) {\n const buf = toBuffer(data);\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n let opcode = options.binary ? 2 : 1;\n let rsv1 = options.compress;\n\n if (this._firstFragment) {\n this._firstFragment = false;\n if (rsv1 && perMessageDeflate) {\n rsv1 = buf.length >= perMessageDeflate._threshold;\n }\n this._compress = rsv1;\n } else {\n rsv1 = false;\n opcode = 0;\n }\n\n if (options.fin) this._firstFragment = true;\n\n if (perMessageDeflate) {\n const opts = {\n fin: options.fin,\n rsv1,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n };\n\n if (this._deflating) {\n this.enqueue([this.dispatch, buf, this._compress, opts, cb]);\n } else {\n this.dispatch(buf, this._compress, opts, cb);\n }\n } else {\n this.sendFrame(\n Sender.frame(buf, {\n fin: options.fin,\n rsv1: false,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n }),\n cb\n );\n }\n }\n\n /**\n * Dispatches a data message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * `data`\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n dispatch(data, compress, options, cb) {\n if (!compress) {\n this.sendFrame(Sender.frame(data, options), cb);\n return;\n }\n\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n this._bufferedBytes += data.length;\n this._deflating = true;\n perMessageDeflate.compress(data, options.fin, (_, buf) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while data was being compressed'\n );\n\n if (typeof cb === 'function') cb(err);\n\n for (let i = 0; i < this._queue.length; i++) {\n const callback = this._queue[i][4];\n\n if (typeof callback === 'function') callback(err);\n }\n\n return;\n }\n\n this._bufferedBytes -= data.length;\n this._deflating = false;\n options.readOnly = false;\n this.sendFrame(Sender.frame(buf, options), cb);\n this.dequeue();\n });\n }\n\n /**\n * Executes queued send operations.\n *\n * @private\n */\n dequeue() {\n while (!this._deflating && this._queue.length) {\n const params = this._queue.shift();\n\n this._bufferedBytes -= params[1].length;\n Reflect.apply(params[0], this, params.slice(1));\n }\n }\n\n /**\n * Enqueues a send operation.\n *\n * @param {Array} params Send operation parameters.\n * @private\n */\n enqueue(params) {\n this._bufferedBytes += params[1].length;\n this._queue.push(params);\n }\n\n /**\n * Sends a frame.\n *\n * @param {Buffer[]} list The frame to send\n * @param {Function} [cb] Callback\n * @private\n */\n sendFrame(list, cb) {\n if (list.length === 2) {\n this._socket.cork();\n this._socket.write(list[0]);\n this._socket.write(list[1], cb);\n this._socket.uncork();\n } else {\n this._socket.write(list[0], cb);\n }\n }\n}\n\nmodule.exports = Sender;\n","'use strict';\n\n/**\n * Class representing an event.\n *\n * @private\n */\nclass Event {\n /**\n * Create a new `Event`.\n *\n * @param {String} type The name of the event\n * @param {Object} target A reference to the target to which the event was\n * dispatched\n */\n constructor(type, target) {\n this.target = target;\n this.type = type;\n }\n}\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n * @private\n */\nclass MessageEvent extends Event {\n /**\n * Create a new `MessageEvent`.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The received data\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(data, target) {\n super('message', target);\n\n this.data = data;\n }\n}\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n * @private\n */\nclass CloseEvent extends Event {\n /**\n * Create a new `CloseEvent`.\n *\n * @param {Number} code The status code explaining why the connection is being\n * closed\n * @param {String} reason A human-readable string explaining why the\n * connection is closing\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(code, reason, target) {\n super('close', target);\n\n this.wasClean = target._closeFrameReceived && target._closeFrameSent;\n this.reason = reason;\n this.code = code;\n }\n}\n\n/**\n * Class representing an open event.\n *\n * @extends Event\n * @private\n */\nclass OpenEvent extends Event {\n /**\n * Create a new `OpenEvent`.\n *\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(target) {\n super('open', target);\n }\n}\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n * @private\n */\nclass ErrorEvent extends Event {\n /**\n * Create a new `ErrorEvent`.\n *\n * @param {Object} error The error that generated this event\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(error, target) {\n super('error', target);\n\n this.message = error.message;\n this.error = error;\n }\n}\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n /**\n * Register an event listener.\n *\n * @param {String} type A string representing the event type to listen for\n * @param {Function} listener The listener to add\n * @param {Object} [options] An options object specifies characteristics about\n * the event listener\n * @param {Boolean} [options.once=false] A `Boolean`` indicating that the\n * listener should be invoked at most once after being added. If `true`,\n * the listener would be automatically removed when invoked.\n * @public\n */\n addEventListener(type, listener, options) {\n if (typeof listener !== 'function') return;\n\n function onMessage(data) {\n listener.call(this, new MessageEvent(data, this));\n }\n\n function onClose(code, message) {\n listener.call(this, new CloseEvent(code, message, this));\n }\n\n function onError(error) {\n listener.call(this, new ErrorEvent(error, this));\n }\n\n function onOpen() {\n listener.call(this, new OpenEvent(this));\n }\n\n const method = options && options.once ? 'once' : 'on';\n\n if (type === 'message') {\n onMessage._listener = listener;\n this[method](type, onMessage);\n } else if (type === 'close') {\n onClose._listener = listener;\n this[method](type, onClose);\n } else if (type === 'error') {\n onError._listener = listener;\n this[method](type, onError);\n } else if (type === 'open') {\n onOpen._listener = listener;\n this[method](type, onOpen);\n } else {\n this[method](type, listener);\n }\n },\n\n /**\n * Remove an event listener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {Function} listener The listener to remove\n * @public\n */\n removeEventListener(type, listener) {\n const listeners = this.listeners(type);\n\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i] === listener || listeners[i]._listener === listener) {\n this.removeListener(type, listeners[i]);\n }\n }\n }\n};\n\nmodule.exports = EventTarget;\n","'use strict';\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n * parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n if (dest[name] === undefined) dest[name] = [elem];\n else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n const offers = Object.create(null);\n\n if (header === undefined || header === '') return offers;\n\n let params = Object.create(null);\n let mustUnescape = false;\n let isEscaping = false;\n let inQuotes = false;\n let extensionName;\n let paramName;\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (; i < header.length; i++) {\n const code = header.charCodeAt(i);\n\n if (extensionName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 /* ' ' */ || code === 0x09 /* '\\t' */) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n const name = header.slice(start, end);\n if (code === 0x2c) {\n push(offers, name, params);\n params = Object.create(null);\n } else {\n extensionName = name;\n }\n\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (paramName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 || code === 0x09) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n push(params, header.slice(start, end), true);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n start = end = -1;\n } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n paramName = header.slice(start, i);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else {\n //\n // The value of a quoted-string after unescaping must conform to the\n // token ABNF, so only token characters are valid.\n // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n //\n if (isEscaping) {\n if (tokenChars[code] !== 1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n if (start === -1) start = i;\n else if (!mustUnescape) mustUnescape = true;\n isEscaping = false;\n } else if (inQuotes) {\n if (tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x22 /* '\"' */ && start !== -1) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5c /* '\\' */) {\n isEscaping = true;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n inQuotes = true;\n } else if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n if (end === -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n let value = header.slice(start, end);\n if (mustUnescape) {\n value = value.replace(/\\\\/g, '');\n mustUnescape = false;\n }\n push(params, paramName, value);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n paramName = undefined;\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n }\n\n if (start === -1 || inQuotes) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n if (end === -1) end = i;\n const token = header.slice(start, end);\n if (extensionName === undefined) {\n push(offers, token, params);\n } else {\n if (paramName === undefined) {\n push(params, token, true);\n } else if (mustUnescape) {\n push(params, paramName, token.replace(/\\\\/g, ''));\n } else {\n push(params, paramName, token);\n }\n push(offers, extensionName, params);\n }\n\n return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n return Object.keys(extensions)\n .map((extension) => {\n let configurations = extensions[extension];\n if (!Array.isArray(configurations)) configurations = [configurations];\n return configurations\n .map((params) => {\n return [extension]\n .concat(\n Object.keys(params).map((k) => {\n let values = params[k];\n if (!Array.isArray(values)) values = [values];\n return values\n .map((v) => (v === true ? k : `${k}=${v}`))\n .join('; ');\n })\n )\n .join('; ');\n })\n .join(', ');\n })\n .join(', ');\n}\n\nmodule.exports = { format, parse };\n","'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n GUID,\n kStatusCode,\n kWebSocket,\n NOOP\n} = require('./constants');\nconst { addEventListener, removeEventListener } = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst protocolVersions = [8, 13];\nconst closeTimeout = 30 * 1000;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n /**\n * Create a new `WebSocket`.\n *\n * @param {(String|URL)} address The URL to which to connect\n * @param {(String|String[])} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n */\n constructor(address, protocols, options) {\n super();\n\n this._binaryType = BINARY_TYPES[0];\n this._closeCode = 1006;\n this._closeFrameReceived = false;\n this._closeFrameSent = false;\n this._closeMessage = '';\n this._closeTimer = null;\n this._extensions = {};\n this._protocol = '';\n this._readyState = WebSocket.CONNECTING;\n this._receiver = null;\n this._sender = null;\n this._socket = null;\n\n if (address !== null) {\n this._bufferedAmount = 0;\n this._isServer = false;\n this._redirects = 0;\n\n if (Array.isArray(protocols)) {\n protocols = protocols.join(', ');\n } else if (typeof protocols === 'object' && protocols !== null) {\n options = protocols;\n protocols = undefined;\n }\n\n initAsClient(this, address, protocols, options);\n } else {\n this._isServer = true;\n }\n }\n\n /**\n * This deviates from the WHATWG interface since ws doesn't support the\n * required default \"blob\" type (instead we define a custom \"nodebuffer\"\n * type).\n *\n * @type {String}\n */\n get binaryType() {\n return this._binaryType;\n }\n\n set binaryType(type) {\n if (!BINARY_TYPES.includes(type)) return;\n\n this._binaryType = type;\n\n //\n // Allow to change `binaryType` on the fly.\n //\n if (this._receiver) this._receiver._binaryType = type;\n }\n\n /**\n * @type {Number}\n */\n get bufferedAmount() {\n if (!this._socket) return this._bufferedAmount;\n\n return this._socket._writableState.length + this._sender._bufferedBytes;\n }\n\n /**\n * @type {String}\n */\n get extensions() {\n return Object.keys(this._extensions).join();\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onclose() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onclose(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onerror() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onerror(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onopen() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onopen(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onmessage() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onmessage(listener) {}\n\n /**\n * @type {String}\n */\n get protocol() {\n return this._protocol;\n }\n\n /**\n * @type {Number}\n */\n get readyState() {\n return this._readyState;\n }\n\n /**\n * @type {String}\n */\n get url() {\n return this._url;\n }\n\n /**\n * Set up the socket and the internal resources.\n *\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Number} [maxPayload=0] The maximum allowed message size\n * @private\n */\n setSocket(socket, head, maxPayload) {\n const receiver = new Receiver(\n this.binaryType,\n this._extensions,\n this._isServer,\n maxPayload\n );\n\n this._sender = new Sender(socket, this._extensions);\n this._receiver = receiver;\n this._socket = socket;\n\n receiver[kWebSocket] = this;\n socket[kWebSocket] = this;\n\n receiver.on('conclude', receiverOnConclude);\n receiver.on('drain', receiverOnDrain);\n receiver.on('error', receiverOnError);\n receiver.on('message', receiverOnMessage);\n receiver.on('ping', receiverOnPing);\n receiver.on('pong', receiverOnPong);\n\n socket.setTimeout(0);\n socket.setNoDelay();\n\n if (head.length > 0) socket.unshift(head);\n\n socket.on('close', socketOnClose);\n socket.on('data', socketOnData);\n socket.on('end', socketOnEnd);\n socket.on('error', socketOnError);\n\n this._readyState = WebSocket.OPEN;\n this.emit('open');\n }\n\n /**\n * Emit the `'close'` event.\n *\n * @private\n */\n emitClose() {\n if (!this._socket) {\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n return;\n }\n\n if (this._extensions[PerMessageDeflate.extensionName]) {\n this._extensions[PerMessageDeflate.extensionName].cleanup();\n }\n\n this._receiver.removeAllListeners();\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n }\n\n /**\n * Start a closing handshake.\n *\n * +----------+ +-----------+ +----------+\n * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n * | +----------+ +-----------+ +----------+ |\n * +----------+ +-----------+ |\n * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING\n * +----------+ +-----------+ |\n * | | | +---+ |\n * +------------------------+-->|fin| - - - -\n * | +---+ | +---+\n * - - - - -|fin|<---------------------+\n * +---+\n *\n * @param {Number} [code] Status code explaining why the connection is closing\n * @param {String} [data] A string explaining why the connection is closing\n * @public\n */\n close(code, data) {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this.readyState === WebSocket.CLOSING) {\n if (\n this._closeFrameSent &&\n (this._closeFrameReceived || this._receiver._writableState.errorEmitted)\n ) {\n this._socket.end();\n }\n\n return;\n }\n\n this._readyState = WebSocket.CLOSING;\n this._sender.close(code, data, !this._isServer, (err) => {\n //\n // This error is handled by the `'error'` listener on the socket. We only\n // want to know if the close frame has been sent here.\n //\n if (err) return;\n\n this._closeFrameSent = true;\n\n if (\n this._closeFrameReceived ||\n this._receiver._writableState.errorEmitted\n ) {\n this._socket.end();\n }\n });\n\n //\n // Specify a timeout for the closing handshake to complete.\n //\n this._closeTimer = setTimeout(\n this._socket.destroy.bind(this._socket),\n closeTimeout\n );\n }\n\n /**\n * Send a ping.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the ping is sent\n * @public\n */\n ping(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a pong.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the pong is sent\n * @public\n */\n pong(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a data message.\n *\n * @param {*} data The message to send\n * @param {Object} [options] Options object\n * @param {Boolean} [options.compress] Specifies whether or not to compress\n * `data`\n * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n * text\n * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when data is written out\n * @public\n */\n send(data, options, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n const opts = {\n binary: typeof data !== 'string',\n mask: !this._isServer,\n compress: true,\n fin: true,\n ...options\n };\n\n if (!this._extensions[PerMessageDeflate.extensionName]) {\n opts.compress = false;\n }\n\n this._sender.send(data || EMPTY_BUFFER, opts, cb);\n }\n\n /**\n * Forcibly close the connection.\n *\n * @public\n */\n terminate() {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this._socket) {\n this._readyState = WebSocket.CLOSING;\n this._socket.destroy();\n }\n }\n}\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n[\n 'binaryType',\n 'bufferedAmount',\n 'extensions',\n 'protocol',\n 'readyState',\n 'url'\n].forEach((property) => {\n Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n Object.defineProperty(WebSocket.prototype, `on${method}`, {\n enumerable: true,\n get() {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i]._listener) return listeners[i]._listener;\n }\n\n return undefined;\n },\n set(listener) {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n //\n // Remove only the listeners added via `addEventListener`.\n //\n if (listeners[i]._listener) this.removeListener(method, listeners[i]);\n }\n this.addEventListener(method, listener);\n }\n });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|URL)} address The URL to which to connect\n * @param {String} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n * permessage-deflate\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n * handshake request\n * @param {Number} [options.protocolVersion=13] Value of the\n * `Sec-WebSocket-Version` header\n * @param {String} [options.origin] Value of the `Origin` or\n * `Sec-WebSocket-Origin` header\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n * redirects\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n * allowed\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n const opts = {\n protocolVersion: protocolVersions[1],\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: true,\n followRedirects: false,\n maxRedirects: 10,\n ...options,\n createConnection: undefined,\n socketPath: undefined,\n hostname: undefined,\n protocol: undefined,\n timeout: undefined,\n method: undefined,\n host: undefined,\n path: undefined,\n port: undefined\n };\n\n if (!protocolVersions.includes(opts.protocolVersion)) {\n throw new RangeError(\n `Unsupported protocol version: ${opts.protocolVersion} ` +\n `(supported versions: ${protocolVersions.join(', ')})`\n );\n }\n\n let parsedUrl;\n\n if (address instanceof URL) {\n parsedUrl = address;\n websocket._url = address.href;\n } else {\n parsedUrl = new URL(address);\n websocket._url = address;\n }\n\n const isUnixSocket = parsedUrl.protocol === 'ws+unix:';\n\n if (!parsedUrl.host && (!isUnixSocket || !parsedUrl.pathname)) {\n throw new Error(`Invalid URL: ${websocket.url}`);\n }\n\n const isSecure =\n parsedUrl.protocol === 'wss:' || parsedUrl.protocol === 'https:';\n const defaultPort = isSecure ? 443 : 80;\n const key = randomBytes(16).toString('base64');\n const get = isSecure ? https.get : http.get;\n let perMessageDeflate;\n\n opts.createConnection = isSecure ? tlsConnect : netConnect;\n opts.defaultPort = opts.defaultPort || defaultPort;\n opts.port = parsedUrl.port || defaultPort;\n opts.host = parsedUrl.hostname.startsWith('[')\n ? parsedUrl.hostname.slice(1, -1)\n : parsedUrl.hostname;\n opts.headers = {\n 'Sec-WebSocket-Version': opts.protocolVersion,\n 'Sec-WebSocket-Key': key,\n Connection: 'Upgrade',\n Upgrade: 'websocket',\n ...opts.headers\n };\n opts.path = parsedUrl.pathname + parsedUrl.search;\n opts.timeout = opts.handshakeTimeout;\n\n if (opts.perMessageDeflate) {\n perMessageDeflate = new PerMessageDeflate(\n opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},\n false,\n opts.maxPayload\n );\n opts.headers['Sec-WebSocket-Extensions'] = format({\n [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n });\n }\n if (protocols) {\n opts.headers['Sec-WebSocket-Protocol'] = protocols;\n }\n if (opts.origin) {\n if (opts.protocolVersion < 13) {\n opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n } else {\n opts.headers.Origin = opts.origin;\n }\n }\n if (parsedUrl.username || parsedUrl.password) {\n opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n }\n\n if (isUnixSocket) {\n const parts = opts.path.split(':');\n\n opts.socketPath = parts[0];\n opts.path = parts[1];\n }\n\n let req = (websocket._req = get(opts));\n\n if (opts.timeout) {\n req.on('timeout', () => {\n abortHandshake(websocket, req, 'Opening handshake has timed out');\n });\n }\n\n req.on('error', (err) => {\n if (req === null || req.aborted) return;\n\n req = websocket._req = null;\n websocket._readyState = WebSocket.CLOSING;\n websocket.emit('error', err);\n websocket.emitClose();\n });\n\n req.on('response', (res) => {\n const location = res.headers.location;\n const statusCode = res.statusCode;\n\n if (\n location &&\n opts.followRedirects &&\n statusCode >= 300 &&\n statusCode < 400\n ) {\n if (++websocket._redirects > opts.maxRedirects) {\n abortHandshake(websocket, req, 'Maximum redirects exceeded');\n return;\n }\n\n req.abort();\n\n const addr = new URL(location, address);\n\n initAsClient(websocket, addr, protocols, options);\n } else if (!websocket.emit('unexpected-response', req, res)) {\n abortHandshake(\n websocket,\n req,\n `Unexpected server response: ${res.statusCode}`\n );\n }\n });\n\n req.on('upgrade', (res, socket, head) => {\n websocket.emit('upgrade', res);\n\n //\n // The user may have closed the connection from a listener of the `upgrade`\n // event.\n //\n if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n req = websocket._req = null;\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n if (res.headers['sec-websocket-accept'] !== digest) {\n abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n return;\n }\n\n const serverProt = res.headers['sec-websocket-protocol'];\n const protList = (protocols || '').split(/, */);\n let protError;\n\n if (!protocols && serverProt) {\n protError = 'Server sent a subprotocol but none was requested';\n } else if (protocols && !serverProt) {\n protError = 'Server sent no subprotocol';\n } else if (serverProt && !protList.includes(serverProt)) {\n protError = 'Server sent an invalid subprotocol';\n }\n\n if (protError) {\n abortHandshake(websocket, socket, protError);\n return;\n }\n\n if (serverProt) websocket._protocol = serverProt;\n\n const secWebSocketExtensions = res.headers['sec-websocket-extensions'];\n\n if (secWebSocketExtensions !== undefined) {\n if (!perMessageDeflate) {\n const message =\n 'Server sent a Sec-WebSocket-Extensions header but no extension ' +\n 'was requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n let extensions;\n\n try {\n extensions = parse(secWebSocketExtensions);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n const extensionNames = Object.keys(extensions);\n\n if (extensionNames.length) {\n if (\n extensionNames.length !== 1 ||\n extensionNames[0] !== PerMessageDeflate.extensionName\n ) {\n const message =\n 'Server indicated an extension that was not requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n try {\n perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n websocket._extensions[PerMessageDeflate.extensionName] =\n perMessageDeflate;\n }\n }\n\n websocket.setSocket(socket, head, opts.maxPayload);\n });\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n options.path = options.socketPath;\n return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n options.path = undefined;\n\n if (!options.servername && options.servername !== '') {\n options.servername = net.isIP(options.host) ? '' : options.host;\n }\n\n return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket|tls.Socket)} stream The request to\n * abort or the socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n websocket._readyState = WebSocket.CLOSING;\n\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshake);\n\n if (stream.setHeader) {\n stream.abort();\n\n if (stream.socket && !stream.socket.destroyed) {\n //\n // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n // called after the request completed. See\n // https://github.com/websockets/ws/issues/1869.\n //\n stream.socket.destroy();\n }\n\n stream.once('abort', websocket.emitClose.bind(websocket));\n websocket.emit('error', err);\n } else {\n stream.destroy(err);\n stream.once('error', websocket.emit.bind(websocket, 'error'));\n stream.once('close', websocket.emitClose.bind(websocket));\n }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n if (data) {\n const length = toBuffer(data).length;\n\n //\n // The `_bufferedAmount` property is used only when the peer is a client and\n // the opening handshake fails. Under these circumstances, in fact, the\n // `setSocket()` method is not called, so the `_socket` and `_sender`\n // properties are set to `null`.\n //\n if (websocket._socket) websocket._sender._bufferedBytes += length;\n else websocket._bufferedAmount += length;\n }\n\n if (cb) {\n const err = new Error(\n `WebSocket is not open: readyState ${websocket.readyState} ` +\n `(${readyStates[websocket.readyState]})`\n );\n cb(err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {String} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n const websocket = this[kWebSocket];\n\n websocket._socket.removeListener('data', socketOnData);\n websocket._socket.resume();\n\n websocket._closeFrameReceived = true;\n websocket._closeMessage = reason;\n websocket._closeCode = code;\n\n if (code === 1005) websocket.close();\n else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n this[kWebSocket]._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n const websocket = this[kWebSocket];\n\n websocket._socket.removeListener('data', socketOnData);\n websocket._socket.resume();\n\n websocket.close(err[kStatusCode]);\n websocket.emit('error', err);\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The message\n * @private\n */\nfunction receiverOnMessage(data) {\n this[kWebSocket].emit('message', data);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n const websocket = this[kWebSocket];\n\n websocket.pong(data, !websocket._isServer, NOOP);\n websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n this[kWebSocket].emit('pong', data);\n}\n\n/**\n * The listener of the `net.Socket` `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n const websocket = this[kWebSocket];\n\n this.removeListener('close', socketOnClose);\n this.removeListener('end', socketOnEnd);\n\n websocket._readyState = WebSocket.CLOSING;\n\n //\n // The close frame might not have been received or the `'end'` event emitted,\n // for example, if the socket was destroyed due to an error. Ensure that the\n // `receiver` stream is closed after writing any remaining buffered data to\n // it. If the readable side of the socket is in flowing mode then there is no\n // buffered data as everything has been already written and `readable.read()`\n // will return `null`. If instead, the socket is paused, any possible buffered\n // data will be read as a single chunk and emitted synchronously in a single\n // `'data'` event.\n //\n websocket._socket.read();\n websocket._receiver.end();\n\n this.removeListener('data', socketOnData);\n this[kWebSocket] = undefined;\n\n clearTimeout(websocket._closeTimer);\n\n if (\n websocket._receiver._writableState.finished ||\n websocket._receiver._writableState.errorEmitted\n ) {\n websocket.emitClose();\n } else {\n websocket._receiver.on('error', receiverOnFinish);\n websocket._receiver.on('finish', receiverOnFinish);\n }\n}\n\n/**\n * The listener of the `net.Socket` `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n if (!this[kWebSocket]._receiver.write(chunk)) {\n this.pause();\n }\n}\n\n/**\n * The listener of the `net.Socket` `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n const websocket = this[kWebSocket];\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._receiver.end();\n this.end();\n}\n\n/**\n * The listener of the `net.Socket` `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n const websocket = this[kWebSocket];\n\n this.removeListener('error', socketOnError);\n this.on('error', NOOP);\n\n if (websocket) {\n websocket._readyState = WebSocket.CLOSING;\n this.destroy();\n }\n}\n","'use strict';\n\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {Duplex} stream The stream.\n * @private\n */\nfunction emitClose(stream) {\n stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n if (!this.destroyed && this._writableState.finished) {\n this.destroy();\n }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n this.removeListener('error', duplexOnError);\n this.destroy();\n if (this.listenerCount('error') === 0) {\n // Do not suppress the throwing behavior.\n this.emit('error', err);\n }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n let resumeOnReceiverDrain = true;\n let terminateOnDestroy = true;\n\n function receiverOnDrain() {\n if (resumeOnReceiverDrain) ws._socket.resume();\n }\n\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n });\n } else {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n }\n\n const duplex = new Duplex({\n ...options,\n autoDestroy: false,\n emitClose: false,\n objectMode: false,\n writableObjectMode: false\n });\n\n ws.on('message', function message(msg) {\n if (!duplex.push(msg)) {\n resumeOnReceiverDrain = false;\n ws._socket.pause();\n }\n });\n\n ws.once('error', function error(err) {\n if (duplex.destroyed) return;\n\n // Prevent `ws.terminate()` from being called by `duplex._destroy()`.\n //\n // - If the `'error'` event is emitted before the `'open'` event, then\n // `ws.terminate()` is a noop as no socket is assigned.\n // - Otherwise, the error is re-emitted by the listener of the `'error'`\n // event of the `Receiver` object. The listener already closes the\n // connection by calling `ws.close()`. This allows a close frame to be\n // sent to the other peer. If `ws.terminate()` is called right after this,\n // then the close frame might not be sent.\n terminateOnDestroy = false;\n duplex.destroy(err);\n });\n\n ws.once('close', function close() {\n if (duplex.destroyed) return;\n\n duplex.push(null);\n });\n\n duplex._destroy = function (err, callback) {\n if (ws.readyState === ws.CLOSED) {\n callback(err);\n process.nextTick(emitClose, duplex);\n return;\n }\n\n let called = false;\n\n ws.once('error', function error(err) {\n called = true;\n callback(err);\n });\n\n ws.once('close', function close() {\n if (!called) callback(err);\n process.nextTick(emitClose, duplex);\n });\n\n if (terminateOnDestroy) ws.terminate();\n };\n\n duplex._final = function (callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._final(callback);\n });\n return;\n }\n\n // If the value of the `_socket` property is `null` it means that `ws` is a\n // client websocket and the handshake failed. In fact, when this happens, a\n // socket is never assigned to the websocket. Wait for the `'error'` event\n // that will be emitted by the websocket.\n if (ws._socket === null) return;\n\n if (ws._socket._writableState.finished) {\n callback();\n if (duplex._readableState.endEmitted) duplex.destroy();\n } else {\n ws._socket.once('finish', function finish() {\n // `duplex` is not destroyed here because the `'end'` event will be\n // emitted on `duplex` after this `'finish'` event. The EOF signaling\n // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n callback();\n });\n ws.close();\n }\n };\n\n duplex._read = function () {\n if (ws.readyState === ws.OPEN && !resumeOnReceiverDrain) {\n resumeOnReceiverDrain = true;\n if (!ws._receiver._writableState.needDrain) ws._socket.resume();\n }\n };\n\n duplex._write = function (chunk, encoding, callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._write(chunk, encoding, callback);\n });\n return;\n }\n\n ws.send(chunk, callback);\n };\n\n duplex.on('end', duplexOnEnd);\n duplex.on('error', duplexOnError);\n return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^net|tls|https$\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst http = require('http');\nconst https = require('https');\nconst net = require('net');\nconst tls = require('tls');\nconst { createHash } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst WebSocket = require('./websocket');\nconst { format, parse } = require('./extension');\nconst { GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\nconst RUNNING = 0;\nconst CLOSING = 1;\nconst CLOSED = 2;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n /**\n * Create a `WebSocketServer` instance.\n *\n * @param {Object} options Configuration options\n * @param {Number} [options.backlog=511] The maximum length of the queue of\n * pending connections\n * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n * track clients\n * @param {Function} [options.handleProtocols] A hook to handle protocols\n * @param {String} [options.host] The hostname where to bind the server\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.noServer=false] Enable no server mode\n * @param {String} [options.path] Accept only connections matching this path\n * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n * permessage-deflate\n * @param {Number} [options.port] The port where to bind the server\n * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S\n * server to use\n * @param {Function} [options.verifyClient] A hook to reject connections\n * @param {Function} [callback] A listener for the `listening` event\n */\n constructor(options, callback) {\n super();\n\n options = {\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: false,\n handleProtocols: null,\n clientTracking: true,\n verifyClient: null,\n noServer: false,\n backlog: null, // use default (511 as implemented in net.js)\n server: null,\n host: null,\n path: null,\n port: null,\n ...options\n };\n\n if (\n (options.port == null && !options.server && !options.noServer) ||\n (options.port != null && (options.server || options.noServer)) ||\n (options.server && options.noServer)\n ) {\n throw new TypeError(\n 'One and only one of the \"port\", \"server\", or \"noServer\" options ' +\n 'must be specified'\n );\n }\n\n if (options.port != null) {\n this._server = http.createServer((req, res) => {\n const body = http.STATUS_CODES[426];\n\n res.writeHead(426, {\n 'Content-Length': body.length,\n 'Content-Type': 'text/plain'\n });\n res.end(body);\n });\n this._server.listen(\n options.port,\n options.host,\n options.backlog,\n callback\n );\n } else if (options.server) {\n this._server = options.server;\n }\n\n if (this._server) {\n const emitConnection = this.emit.bind(this, 'connection');\n\n this._removeListeners = addListeners(this._server, {\n listening: this.emit.bind(this, 'listening'),\n error: this.emit.bind(this, 'error'),\n upgrade: (req, socket, head) => {\n this.handleUpgrade(req, socket, head, emitConnection);\n }\n });\n }\n\n if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n if (options.clientTracking) this.clients = new Set();\n this.options = options;\n this._state = RUNNING;\n }\n\n /**\n * Returns the bound address, the address family name, and port of the server\n * as reported by the operating system if listening on an IP socket.\n * If the server is listening on a pipe or UNIX domain socket, the name is\n * returned as a string.\n *\n * @return {(Object|String|null)} The address of the server\n * @public\n */\n address() {\n if (this.options.noServer) {\n throw new Error('The server is operating in \"noServer\" mode');\n }\n\n if (!this._server) return null;\n return this._server.address();\n }\n\n /**\n * Close the server.\n *\n * @param {Function} [cb] Callback\n * @public\n */\n close(cb) {\n if (cb) this.once('close', cb);\n\n if (this._state === CLOSED) {\n process.nextTick(emitClose, this);\n return;\n }\n\n if (this._state === CLOSING) return;\n this._state = CLOSING;\n\n //\n // Terminate all associated clients.\n //\n if (this.clients) {\n for (const client of this.clients) client.terminate();\n }\n\n const server = this._server;\n\n if (server) {\n this._removeListeners();\n this._removeListeners = this._server = null;\n\n //\n // Close the http server if it was internally created.\n //\n if (this.options.port != null) {\n server.close(emitClose.bind(undefined, this));\n return;\n }\n }\n\n process.nextTick(emitClose, this);\n }\n\n /**\n * See if a given request should be handled by this server instance.\n *\n * @param {http.IncomingMessage} req Request object to inspect\n * @return {Boolean} `true` if the request is valid, else `false`\n * @public\n */\n shouldHandle(req) {\n if (this.options.path) {\n const index = req.url.indexOf('?');\n const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n if (pathname !== this.options.path) return false;\n }\n\n return true;\n }\n\n /**\n * Handle a HTTP Upgrade request.\n *\n * @param {http.IncomingMessage} req The request object\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @public\n */\n handleUpgrade(req, socket, head, cb) {\n socket.on('error', socketOnError);\n\n const key =\n req.headers['sec-websocket-key'] !== undefined\n ? req.headers['sec-websocket-key'].trim()\n : false;\n const version = +req.headers['sec-websocket-version'];\n const extensions = {};\n\n if (\n req.method !== 'GET' ||\n req.headers.upgrade.toLowerCase() !== 'websocket' ||\n !key ||\n !keyRegex.test(key) ||\n (version !== 8 && version !== 13) ||\n !this.shouldHandle(req)\n ) {\n return abortHandshake(socket, 400);\n }\n\n if (this.options.perMessageDeflate) {\n const perMessageDeflate = new PerMessageDeflate(\n this.options.perMessageDeflate,\n true,\n this.options.maxPayload\n );\n\n try {\n const offers = parse(req.headers['sec-websocket-extensions']);\n\n if (offers[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n }\n } catch (err) {\n return abortHandshake(socket, 400);\n }\n }\n\n //\n // Optionally call external client verification handler.\n //\n if (this.options.verifyClient) {\n const info = {\n origin:\n req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n secure: !!(req.socket.authorized || req.socket.encrypted),\n req\n };\n\n if (this.options.verifyClient.length === 2) {\n this.options.verifyClient(info, (verified, code, message, headers) => {\n if (!verified) {\n return abortHandshake(socket, code || 401, message, headers);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n });\n return;\n }\n\n if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n }\n\n /**\n * Upgrade the connection to WebSocket.\n *\n * @param {String} key The value of the `Sec-WebSocket-Key` header\n * @param {Object} extensions The accepted extensions\n * @param {http.IncomingMessage} req The request object\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @throws {Error} If called more than once with the same socket\n * @private\n */\n completeUpgrade(key, extensions, req, socket, head, cb) {\n //\n // Destroy the socket if the client has already sent a FIN packet.\n //\n if (!socket.readable || !socket.writable) return socket.destroy();\n\n if (socket[kWebSocket]) {\n throw new Error(\n 'server.handleUpgrade() was called more than once with the same ' +\n 'socket, possibly due to a misconfiguration'\n );\n }\n\n if (this._state > RUNNING) return abortHandshake(socket, 503);\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n const headers = [\n 'HTTP/1.1 101 Switching Protocols',\n 'Upgrade: websocket',\n 'Connection: Upgrade',\n `Sec-WebSocket-Accept: ${digest}`\n ];\n\n const ws = new WebSocket(null);\n let protocol = req.headers['sec-websocket-protocol'];\n\n if (protocol) {\n protocol = protocol.split(',').map(trim);\n\n //\n // Optionally call external protocol selection handler.\n //\n if (this.options.handleProtocols) {\n protocol = this.options.handleProtocols(protocol, req);\n } else {\n protocol = protocol[0];\n }\n\n if (protocol) {\n headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n ws._protocol = protocol;\n }\n }\n\n if (extensions[PerMessageDeflate.extensionName]) {\n const params = extensions[PerMessageDeflate.extensionName].params;\n const value = format({\n [PerMessageDeflate.extensionName]: [params]\n });\n headers.push(`Sec-WebSocket-Extensions: ${value}`);\n ws._extensions = extensions;\n }\n\n //\n // Allow external modification/inspection of handshake headers.\n //\n this.emit('headers', headers, req);\n\n socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n socket.removeListener('error', socketOnError);\n\n ws.setSocket(socket, head, this.options.maxPayload);\n\n if (this.clients) {\n this.clients.add(ws);\n ws.on('close', () => this.clients.delete(ws));\n }\n\n cb(ws, req);\n }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of \n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n * called\n * @private\n */\nfunction addListeners(server, map) {\n for (const event of Object.keys(map)) server.on(event, map[event]);\n\n return function removeListeners() {\n for (const event of Object.keys(map)) {\n server.removeListener(event, map[event]);\n }\n };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n server._state = CLOSED;\n server.emit('close');\n}\n\n/**\n * Handle premature socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {(net.Socket|tls.Socket)} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n if (socket.writable) {\n message = message || http.STATUS_CODES[code];\n headers = {\n Connection: 'close',\n 'Content-Type': 'text/html',\n 'Content-Length': Buffer.byteLength(message),\n ...headers\n };\n\n socket.write(\n `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\\r\\n` +\n Object.keys(headers)\n .map((h) => `${h}: ${headers[h]}`)\n .join('\\r\\n') +\n '\\r\\n\\r\\n' +\n message\n );\n }\n\n socket.removeListener('error', socketOnError);\n socket.destroy();\n}\n\n/**\n * Remove whitespace characters from both ends of a string.\n *\n * @param {String} str The string\n * @return {String} A new string representing `str` stripped of whitespace\n * characters from both its beginning and end\n * @private\n */\nfunction trim(str) {\n return str.trim();\n}\n","'use strict';\n\nconst WebSocket = require('./lib/websocket');\n\nWebSocket.createWebSocketStream = require('./lib/stream');\nWebSocket.Server = require('./lib/websocket-server');\nWebSocket.Receiver = require('./lib/receiver');\nWebSocket.Sender = require('./lib/sender');\n\nmodule.exports = WebSocket;\n","\"use strict\";\n\nmodule.exports = require('ws');","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\n\nmodule.exports = value => {\n\tif (typeof Blob === 'undefined') {\n\t\treturn false;\n\t}\n\n\treturn value instanceof Blob || Object.prototype.toString.call(value) === '[object Blob]';\n};\n",null,null],"names":["DLList","asyncGeneratorStep","_asyncToGenerator","Events","Queues","require$$0","require$$1","BottleneckError","DEFAULT_PRIORITY","Job","NUM_PRIORITIES","parser","LocalDatastore","RedisConnection","Scripts","require$$2","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","IORedisConnection","RedisDatastore","require$$3","States","Sync","require$$4","require$$5","require$$6","require$$7","require$$9","require$$10","require$$11","require$$12","require$$13","hasSymbolSham","toStr","implementation","bind","undefined","$TypeError","hasOwn","GetIntrinsic","has","isArray","isRegExp","inspect","decode","encode","push","defaults","utils","sideChannel","getSideChannel","parse","stringify","error","toUnicode","toASCII","punycode","usm","conversions","Impl","Blob","isBlob","URL","whatwgUrl","URL$1","fetch","global","isofetch","Bottleneck","qs","require","mask","unmask","kStatusCode","NOOP","Limiter","isValidUTF8","BINARY_TYPES","EMPTY_BUFFER","kWebSocket","isValidStatusCode","PerMessageDeflate","toBuffer","format","createHash","GUID","receiver","Receiver","Sender","socketOnError","abortHandshake","emitClose","WebSocket","EventEmitter"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,CAAC,EAAE,CAAC;AAChD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAChC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS9B,OAAK,CAAC,MAAM,EAAE;AACvB,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACrC;AACA,EAAE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,OAAO,MAAM,CAAC;AAC3D;AACA,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnC,EAAE,IAAI,YAAY,GAAG,KAAK,CAAC;AAC3B,EAAE,IAAI,UAAU,GAAG,KAAK,CAAC;AACzB,EAAE,IAAI,QAAQ,GAAG,KAAK,CAAC;AACvB,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,SAAS,CAAC;AAChB,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;AACjB,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AACf,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ;AACA,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjC,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACtC;AACA,IAAI,IAAI,aAAa,KAAK,SAAS,EAAE;AACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAChD,QAAQ,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AACpC,OAAO,MAAM,IAAI,IAAI,KAAK,IAAI,cAAc,IAAI,KAAK,IAAI,aAAa;AACtE,QAAQ,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAChD,OAAO,MAAM,IAAI,IAAI,KAAK,IAAI,cAAc,IAAI,KAAK,IAAI,YAAY;AACrE,QAAQ,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAC1B,UAAU,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,SAAS;AACT;AACA,QAAQ,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAChC,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9C,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3B,UAAU,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACrC,UAAU,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC,SAAS,MAAM;AACf,UAAU,aAAa,GAAG,IAAI,CAAC;AAC/B,SAAS;AACT;AACA,QAAQ,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,OAAO,MAAM;AACb,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,OAAO;AACP,KAAK,MAAM,IAAI,SAAS,KAAK,SAAS,EAAE;AACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAChD,QAAQ,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AACpC,OAAO,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AACjD,QAAQ,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAChD,OAAO,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AACjD,QAAQ,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAC1B,UAAU,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,SAAS;AACT;AACA,QAAQ,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAChC,QAAQ,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AACrD,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3B,UAAU,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAC9C,UAAU,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC,UAAU,aAAa,GAAG,SAAS,CAAC;AACpC,SAAS;AACT;AACA,QAAQ,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,OAAO,MAAM,IAAI,IAAI,KAAK,IAAI,cAAc,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AACxE,QAAQ,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC3C,QAAQ,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,OAAO,MAAM;AACb,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,OAAO;AACP,KAAK,MAAM;AACX;AACA;AACA;AACA;AACA;AACA,MAAM,IAAI,UAAU,EAAE;AACtB,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACpC,UAAU,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,SAAS;AACT,QAAQ,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AACpC,aAAa,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;AACpD,QAAQ,UAAU,GAAG,KAAK,CAAC;AAC3B,OAAO,MAAM,IAAI,QAAQ,EAAE;AAC3B,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACpC,UAAU,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AACtC,SAAS,MAAM,IAAI,IAAI,KAAK,IAAI,cAAc,KAAK,KAAK,CAAC,CAAC,EAAE;AAC5D,UAAU,QAAQ,GAAG,KAAK,CAAC;AAC3B,UAAU,GAAG,GAAG,CAAC,CAAC;AAClB,SAAS,MAAM,IAAI,IAAI,KAAK,IAAI,YAAY;AAC5C,UAAU,UAAU,GAAG,IAAI,CAAC;AAC5B,SAAS,MAAM;AACf,UAAU,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,SAAS;AACT,OAAO,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;AACrE,QAAQ,QAAQ,GAAG,IAAI,CAAC;AACxB,OAAO,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvD,QAAQ,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AACpC,OAAO,MAAM,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE;AACnE,QAAQ,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAChC,OAAO,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AACjD,QAAQ,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAC1B,UAAU,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,SAAS;AACT;AACA,QAAQ,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAChC,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC7C,QAAQ,IAAI,YAAY,EAAE;AAC1B,UAAU,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3C,UAAU,YAAY,GAAG,KAAK,CAAC;AAC/B,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACvC,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3B,UAAU,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAC9C,UAAU,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC,UAAU,aAAa,GAAG,SAAS,CAAC;AACpC,SAAS;AACT;AACA,QAAQ,SAAS,GAAG,SAAS,CAAC;AAC9B,QAAQ,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,OAAO,MAAM;AACb,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,QAAQ,EAAE;AAChC,IAAI,MAAM,IAAI,WAAW,CAAC,yBAAyB,CAAC,CAAC;AACrD,GAAG;AACH;AACA,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAC1B,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACzC,EAAE,IAAI,aAAa,KAAK,SAAS,EAAE;AACnC,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAChC,GAAG,MAAM;AACT,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE;AACjC,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAChC,KAAK,MAAM,IAAI,YAAY,EAAE;AAC7B,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;AACxD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AACxC,GAAG;AACH;AACA,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASgC,QAAM,CAAC,UAAU,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAChC,KAAK,GAAG,CAAC,CAAC,SAAS,KAAK;AACxB,MAAM,IAAI,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;AACjD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,CAAC,cAAc,CAAC,CAAC;AAC5E,MAAM,OAAO,cAAc;AAC3B,SAAS,GAAG,CAAC,CAAC,MAAM,KAAK;AACzB,UAAU,OAAO,CAAC,SAAS,CAAC;AAC5B,aAAa,MAAM;AACnB,cAAc,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC7C,gBAAgB,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvC,gBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9D,gBAAgB,OAAO,MAAM;AAC7B,mBAAmB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,mBAAmB,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,eAAe,CAAC;AAChB,aAAa;AACb,aAAa,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,SAAS,CAAC;AACV,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,KAAK,CAAC;AACN,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AACD;AACA,aAAc,GAAG,UAAEA,QAAM,SAAEhC,OAAK,EAAE;;ACvNlC,MAAM,EAAE,WAAW,cAAEiC,YAAU,EAAE,GAAGjF,YAAiB,CAAC;AACtD,MAAM,EAAE,GAAG,EAAE,GAAGC,GAAc,CAAC;AAC/B;AAC0D;AACnB;AACJ;AACnC,MAAM;AACN,EAAE,YAAY;AACd,EAAE,YAAY;AACd,QAAEiF,MAAI;AACN,EAAE,WAAW;AACb,cAAEN,YAAU;AACZ,EAAE,IAAI;AACN,CAAC,GAAGlE,SAAsB,CAAC;AAC3B,MAAM,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,GAAGO,WAAyB,CAAC;AAC5E,MAAM,UAAE+D,QAAM,SAAEhC,OAAK,EAAE,GAAG5B,SAAsB,CAAC;AACjD,MAAM,EAAE,QAAQ,EAAE,GAAGC,UAAwB,CAAC;AAC9C;AACA,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChE,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjC,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,SAAS,SAAS,YAAY,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE;AAC3C,IAAI,KAAK,EAAE,CAAC;AACZ;AACA,IAAI,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACrC,IAAI,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC;AAC5C,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB;AACA,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE;AAC1B,MAAM,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC7B,MAAM,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AAC1B;AACA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACpC,QAAQ,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,OAAO,MAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE;AACtE,QAAQ,OAAO,GAAG,SAAS,CAAC;AAC5B,QAAQ,SAAS,GAAG,SAAS,CAAC;AAC9B,OAAO;AACP;AACA,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACtD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC5B,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE;AACvB,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO;AAC7C;AACA,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B;AACA;AACA;AACA;AACA,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;AAC1D,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,IAAI,cAAc,GAAG;AACvB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC;AACnD;AACA,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;AAC5E,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;AAChD,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG;AACH;AACA;AACA,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;AAC1B;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG;AACH;AACA;AACA,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;AAC1B;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG;AACH;AACA;AACA,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG;AACH;AACA;AACA,EAAE,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAE;AAC5B;AACA;AACA;AACA;AACA,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,IAAI,GAAG,GAAG;AACZ,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;AACtC,IAAI,MAAM8D,UAAQ,GAAG,IAAIC,QAAQ;AACjC,MAAM,IAAI,CAAC,UAAU;AACrB,MAAM,IAAI,CAAC,WAAW;AACtB,MAAM,IAAI,CAAC,SAAS;AACpB,MAAM,UAAU;AAChB,KAAK,CAAC;AACN;AACA,IAAI,IAAI,CAAC,OAAO,GAAG,IAAIC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACxD,IAAI,IAAI,CAAC,SAAS,GAAGF,UAAQ,CAAC;AAC9B,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1B;AACA,IAAIA,UAAQ,CAACP,YAAU,CAAC,GAAG,IAAI,CAAC;AAChC,IAAI,MAAM,CAACA,YAAU,CAAC,GAAG,IAAI,CAAC;AAC9B;AACA,IAAIO,UAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAChD,IAAIA,UAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC1C,IAAIA,UAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC1C,IAAIA,UAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAC9C,IAAIA,UAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACxC,IAAIA,UAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACxC;AACA,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;AACxB;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9C;AACA,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACtC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACpC,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAClC,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO,EAAEG,eAAa,CAAC,CAAC;AACtC;AACA,IAAI,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC;AACtC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,GAAG;AACd,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACvB,MAAM,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;AAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC9D,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,WAAW,CAACR,iBAAiB,CAAC,aAAa,CAAC,EAAE;AAC3D,MAAM,IAAI,CAAC,WAAW,CAACA,iBAAiB,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;AAClE,KAAK;AACL;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;AACxC,IAAI,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;AACxC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5D,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,MAAM,EAAE,OAAO;AACrD,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE;AAClD,MAAM,MAAM,GAAG,GAAG,4DAA4D,CAAC;AAC/E,MAAM,OAAOS,gBAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClD,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,OAAO,EAAE;AAC/C,MAAM;AACN,QAAQ,IAAI,CAAC,eAAe;AAC5B,SAAS,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC;AAChF,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC3B,OAAO;AACP;AACA,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;AACzC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK;AAC7D;AACA;AACA;AACA;AACA,MAAM,IAAI,GAAG,EAAE,OAAO;AACtB;AACA,MAAM,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAClC;AACA,MAAM;AACN,QAAQ,IAAI,CAAC,mBAAmB;AAChC,QAAQ,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,YAAY;AAClD,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC3B,OAAO;AACP,KAAK,CAAC,CAAC;AACP;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,WAAW,GAAG,UAAU;AACjC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7C,MAAM,YAAY;AAClB,KAAK,CAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;AACvB,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE;AAClD,MAAM,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAC1E,KAAK;AACL;AACA,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACpC,MAAM,EAAE,GAAG,IAAI,CAAC;AAChB,MAAM,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;AAC9B,KAAK,MAAM,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AAC3C,MAAM,EAAE,GAAG,IAAI,CAAC;AAChB,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,KAAK;AACL;AACA,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzD;AACA,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;AAC5C,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACrC,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACtD,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;AACvB,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE;AAClD,MAAM,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAC1E,KAAK;AACL;AACA,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACpC,MAAM,EAAE,GAAG,IAAI,CAAC;AAChB,MAAM,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;AAC9B,KAAK,MAAM,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AAC3C,MAAM,EAAE,GAAG,IAAI,CAAC;AAChB,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,KAAK;AACL;AACA,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzD;AACA,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;AAC5C,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACrC,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACtD,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE;AAClD,MAAM,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAC1E,KAAK;AACL;AACA,IAAI,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACvC,MAAM,EAAE,GAAG,OAAO,CAAC;AACnB,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,KAAK;AACL;AACA,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzD;AACA,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;AAC5C,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACrC,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,MAAM,IAAI,GAAG;AACjB,MAAM,MAAM,EAAE,OAAO,IAAI,KAAK,QAAQ;AACtC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS;AAC3B,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,GAAG,EAAE,IAAI;AACf,MAAM,GAAG,OAAO;AAChB,KAAK,CAAC;AACN;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAACT,iBAAiB,CAAC,aAAa,CAAC,EAAE;AAC5D,MAAM,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC5B,KAAK;AACL;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACtD,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,GAAG;AACd,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,MAAM,EAAE,OAAO;AACrD,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE;AAClD,MAAM,MAAM,GAAG,GAAG,4DAA4D,CAAC;AAC/E,MAAM,OAAOS,gBAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClD,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;AAC3C,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE;AAC/C,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC;AAC1C,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE;AACzD,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC;AAC1C,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE;AACzC,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;AACpC,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE;AACnD,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;AACpC,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE;AAC5C,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;AACvC,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE;AACtD,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;AACvC,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE;AAC3C,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;AACtC,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE;AACrD,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;AACtC,CAAC,CAAC,CAAC;AACH;AACA;AACA,EAAE,YAAY;AACd,EAAE,gBAAgB;AAClB,EAAE,YAAY;AACd,EAAE,UAAU;AACZ,EAAE,YAAY;AACd,EAAE,KAAK;AACP,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACxB,EAAE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AAC1D,EAAE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;AAC5D,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,GAAG,GAAG;AACV,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC/C,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,OAAO;AACP;AACA,MAAM,OAAO,SAAS,CAAC;AACvB,KAAK;AACL,IAAI,GAAG,CAAC,QAAQ,EAAE;AAClB,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC/C,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD;AACA;AACA;AACA,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,OAAO;AACP,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC9C,KAAK;AACL,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH;AACA,SAAS,CAAC,SAAS,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AACxD,SAAS,CAAC,SAAS,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AAC9D;AACA,aAAc,GAAG,SAAS,CAAC;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE;AAC9D,EAAE,MAAM,IAAI,GAAG;AACf,IAAI,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACxC,IAAI,UAAU,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;AACjC,IAAI,iBAAiB,EAAE,IAAI;AAC3B,IAAI,eAAe,EAAE,KAAK;AAC1B,IAAI,YAAY,EAAE,EAAE;AACpB,IAAI,GAAG,OAAO;AACd,IAAI,gBAAgB,EAAE,SAAS;AAC/B,IAAI,UAAU,EAAE,SAAS;AACzB,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,IAAI,EAAE,SAAS;AACnB,IAAI,IAAI,EAAE,SAAS;AACnB,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;AACxD,IAAI,MAAM,IAAI,UAAU;AACxB,MAAM,CAAC,8BAA8B,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC9D,QAAQ,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9D,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,SAAS,CAAC;AAChB;AACA,EAAE,IAAI,OAAO,YAAY,GAAG,EAAE;AAC9B,IAAI,SAAS,GAAG,OAAO,CAAC;AACxB,IAAI,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAClC,GAAG,MAAM;AACT,IAAI,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;AACjC,IAAI,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC;AAC7B,GAAG;AACH;AACA,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,KAAK,UAAU,CAAC;AACzD;AACA,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;AACjE,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrD,GAAG;AACH;AACA,EAAE,MAAM,QAAQ;AAChB,IAAI,SAAS,CAAC,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACrE,EAAE,MAAM,WAAW,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC;AAC1C,EAAE,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjD,EAAE,MAAM,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AAC9C,EAAE,IAAI,iBAAiB,CAAC;AACxB;AACA,EAAE,IAAI,CAAC,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAC7D,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC;AACrD,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,WAAW,CAAC;AAC5C,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;AAChD,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,MAAM,SAAS,CAAC,QAAQ,CAAC;AACzB,EAAE,IAAI,CAAC,OAAO,GAAG;AACjB,IAAI,uBAAuB,EAAE,IAAI,CAAC,eAAe;AACjD,IAAI,mBAAmB,EAAE,GAAG;AAC5B,IAAI,UAAU,EAAE,SAAS;AACzB,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,GAAG,IAAI,CAAC,OAAO;AACnB,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC;AACpD,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACvC;AACA,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC9B,IAAI,iBAAiB,GAAG,IAAIT,iBAAiB;AAC7C,MAAM,IAAI,CAAC,iBAAiB,KAAK,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAG,EAAE;AACnE,MAAM,KAAK;AACX,MAAM,IAAI,CAAC,UAAU;AACrB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,GAAGE,QAAM,CAAC;AACtD,MAAM,CAACF,iBAAiB,CAAC,aAAa,GAAG,iBAAiB,CAAC,KAAK,EAAE;AAClE,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC;AACvD,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AACnB,IAAI,IAAI,IAAI,CAAC,eAAe,GAAG,EAAE,EAAE;AACnC,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACzD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACxC,KAAK;AACL,GAAG;AACH,EAAE,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE;AAChD,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9D,GAAG;AACH;AACA,EAAE,IAAI,YAAY,EAAE;AACpB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvC;AACA,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACzB,GAAG;AACH;AACA,EAAE,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACzC;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;AACpB,IAAI,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM;AAC5B,MAAMS,gBAAc,CAAC,SAAS,EAAE,GAAG,EAAE,iCAAiC,CAAC,CAAC;AACxE,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAC3B,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO;AAC5C;AACA,IAAI,GAAG,GAAG,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;AAChC,IAAI,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;AAC9C,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;AAC1B,GAAG,CAAC,CAAC;AACL;AACA,EAAE,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK;AAC9B,IAAI,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC1C,IAAI,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;AACtC;AACA,IAAI;AACJ,MAAM,QAAQ;AACd,MAAM,IAAI,CAAC,eAAe;AAC1B,MAAM,UAAU,IAAI,GAAG;AACvB,MAAM,UAAU,GAAG,GAAG;AACtB,MAAM;AACN,MAAM,IAAI,EAAE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE;AACtD,QAAQA,gBAAc,CAAC,SAAS,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC;AACrE,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AAClB;AACA,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9C;AACA,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACxD,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;AACjE,MAAMA,gBAAc;AACpB,QAAQ,SAAS;AACjB,QAAQ,GAAG;AACX,QAAQ,CAAC,4BAA4B,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AACvD,OAAO,CAAC;AACR,KAAK;AACL,GAAG,CAAC,CAAC;AACL;AACA,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,KAAK;AAC3C,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE,OAAO;AAC9D;AACA,IAAI,GAAG,GAAG,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;AAChC;AACA,IAAI,MAAM,MAAM,GAAGN,YAAU,CAAC,MAAM,CAAC;AACrC,OAAO,MAAM,CAAC,GAAG,GAAGC,MAAI,CAAC;AACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;AACxB;AACA,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,MAAM,EAAE;AACxD,MAAMK,gBAAc,CAAC,SAAS,EAAE,MAAM,EAAE,qCAAqC,CAAC,CAAC;AAC/E,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAC7D,IAAI,MAAM,QAAQ,GAAG,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AACpD,IAAI,IAAI,SAAS,CAAC;AAClB;AACA,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE;AAClC,MAAM,SAAS,GAAG,kDAAkD,CAAC;AACrE,KAAK,MAAM,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE;AACzC,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAC/C,KAAK,MAAM,IAAI,UAAU,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AAC7D,MAAM,SAAS,GAAG,oCAAoC,CAAC;AACvD,KAAK;AACL;AACA,IAAI,IAAI,SAAS,EAAE;AACnB,MAAMA,gBAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACnD,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,IAAI,UAAU,EAAE,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC;AACrD;AACA,IAAI,MAAM,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAC3E;AACA,IAAI,IAAI,sBAAsB,KAAK,SAAS,EAAE;AAC9C,MAAM,IAAI,CAAC,iBAAiB,EAAE;AAC9B,QAAQ,MAAM,OAAO;AACrB,UAAU,iEAAiE;AAC3E,UAAU,eAAe,CAAC;AAC1B,QAAQA,gBAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACnD,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,IAAI,UAAU,CAAC;AACrB;AACA,MAAM,IAAI;AACV,QAAQ,UAAU,GAAGvC,OAAK,CAAC,sBAAsB,CAAC,CAAC;AACnD,OAAO,CAAC,OAAO,GAAG,EAAE;AACpB,QAAQ,MAAM,OAAO,GAAG,yCAAyC,CAAC;AAClE,QAAQuC,gBAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACnD,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACrD;AACA,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE;AACjC,QAAQ;AACR,UAAU,cAAc,CAAC,MAAM,KAAK,CAAC;AACrC,UAAU,cAAc,CAAC,CAAC,CAAC,KAAKT,iBAAiB,CAAC,aAAa;AAC/D,UAAU;AACV,UAAU,MAAM,OAAO;AACvB,YAAY,sDAAsD,CAAC;AACnE,UAAUS,gBAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACrD,UAAU,OAAO;AACjB,SAAS;AACT;AACA,QAAQ,IAAI;AACZ,UAAU,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAACT,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC;AAChF,SAAS,CAAC,OAAO,GAAG,EAAE;AACtB,UAAU,MAAM,OAAO,GAAG,yCAAyC,CAAC;AACpE,UAAUS,gBAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACrD,UAAU,OAAO;AACjB,SAAS;AACT;AACA,QAAQ,SAAS,CAAC,WAAW,CAACT,iBAAiB,CAAC,aAAa,CAAC;AAC9D,UAAU,iBAAiB,CAAC;AAC5B,OAAO;AACP,KAAK;AACL;AACA,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACvD,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,OAAO,EAAE;AAC7B,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;AACpC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,OAAO,EAAE;AAC7B,EAAE,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;AAC3B;AACA,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,KAAK,EAAE,EAAE;AACxD,IAAI,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;AACpE,GAAG;AACH;AACA,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASS,gBAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;AACpD,EAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;AAC5C;AACA,EAAE,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACjC,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAEA,gBAAc,CAAC,CAAC;AAC/C;AACA,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE;AACxB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;AACnB;AACA,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AAC9B,KAAK;AACL;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9D,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACjC,GAAG,MAAM;AACT,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9D,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;AAC7C,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC;AACtE,SAAS,SAAS,CAAC,eAAe,IAAI,MAAM,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,IAAI,EAAE,EAAE;AACV,IAAI,MAAM,GAAG,GAAG,IAAI,KAAK;AACzB,MAAM,CAAC,kCAAkC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AAClE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChD,KAAK,CAAC;AACN,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;AACZ,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE;AAC1C,EAAE,MAAM,SAAS,GAAG,IAAI,CAACX,YAAU,CAAC,CAAC;AACrC;AACA,EAAE,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACzD,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AAC7B;AACA,EAAE,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACvC,EAAE,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC;AACnC,EAAE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;AAC9B;AACA,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;AACvC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,GAAG;AAC3B,EAAE,IAAI,CAACA,YAAU,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AACpC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,GAAG,EAAE;AAC9B,EAAE,MAAM,SAAS,GAAG,IAAI,CAACA,YAAU,CAAC,CAAC;AACrC;AACA,EAAE,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACzD,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AAC7B;AACA,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACpC,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,GAAG;AAC5B,EAAE,IAAI,CAACA,YAAU,CAAC,CAAC,SAAS,EAAE,CAAC;AAC/B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,EAAE,IAAI,CAACA,YAAU,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,IAAI,EAAE;AAC9B,EAAE,MAAM,SAAS,GAAG,IAAI,CAACA,YAAU,CAAC,CAAC;AACrC;AACA,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACnD,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,IAAI,EAAE;AAC9B,EAAE,IAAI,CAACA,YAAU,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,GAAG;AACzB,EAAE,MAAM,SAAS,GAAG,IAAI,CAACA,YAAU,CAAC,CAAC;AACrC;AACA,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC9C,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAC1C;AACA,EAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC3B,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;AAC5B;AACA,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAC5C,EAAE,IAAI,CAACA,YAAU,CAAC,GAAG,SAAS,CAAC;AAC/B;AACA,EAAE,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AACtC;AACA,EAAE;AACF,IAAI,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ;AAC/C,IAAI,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,YAAY;AACnD,IAAI;AACJ,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;AAC1B,GAAG,MAAM;AACT,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACtD,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AACvD,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,EAAE,IAAI,CAAC,IAAI,CAACA,YAAU,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAChD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAW,GAAG;AACvB,EAAE,MAAM,SAAS,GAAG,IAAI,CAACA,YAAU,CAAC,CAAC;AACrC;AACA,EAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;AAC5C,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;AAC5B,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAASU,eAAa,GAAG;AACzB,EAAE,MAAM,SAAS,GAAG,IAAI,CAACV,YAAU,CAAC,CAAC;AACrC;AACA,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAEU,eAAa,CAAC,CAAC;AAC9C,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACzB;AACA,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;AAC9C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,GAAG;AACH;;ACnjCA,MAAM,EAAE,MAAM,EAAE,GAAGtF,MAAiB,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASwF,WAAS,CAAC,MAAM,EAAE;AAC3B,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAW,GAAG;AACvB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;AACvD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC9C,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACjB,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzC;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC5B,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB,CAAC,EAAE,EAAE,OAAO,EAAE;AAC5C,EAAE,IAAI,qBAAqB,GAAG,IAAI,CAAC;AACnC,EAAE,IAAI,kBAAkB,GAAG,IAAI,CAAC;AAChC;AACA,EAAE,SAAS,eAAe,GAAG;AAC7B,IAAI,IAAI,qBAAqB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AACnD,GAAG;AACH;AACA,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,UAAU,EAAE;AACvC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,GAAG;AACpC,MAAM,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC/C,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAChD,KAAK,CAAC,CAAC;AACP,GAAG,MAAM;AACT,IAAI,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC7C,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC9C,GAAG;AACH;AACA,EAAE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;AAC5B,IAAI,GAAG,OAAO;AACd,IAAI,WAAW,EAAE,KAAK;AACtB,IAAI,SAAS,EAAE,KAAK;AACpB,IAAI,UAAU,EAAE,KAAK;AACrB,IAAI,kBAAkB,EAAE,KAAK;AAC7B,GAAG,CAAC,CAAC;AACL;AACA,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,OAAO,CAAC,GAAG,EAAE;AACzC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC3B,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACzB,KAAK;AACL,GAAG,CAAC,CAAC;AACL;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,KAAK,CAAC,GAAG,EAAE;AACvC,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAC/B,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxB,GAAG,CAAC,CAAC;AACL;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,KAAK,GAAG;AACpC,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO;AACjC;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,GAAG,CAAC,CAAC;AACL;AACA,EAAE,MAAM,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,QAAQ,EAAE;AAC7C,IAAI,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,MAAM,EAAE;AACrC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpB,MAAM,OAAO,CAAC,QAAQ,CAACA,WAAS,EAAE,MAAM,CAAC,CAAC;AAC1C,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC;AACvB;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,KAAK,CAAC,GAAG,EAAE;AACzC,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,KAAK,GAAG;AACtC,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,MAAM,OAAO,CAAC,QAAQ,CAACA,WAAS,EAAE,MAAM,CAAC,CAAC;AAC1C,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,kBAAkB,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC;AAC3C,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,QAAQ,EAAE;AACtC,IAAI,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,UAAU,EAAE;AACzC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,GAAG;AACtC,QAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC,OAAO,CAAC,CAAC;AACT,MAAM,OAAO;AACb,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE,OAAO;AACpC;AACA,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE;AAC5C,MAAM,QAAQ,EAAE,CAAC;AACjB,MAAM,IAAI,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AAC7D,KAAK,MAAM;AACX,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,MAAM,GAAG;AAClD;AACA;AACA;AACA,QAAQ,QAAQ,EAAE,CAAC;AACnB,OAAO,CAAC,CAAC;AACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;AACjB,KAAK;AACL,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,CAAC,KAAK,GAAG,YAAY;AAC7B,IAAI,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC7D,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AACtE,KAAK;AACL,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACvD,IAAI,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,UAAU,EAAE;AACzC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,GAAG;AACtC,QAAQ,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACjD,OAAO,CAAC,CAAC;AACT,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC7B,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAChC,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACpC,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD;AACA,UAAc,GAAG,qBAAqB;;;AC7KtC;AACuC;AACV;AACE;AACJ;AACA;AAC3B,MAAM,EAAE,UAAU,EAAE,GAAGxF,YAAiB,CAAC;AACzC;AAC0D;AACjB;AACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAGC,SAAsB,CAAC;AACjD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAGS,SAAsB,CAAC;AACpD;AACA,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AACzC;AACA,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,MAAM,GAAG,CAAC,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,eAAe,SAAS,YAAY,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE;AACjC,IAAI,KAAK,EAAE,CAAC;AACZ;AACA,IAAI,OAAO,GAAG;AACd,MAAM,UAAU,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;AACnC,MAAM,iBAAiB,EAAE,KAAK;AAC9B,MAAM,eAAe,EAAE,IAAI;AAC3B,MAAM,cAAc,EAAE,IAAI;AAC1B,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,QAAQ,EAAE,KAAK;AACrB,MAAM,OAAO,EAAE,IAAI;AACnB,MAAM,MAAM,EAAE,IAAI;AAClB,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,GAAG,OAAO;AAChB,KAAK,CAAC;AACN;AACA,IAAI;AACJ,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ;AACnE,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;AACpE,OAAO,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC;AAC1C,MAAM;AACN,MAAM,MAAM,IAAI,SAAS;AACzB,QAAQ,kEAAkE;AAC1E,UAAU,mBAAmB;AAC7B,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AACrD,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC5C;AACA,QAAQ,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;AAC3B,UAAU,gBAAgB,EAAE,IAAI,CAAC,MAAM;AACvC,UAAU,cAAc,EAAE,YAAY;AACtC,SAAS,CAAC,CAAC;AACX,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtB,OAAO,CAAC,CAAC;AACT,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM;AACzB,QAAQ,OAAO,CAAC,IAAI;AACpB,QAAQ,OAAO,CAAC,IAAI;AACpB,QAAQ,OAAO,CAAC,OAAO;AACvB,QAAQ,QAAQ;AAChB,OAAO,CAAC;AACR,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;AAC/B,MAAM,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;AACpC,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAChE;AACA,MAAM,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE;AACzD,QAAQ,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;AACpD,QAAQ,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;AAC5C,QAAQ,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,KAAK;AACxC,UAAU,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAChE,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA,IAAI,IAAI,OAAO,CAAC,iBAAiB,KAAK,IAAI,EAAE,OAAO,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC3E,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;AACzD,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;AAC1B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC/B,MAAM,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AACpE,KAAK;AACL;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC;AACnC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAClC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,EAAE,EAAE;AACZ,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACnC;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;AAChC,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACxC,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,OAAO;AACxC,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;AAC5D,KAAK;AACL;AACA,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAChC;AACA,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC9B,MAAM,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAClD;AACA;AACA;AACA;AACA,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;AACrC,QAAQ,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AACtD,QAAQ,OAAO;AACf,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACtC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,CAAC,GAAG,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC3B,MAAM,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACzC,MAAM,MAAM,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AACxE;AACA,MAAM,IAAI,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC;AACvD,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;AACvC,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACtC;AACA,IAAI,MAAM,GAAG;AACb,MAAM,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,SAAS;AACpD,UAAU,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE;AACjD,UAAU,KAAK,CAAC;AAChB,IAAI,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAC1D,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC;AAC1B;AACA,IAAI;AACJ,MAAM,GAAG,CAAC,MAAM,KAAK,KAAK;AAC1B,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW;AACvD,MAAM,CAAC,GAAG;AACV,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AACzB,OAAO,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,EAAE,CAAC;AACvC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AAC7B,MAAM;AACN,MAAM,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACzC,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACxC,MAAM,MAAM,iBAAiB,GAAG,IAAIoE,iBAAiB;AACrD,QAAQ,IAAI,CAAC,OAAO,CAAC,iBAAiB;AACtC,QAAQ,IAAI;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU;AAC/B,OAAO,CAAC;AACR;AACA,MAAM,IAAI;AACV,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC;AACtE;AACA,QAAQ,IAAI,MAAM,CAACA,iBAAiB,CAAC,aAAa,CAAC,EAAE;AACrD,UAAU,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAACA,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC;AAC5E,UAAU,UAAU,CAACA,iBAAiB,CAAC,aAAa,CAAC,GAAG,iBAAiB,CAAC;AAC1E,SAAS;AACT,OAAO,CAAC,OAAO,GAAG,EAAE;AACpB,QAAQ,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC3C,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACnC,MAAM,MAAM,IAAI,GAAG;AACnB,QAAQ,MAAM;AACd,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,GAAG,sBAAsB,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC7E,QAAQ,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;AACjE,QAAQ,GAAG;AACX,OAAO,CAAC;AACR;AACA,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AAClD,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK;AAC9E,UAAU,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAY,OAAO,cAAc,CAAC,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzE,WAAW;AACX;AACA,UAAU,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACvE,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/E,KAAK;AACL;AACA,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACjE,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;AAC1D;AACA;AACA;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;AACtE;AACA,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;AAC5B,MAAM,MAAM,IAAI,KAAK;AACrB,QAAQ,iEAAiE;AACzE,UAAU,4CAA4C;AACtD,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAClE;AACA,IAAI,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AACrC,OAAO,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;AACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;AACxB;AACA,IAAI,MAAM,OAAO,GAAG;AACpB,MAAM,kCAAkC;AACxC,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;AAC3B,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AACvC,KAAK,CAAC;AACN;AACA,IAAI,MAAM,EAAE,GAAG,IAAIW,SAAS,CAAC,IAAI,CAAC,CAAC;AACnC,IAAI,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;AACzD;AACA,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/C;AACA;AACA;AACA;AACA,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;AACxC,QAAQ,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC/D,OAAO,MAAM;AACb,QAAQ,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/B,OAAO;AACP;AACA,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5D,QAAQ,EAAE,CAAC,SAAS,GAAG,QAAQ,CAAC;AAChC,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,UAAU,CAACX,iBAAiB,CAAC,aAAa,CAAC,EAAE;AACrD,MAAM,MAAM,MAAM,GAAG,UAAU,CAACA,iBAAiB,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;AACxE,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAC3B,QAAQ,CAACA,iBAAiB,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC;AACnD,OAAO,CAAC,CAAC;AACT,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACzD,MAAM,EAAE,CAAC,WAAW,GAAG,UAAU,CAAC;AAClC,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AACvC;AACA,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,IAAI,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAClD;AACA,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACxD;AACA,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACpD,KAAK;AACL;AACA,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAChB,GAAG;AACH,CAAC;AACD;AACA,mBAAc,GAAG,eAAe,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,EAAE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE;AACA,EAAE,OAAO,SAAS,eAAe,GAAG;AACpC,IAAI,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC1C,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,KAAK;AACL,GAAG,CAAC;AACJ,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,GAAG;AACzB,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACjB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;AACxD,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE;AACvB,IAAI,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACjD,IAAI,OAAO,GAAG;AACd,MAAM,UAAU,EAAE,OAAO;AACzB,MAAM,cAAc,EAAE,WAAW;AACjC,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;AAClD,MAAM,GAAG,OAAO;AAChB,KAAK,CAAC;AACN;AACA,IAAI,MAAM,CAAC,KAAK;AAChB,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AACvD,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,WAAW,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,WAAW,IAAI,CAAC,MAAM,CAAC;AACvB,QAAQ,UAAU;AAClB,QAAQ,OAAO;AACf,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAChD,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AACnB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,CAAC,GAAG,EAAE;AACnB,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB;;AC1bAW,SAAS,CAAC,qBAAqB,GAAGzF,MAAuB,CAAC;AAC1DyF,SAAS,CAAC,MAAM,GAAGxF,eAAiC,CAAC;AACrDwF,SAAS,CAAC,QAAQ,GAAG/E,QAAyB,CAAC;AAC/C+E,SAAS,CAAC,MAAM,GAAGxE,MAAuB,CAAC;AAC3C;AACA,MAAc,GAAGwE,SAAS;;ACP1B,QAAc,GAAGzF,EAAa;;;ACD9B;AACA,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc;AACzC,IAAI,MAAM,GAAG,GAAG,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAM,GAAG,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,EAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;AAC9C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC/B,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACf,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACzB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC;AAC5B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACxD,EAAE,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;AAChC,IAAI,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;AAC3D,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,EAAE,IAAI,CAAC;AACrD,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAC5C;AACA,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;AACrF,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzE,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC/D;AACA,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE;AAClC,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;AACnE,OAAO,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,GAAG;AACxB,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;AAC9B,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AACxB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,GAAG;AAC1D,EAAE,IAAI,KAAK,GAAG,EAAE;AAChB,MAAM,MAAM;AACZ,MAAM,IAAI,CAAC;AACX;AACA,EAAE,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AAC5C;AACA,EAAE,KAAK,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG;AACxC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1E,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,qBAAqB,EAAE;AACpC,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,GAAG;AACH;AACA,EAAE,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,CAAC,KAAK,EAAE;AAC7D,EAAE,IAAI,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK;AAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACnC;AACA,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC3B,EAAE,IAAI,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxC;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACtE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3B,GAAG;AACH;AACA,EAAE,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE;AACrE,EAAE,IAAI,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK;AAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACpC;AACA,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC3B,EAAE,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAC7B,EAAE,OAAO,SAAS,CAAC,MAAM,CAAC;AAC1B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACvE,EAAE,IAAI,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAC5C;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC;AACvC;AACA,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AACnC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM;AAC5B,MAAM,IAAI;AACV,MAAM,CAAC,CAAC;AACR;AACA,EAAE,IAAI,SAAS,CAAC,EAAE,EAAE;AACpB,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAClF;AACA,IAAI,QAAQ,GAAG;AACf,MAAM,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;AAChE,MAAM,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;AACpE,MAAM,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;AACxE,MAAM,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;AAC5E,MAAM,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;AAChF,MAAM,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;AACpF,KAAK;AACL;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACxD,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACjC,KAAK;AACL;AACA,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG,MAAM;AACT,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM;AACjC,QAAQ,CAAC,CAAC;AACV;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACjC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC1F;AACA,MAAM,QAAQ,GAAG;AACjB,QAAQ,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;AAClE,QAAQ,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;AACtE,QAAQ,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;AAC1E,QAAQ,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;AAC9E,QAAQ;AACR,UAAU,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACzE,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACvC,WAAW;AACX;AACA,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5D,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE;AAC5D,EAAE,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE;AAChE,EAAE,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,SAAS,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC1F,EAAE,IAAI,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAC5C;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC;AACtC,EAAE,IAAI,CAAC,EAAE,EAAE;AACX,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC1B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACpC;AACA,EAAE,IAAI,SAAS,CAAC,EAAE,EAAE;AACpB,IAAI;AACJ,MAAM,SAAS,CAAC,EAAE,KAAK,EAAE;AACzB,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC;AAC/B,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,KAAK,OAAO,CAAC;AACjD,MAAM;AACN,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC5B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7E,MAAM;AACN,QAAQ,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;AAC9B,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,SAAS,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;AACrD,QAAQ;AACR,QAAQ,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACpF,SAAS,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC/B,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,SAAS,CAAC,kBAAkB,GAAG,SAAS,kBAAkB,CAAC,KAAK,EAAE;AAC/E,EAAE,IAAI,GAAG,CAAC;AACV;AACA,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAC1C,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACjD,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;AAChC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC;AACnE,YAAY,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;AAC/D;AACA;AACA;AACA;AACA,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC;AAC/B;AACA;AACA;AACA;AACA,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC;AACA;AACA;AACA;AACmC;AACnC,EAAE,iBAAiB,YAAY,CAAC;AAChC;;;AC7UA,UAAc,GAAG,KAAK,IAAI;AAC1B,CAAC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AAClC,EAAE,OAAO,KAAK,CAAC;AACf,EAAE;AACF;AACA,CAAC,OAAO,KAAK,YAAY,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,eAAe,CAAC;AAC3F,CAAC;;MCiCY,YAAa,SAAQ0F,aAAmC;IAKnE,YACY,MAIT;QAGD,KAAK,EAAE,CAAA;QAPG,WAAM,GAAN,MAAM,CAIf;QAKD,IAEE,EAAE,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC;YAEhC,EAAE,KAAK,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EACxE;YACA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;SACnC;QAGD,QAAQ,MAAM,CAAC,IAAI;YACjB,KAAK,SAAS;gBACZ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK;sBAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC;sBACpD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAA;gBAC1B,MAAK;YACP,KAAK,aAAa;gBAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBAC1D,MAAK;YACP;gBACE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;SACxB;QAED,IAAI,CAAC,UAAU,GAAG,IAAID,IAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG;YACvB,IAAI,OAAO,GAAG,EAAE,CAAA;YAEhB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,KAAK,SAAS;oBACZ,OAAO,GAAG;wBACR,MAAM,EAAE,cAAc;wBACtB,IAAI,EAAE;4BACJ,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG;4BAC9B,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;yBACtC;qBACF,CAAA;oBACD,MAAK;gBACP,KAAK,aAAa;oBAEhB,OAAO,mBAAK,MAAM,EAAE,MAAM,IAAK,MAAM,CAAC,WAAW,CAAE,CAAA;oBACnD,MAAK;aACR;YAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;YAG7C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;SACxB,CAAA;QAGD,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAExD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAO,KAAU;YAC3C,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YAErB,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;gBAChB,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;aAC/B;iBAAM,IAAI,IAAI,YAAY,WAAW,EAAE;gBACtC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;aAC1D;YAED,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAC3B,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;YAE9D,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAY;gBAE5B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;gBAG7B,IAAI,GAAG,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,IAAI,eAAe,EAAE;oBACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;oBACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;iBACjC;qBAAM,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,eAAe,EAAE;oBACnE,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,YAAY,EAAE;wBACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;wBACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;qBACjC;iBACF;gBAGD,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,eAAe,EAAE;oBAC5D,IAAI,CAAC,IAAI,CAAC,eAAe,EAAEzC,OAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;iBAC7D;gBAGD,MAAM,CAAC,GAAsC;oBAC3C,OAAO,EAAE,SAAS;oBAClB,YAAY,EAAE,cAAc;oBAC5B,KAAK,EAAE,OAAO;oBACd,CAAC,EAAE,OAAO;oBACV,CAAC,EAAE,OAAO;oBACV,CAAC,EAAE,KAAK;iBACT,CAAA;gBAED,IAAI,GAAG,IAAI,OAAO,EAAE;oBAClB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;iBAC/C;aACF,CAAC,CAAA;SACH,CAAA,CAAA;QAGD,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,GAAyB;YAClD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;SACxB,CAAA;KACF;IAQD,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAOD,SAAS,CAAC,OAAgB,EAAE,UAAoB,EAAE;QAChD,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,KAAK,SAAS;gBAEZ,IAAI,CAAC,IAAI,CACP,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CACnE,CAAA;gBACD,MAAK;YACP,KAAK,aAAa;gBAEhB,IAAI,OAAO,GAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;gBAC1C,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;gBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;gBAClC,MAAK;SACR;QAED,OAAO,IAAI,CAAA;KACZ;IAOD,WAAW,CAAC,OAAgB,EAAE,UAAoB,EAAE;QAClD,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,KAAK,SAAS;gBAEZ,IAAI,CAAC,IAAI,CACP,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CACrE,CAAA;gBACD,MAAK;YACP,KAAK,aAAa;gBAEhB,IAAI,OAAO,GAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;gBAC5C,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;gBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;gBAClC,MAAK;SACR;QAED,OAAO,IAAI,CAAA;KACZ;IAEO,IAAI,CAAC,OAAY;QAEvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;SACrC;QAGD,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;YAC9B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;SAClC;QAGD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAG7B,OAAO,IAAI,CAAA;KACZ;;;ACtOH,YAAe;IACb,YAAY,EAAE,YAAY;IAC1B,YAAY,EAAE,YAAY;CAC3B;;;;"} \ No newline at end of file diff --git a/dist/alpaca.bundle.min.js b/dist/alpaca.bundle.min.js index 5e13edd..c7a7031 100644 --- a/dist/alpaca.bundle.min.js +++ b/dist/alpaca.bundle.min.js @@ -1 +1 @@ -import require$$0$3 from"util";import Stream from"stream";import http from"http";import Url from"url";import https from"https";import zlib from"zlib";import EventEmitter from"events";import net from"net";import tls from"tls";import require$$0$4 from"crypto";import fs from"fs";import path from"path";import os from"os";function __awaiter(e,a,p,t){return new(p||(p=Promise))((function(d,i){function r(e){try{s(t.next(e))}catch(e){i(e)}}function n(e){try{s(t.throw(e))}catch(e){i(e)}}function s(e){var a;e.done?d(e.value):(a=e.value,a instanceof p?a:new p((function(e){e(a)}))).then(r,n)}s((t=t.apply(e,a||[])).next())}))}var load$1=function(e,a,p={}){var t,d,i;for(t in a)i=a[t],p[t]=null!=(d=e[t])?d:i;return p},overwrite=function(e,a,p={}){var t,d;for(t in e)d=e[t],void 0!==a[t]&&(p[t]=d);return p},parser$8={load:load$1,overwrite:overwrite},DLList$2;DLList$2=class{constructor(e,a){this.incr=e,this.decr=a,this._first=null,this._last=null,this.length=0}push(e){var a;this.length++,"function"==typeof this.incr&&this.incr(),a={value:e,prev:this._last,next:null},null!=this._last?(this._last.next=a,this._last=a):this._first=this._last=a}shift(){var e;if(null!=this._first)return this.length--,"function"==typeof this.decr&&this.decr(),e=this._first.value,null!=(this._first=this._first.next)?this._first.prev=null:this._last=null,e}first(){if(null!=this._first)return this._first.value}getArray(){var e,a,p;for(e=this._first,p=[];null!=e;)p.push((a=e,e=e.next,a.value));return p}forEachShift(e){var a;for(a=this.shift();null!=a;)e(a),a=this.shift()}debug(){var e,a,p,t,d;for(e=this._first,d=[];null!=e;)d.push((a=e,e=e.next,{value:a.value,prev:null!=(p=a.prev)?p.value:void 0,next:null!=(t=a.next)?t.value:void 0}));return d}};var DLList_1=DLList$2,Events$6;function asyncGeneratorStep$8(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator$8(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep$8(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep$8(i,t,d,r,n,"throw",e)}r(void 0)}))}}Events$6=class{constructor(e){if(this.instance=e,this._events={},null!=this.instance.on||null!=this.instance.once||null!=this.instance.removeAllListeners)throw new Error("An Emitter already exists for this object");this.instance.on=(e,a)=>this._addListener(e,"many",a),this.instance.once=(e,a)=>this._addListener(e,"once",a),this.instance.removeAllListeners=(e=null)=>null!=e?delete this._events[e]:this._events={}}_addListener(e,a,p){var t;return null==(t=this._events)[e]&&(t[e]=[]),this._events[e].push({cb:p,status:a}),this.instance}listenerCount(e){return null!=this._events[e]?this._events[e].length:0}trigger(e,...a){var p=this;return _asyncToGenerator$8((function*(){var t,d;try{if("debug"!==e&&p.trigger("debug",`Event triggered: ${e}`,a),null==p._events[e])return;return p._events[e]=p._events[e].filter((function(e){return"none"!==e.status})),d=p._events[e].map(function(){var e=_asyncToGenerator$8((function*(e){var t,d;if("none"!==e.status){"once"===e.status&&(e.status="none");try{return"function"==typeof(null!=(d="function"==typeof e.cb?e.cb(...a):void 0)?d.then:void 0)?yield d:d}catch(e){return t=e,p.trigger("error",t),null}}}));return function(a){return e.apply(this,arguments)}}()),(yield Promise.all(d)).find((function(e){return null!=e}))}catch(e){return t=e,p.trigger("error",t),null}}))()}};var Events_1=Events$6,DLList$1,Events$5,Queues$1;DLList$1=DLList_1,Events$5=Events_1,Queues$1=class{constructor(e){this.Events=new Events$5(this),this._length=0,this._lists=function(){var a,p,t;for(t=[],a=1,p=e;1<=p?a<=p:a>=p;1<=p?++a:--a)t.push(new DLList$1((()=>this.incr()),(()=>this.decr())));return t}.call(this)}incr(){if(0==this._length++)return this.Events.trigger("leftzero")}decr(){if(0==--this._length)return this.Events.trigger("zero")}push(e){return this._lists[e.options.priority].push(e)}queued(e){return null!=e?this._lists[e].length:this._length}shiftAll(e){return this._lists.forEach((function(a){return a.forEachShift(e)}))}getFirst(e=this._lists){var a,p,t;for(a=0,p=e.length;a0)return t;return[]}shiftLastFrom(e){return this.getFirst(this._lists.slice(e).reverse()).shift()}};var Queues_1=Queues$1,BottleneckError$4;BottleneckError$4=class extends Error{};var BottleneckError_1=BottleneckError$4,BottleneckError$3,DEFAULT_PRIORITY$1,Job$1,NUM_PRIORITIES$1,parser$7;function asyncGeneratorStep$7(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator$7(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep$7(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep$7(i,t,d,r,n,"throw",e)}r(void 0)}))}}NUM_PRIORITIES$1=10,DEFAULT_PRIORITY$1=5,parser$7=parser$8,BottleneckError$3=BottleneckError_1,Job$1=class{constructor(e,a,p,t,d,i,r,n){this.task=e,this.args=a,this.rejectOnDrop=d,this.Events=i,this._states=r,this.Promise=n,this.options=parser$7.load(p,t),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===t.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise(((e,a)=>{this._resolve=e,this._reject=a})),this.retryCount=0}_sanitizePriority(e){var a;return(a=~~e!==e?DEFAULT_PRIORITY$1:e)<0?0:a>NUM_PRIORITIES$1-1?NUM_PRIORITIES$1-1:a}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:e,message:a="This job has been dropped by Bottleneck"}={}){return!!this._states.remove(this.options.id)&&(this.rejectOnDrop&&this._reject(null!=e?e:new BottleneckError$3(a)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0)}_assertStatus(e){var a;if((a=this._states.jobStatus(this.options.id))!==e&&("DONE"!==e||null!==a))throw new BottleneckError$3(`Invalid job status ${a}, expected ${e}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(e,a){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:e,blocked:a})}doRun(){return 0===this.retryCount?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}doExecute(e,a,p,t){var d=this;return _asyncToGenerator$7((function*(){var i,r,n;0===d.retryCount?(d._assertStatus("RUNNING"),d._states.next(d.options.id)):d._assertStatus("EXECUTING"),r={args:d.args,options:d.options,retryCount:d.retryCount},d.Events.trigger("executing",r);try{if(n=yield null!=e?e.schedule(d.options,d.task,...d.args):d.task(...d.args),a())return d.doDone(r),yield t(d.options,r),d._assertStatus("DONE"),d._resolve(n)}catch(e){return i=e,d._onFailure(i,r,a,p,t)}}))()}doExpire(e,a,p){var t,d;return this._states.jobStatus("RUNNING"===this.options.id)&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),d={args:this.args,options:this.options,retryCount:this.retryCount},t=new BottleneckError$3(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(t,d,e,a,p)}_onFailure(e,a,p,t,d){var i=this;return _asyncToGenerator$7((function*(){var r,n;if(p())return null!=(r=yield i.Events.trigger("failed",e,a))?(n=~~r,i.Events.trigger("retry",`Retrying ${i.options.id} after ${n} ms`,a),i.retryCount++,t(n)):(i.doDone(a),yield d(i.options,a),i._assertStatus("DONE"),i._reject(e))}))()}doDone(e){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",e)}};var Job_1=Job$1,BottleneckError$2,LocalDatastore$1,parser$6;function asyncGeneratorStep$6(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator$6(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep$6(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep$6(i,t,d,r,n,"throw",e)}r(void 0)}))}}parser$6=parser$8,BottleneckError$2=BottleneckError_1,LocalDatastore$1=class{constructor(e,a,p){this.instance=e,this.storeOptions=a,this.clientId=this.instance._randomIndex(),parser$6.load(p,p,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var e;return null==this.heartbeat&&(null!=this.storeOptions.reservoirRefreshInterval&&null!=this.storeOptions.reservoirRefreshAmount||null!=this.storeOptions.reservoirIncreaseInterval&&null!=this.storeOptions.reservoirIncreaseAmount)?"function"==typeof(e=this.heartbeat=setInterval((()=>{var e,a,p,t,d;if(t=Date.now(),null!=this.storeOptions.reservoirRefreshInterval&&t>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=t,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),null!=this.storeOptions.reservoirIncreaseInterval&&t>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval){var i=this.storeOptions;if(e=i.reservoirIncreaseAmount,p=i.reservoirIncreaseMaximum,d=i.reservoir,this._lastReservoirIncrease=t,(a=null!=p?Math.min(e,p-d):e)>0)return this.storeOptions.reservoir+=a,this.instance._drainAll(this.computeCapacity())}}),this.heartbeatInterval)).unref?e.unref():void 0:clearInterval(this.heartbeat)}__publish__(e){var a=this;return _asyncToGenerator$6((function*(){return yield a.yieldLoop(),a.instance.Events.trigger("message",e.toString())}))()}__disconnect__(e){var a=this;return _asyncToGenerator$6((function*(){return yield a.yieldLoop(),clearInterval(a.heartbeat),a.Promise.resolve()}))()}yieldLoop(e=0){return new this.Promise((function(a,p){return setTimeout(a,e)}))}computePenalty(){var e;return null!=(e=this.storeOptions.penalty)?e:15*this.storeOptions.minTime||5e3}__updateSettings__(e){var a=this;return _asyncToGenerator$6((function*(){return yield a.yieldLoop(),parser$6.overwrite(e,e,a.storeOptions),a._startHeartbeat(),a.instance._drainAll(a.computeCapacity()),!0}))()}__running__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e._running}))()}__queued__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e.instance.queued()}))()}__done__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e._done}))()}__groupCheck__(e){var a=this;return _asyncToGenerator$6((function*(){return yield a.yieldLoop(),a._nextRequest+a.timeout=e}check(e,a){return this.conditionsCheck(e)&&this._nextRequest-a<=0}__check__(e){var a=this;return _asyncToGenerator$6((function*(){var p;return yield a.yieldLoop(),p=Date.now(),a.check(e,p)}))()}__register__(e,a,p){var t=this;return _asyncToGenerator$6((function*(){var e,p;return yield t.yieldLoop(),e=Date.now(),t.conditionsCheck(a)?(t._running+=a,null!=t.storeOptions.reservoir&&(t.storeOptions.reservoir-=a),p=Math.max(t._nextRequest-e,0),t._nextRequest=e+p+t.storeOptions.minTime,{success:!0,wait:p,reservoir:t.storeOptions.reservoir}):{success:!1}}))()}strategyIsBlock(){return 3===this.storeOptions.strategy}__submit__(e,a){var p=this;return _asyncToGenerator$6((function*(){var t,d,i;if(yield p.yieldLoop(),null!=p.storeOptions.maxConcurrent&&a>p.storeOptions.maxConcurrent)throw new BottleneckError$2(`Impossible to add a job having a weight of ${a} to a limiter having a maxConcurrent setting of ${p.storeOptions.maxConcurrent}`);return d=Date.now(),i=null!=p.storeOptions.highWater&&e===p.storeOptions.highWater&&!p.check(a,d),(t=p.strategyIsBlock()&&(i||p.isBlocked(d)))&&(p._unblockTime=d+p.computePenalty(),p._nextRequest=p._unblockTime+p.storeOptions.minTime,p.instance._dropAllQueued()),{reachedHWM:i,blocked:t,strategy:p.storeOptions.strategy}}))()}__free__(e,a){var p=this;return _asyncToGenerator$6((function*(){return yield p.yieldLoop(),p._running-=a,p._done+=a,p.instance._drainAll(p.computeCapacity()),{running:p._running}}))()}};var LocalDatastore_1=LocalDatastore$1,commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getAugmentedNamespace(e){if(e.__esModule)return e;var a=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(p){var t=Object.getOwnPropertyDescriptor(e,p);Object.defineProperty(a,p,t.get?t:{enumerable:!0,get:function(){return e[p]}})})),a}function createCommonjsModule(e){var a={exports:{}};return e(a,a.exports),a.exports}function commonjsRequire(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.')}var require$$0$2={"blacklist_client.lua":"local blacklist = ARGV[num_static_argv + 1]\n\nif redis.call('zscore', client_last_seen_key, blacklist) then\n redis.call('zadd', client_last_seen_key, 0, blacklist)\nend\n\n\nreturn {}\n","check.lua":"local weight = tonumber(ARGV[num_static_argv + 1])\n\nlocal capacity = process_tick(now, false)['capacity']\nlocal nextRequest = tonumber(redis.call('hget', settings_key, 'nextRequest'))\n\nreturn conditions_check(capacity, weight) and nextRequest - now <= 0\n","conditions_check.lua":"local conditions_check = function (capacity, weight)\n return capacity == nil or weight <= capacity\nend\n","current_reservoir.lua":"return process_tick(now, false)['reservoir']\n","done.lua":"process_tick(now, false)\n\nreturn tonumber(redis.call('hget', settings_key, 'done'))\n","free.lua":"local index = ARGV[num_static_argv + 1]\n\nredis.call('zadd', job_expirations_key, 0, index)\n\nreturn process_tick(now, false)['running']\n","get_time.lua":"redis.replicate_commands()\n\nlocal get_time = function ()\n local time = redis.call('time')\n\n return tonumber(time[1]..string.sub(time[2], 1, 3))\nend\n","group_check.lua":"return not (redis.call('exists', settings_key) == 1)\n","heartbeat.lua":"process_tick(now, true)\n","increment_reservoir.lua":"local incr = tonumber(ARGV[num_static_argv + 1])\n\nredis.call('hincrby', settings_key, 'reservoir', incr)\n\nlocal reservoir = process_tick(now, true)['reservoir']\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn reservoir\n","init.lua":"local clear = tonumber(ARGV[num_static_argv + 1])\nlocal limiter_version = ARGV[num_static_argv + 2]\nlocal num_local_argv = num_static_argv + 2\n\nif clear == 1 then\n redis.call('del', unpack(KEYS))\nend\n\nif redis.call('exists', settings_key) == 0 then\n -- Create\n local args = {'hmset', settings_key}\n\n for i = num_local_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\n end\n\n redis.call(unpack(args))\n redis.call('hmset', settings_key,\n 'nextRequest', now,\n 'lastReservoirRefresh', now,\n 'lastReservoirIncrease', now,\n 'running', 0,\n 'done', 0,\n 'unblockTime', 0,\n 'capacityPriorityCounter', 0\n )\n\nelse\n -- Apply migrations\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'version'\n )\n local id = settings[1]\n local current_version = settings[2]\n\n if current_version ~= limiter_version then\n local version_digits = {}\n for k, v in string.gmatch(current_version, \"([^.]+)\") do\n table.insert(version_digits, tonumber(k))\n end\n\n -- 2.10.0\n if version_digits[2] < 10 then\n redis.call('hsetnx', settings_key, 'reservoirRefreshInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirRefreshAmount', '')\n redis.call('hsetnx', settings_key, 'lastReservoirRefresh', '')\n redis.call('hsetnx', settings_key, 'done', 0)\n redis.call('hset', settings_key, 'version', '2.10.0')\n end\n\n -- 2.11.1\n if version_digits[2] < 11 or (version_digits[2] == 11 and version_digits[3] < 1) then\n if redis.call('hstrlen', settings_key, 'lastReservoirRefresh') == 0 then\n redis.call('hmset', settings_key,\n 'lastReservoirRefresh', now,\n 'version', '2.11.1'\n )\n end\n end\n\n -- 2.14.0\n if version_digits[2] < 14 then\n local old_running_key = 'b_'..id..'_running'\n local old_executing_key = 'b_'..id..'_executing'\n\n if redis.call('exists', old_running_key) == 1 then\n redis.call('rename', old_running_key, job_weights_key)\n end\n if redis.call('exists', old_executing_key) == 1 then\n redis.call('rename', old_executing_key, job_expirations_key)\n end\n redis.call('hset', settings_key, 'version', '2.14.0')\n end\n\n -- 2.15.2\n if version_digits[2] < 15 or (version_digits[2] == 15 and version_digits[3] < 2) then\n redis.call('hsetnx', settings_key, 'capacityPriorityCounter', 0)\n redis.call('hset', settings_key, 'version', '2.15.2')\n end\n\n -- 2.17.0\n if version_digits[2] < 17 then\n redis.call('hsetnx', settings_key, 'clientTimeout', 10000)\n redis.call('hset', settings_key, 'version', '2.17.0')\n end\n\n -- 2.18.0\n if version_digits[2] < 18 then\n redis.call('hsetnx', settings_key, 'reservoirIncreaseInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseAmount', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseMaximum', '')\n redis.call('hsetnx', settings_key, 'lastReservoirIncrease', now)\n redis.call('hset', settings_key, 'version', '2.18.0')\n end\n\n end\n\n process_tick(now, false)\nend\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n","process_tick.lua":"local process_tick = function (now, always_publish)\n\n local compute_capacity = function (maxConcurrent, running, reservoir)\n if maxConcurrent ~= nil and reservoir ~= nil then\n return math.min((maxConcurrent - running), reservoir)\n elseif maxConcurrent ~= nil then\n return maxConcurrent - running\n elseif reservoir ~= nil then\n return reservoir\n else\n return nil\n end\n end\n\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'running',\n 'reservoir',\n 'reservoirRefreshInterval',\n 'reservoirRefreshAmount',\n 'lastReservoirRefresh',\n 'reservoirIncreaseInterval',\n 'reservoirIncreaseAmount',\n 'reservoirIncreaseMaximum',\n 'lastReservoirIncrease',\n 'capacityPriorityCounter',\n 'clientTimeout'\n )\n local id = settings[1]\n local maxConcurrent = tonumber(settings[2])\n local running = tonumber(settings[3])\n local reservoir = tonumber(settings[4])\n local reservoirRefreshInterval = tonumber(settings[5])\n local reservoirRefreshAmount = tonumber(settings[6])\n local lastReservoirRefresh = tonumber(settings[7])\n local reservoirIncreaseInterval = tonumber(settings[8])\n local reservoirIncreaseAmount = tonumber(settings[9])\n local reservoirIncreaseMaximum = tonumber(settings[10])\n local lastReservoirIncrease = tonumber(settings[11])\n local capacityPriorityCounter = tonumber(settings[12])\n local clientTimeout = tonumber(settings[13])\n\n local initial_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n --\n -- Process 'running' changes\n --\n local expired = redis.call('zrangebyscore', job_expirations_key, '-inf', '('..now)\n\n if #expired > 0 then\n redis.call('zremrangebyscore', job_expirations_key, '-inf', '('..now)\n\n local flush_batch = function (batch, acc)\n local weights = redis.call('hmget', job_weights_key, unpack(batch))\n redis.call('hdel', job_weights_key, unpack(batch))\n local clients = redis.call('hmget', job_clients_key, unpack(batch))\n redis.call('hdel', job_clients_key, unpack(batch))\n\n -- Calculate sum of removed weights\n for i = 1, #weights do\n acc['total'] = acc['total'] + (tonumber(weights[i]) or 0)\n end\n\n -- Calculate sum of removed weights by client\n local client_weights = {}\n for i = 1, #clients do\n local removed = tonumber(weights[i]) or 0\n if removed > 0 then\n acc['client_weights'][clients[i]] = (acc['client_weights'][clients[i]] or 0) + removed\n end\n end\n end\n\n local acc = {\n ['total'] = 0,\n ['client_weights'] = {}\n }\n local batch_size = 1000\n\n -- Compute changes to Zsets and apply changes to Hashes\n for i = 1, #expired, batch_size do\n local batch = {}\n for j = i, math.min(i + batch_size - 1, #expired) do\n table.insert(batch, expired[j])\n end\n\n flush_batch(batch, acc)\n end\n\n -- Apply changes to Zsets\n if acc['total'] > 0 then\n redis.call('hincrby', settings_key, 'done', acc['total'])\n running = tonumber(redis.call('hincrby', settings_key, 'running', -acc['total']))\n end\n\n for client, weight in pairs(acc['client_weights']) do\n redis.call('zincrby', client_running_key, -weight, client)\n end\n end\n\n --\n -- Process 'reservoir' changes\n --\n local reservoirRefreshActive = reservoirRefreshInterval ~= nil and reservoirRefreshAmount ~= nil\n if reservoirRefreshActive and now >= lastReservoirRefresh + reservoirRefreshInterval then\n reservoir = reservoirRefreshAmount\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirRefresh', now\n )\n end\n\n local reservoirIncreaseActive = reservoirIncreaseInterval ~= nil and reservoirIncreaseAmount ~= nil\n if reservoirIncreaseActive and now >= lastReservoirIncrease + reservoirIncreaseInterval then\n local num_intervals = math.floor((now - lastReservoirIncrease) / reservoirIncreaseInterval)\n local incr = reservoirIncreaseAmount * num_intervals\n if reservoirIncreaseMaximum ~= nil then\n incr = math.min(incr, reservoirIncreaseMaximum - (reservoir or 0))\n end\n if incr > 0 then\n reservoir = (reservoir or 0) + incr\n end\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirIncrease', lastReservoirIncrease + (num_intervals * reservoirIncreaseInterval)\n )\n end\n\n --\n -- Clear unresponsive clients\n --\n local unresponsive = redis.call('zrangebyscore', client_last_seen_key, '-inf', (now - clientTimeout))\n local unresponsive_lookup = {}\n local terminated_clients = {}\n for i = 1, #unresponsive do\n unresponsive_lookup[unresponsive[i]] = true\n if tonumber(redis.call('zscore', client_running_key, unresponsive[i])) == 0 then\n table.insert(terminated_clients, unresponsive[i])\n end\n end\n if #terminated_clients > 0 then\n redis.call('zrem', client_running_key, unpack(terminated_clients))\n redis.call('hdel', client_num_queued_key, unpack(terminated_clients))\n redis.call('zrem', client_last_registered_key, unpack(terminated_clients))\n redis.call('zrem', client_last_seen_key, unpack(terminated_clients))\n end\n\n --\n -- Broadcast capacity changes\n --\n local final_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n if always_publish or (initial_capacity ~= nil and final_capacity == nil) then\n -- always_publish or was not unlimited, now unlimited\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n\n elseif initial_capacity ~= nil and final_capacity ~= nil and final_capacity > initial_capacity then\n -- capacity was increased\n -- send the capacity message to the limiter having the lowest number of running jobs\n -- the tiebreaker is the limiter having not registered a job in the longest time\n\n local lowest_concurrency_value = nil\n local lowest_concurrency_clients = {}\n local lowest_concurrency_last_registered = {}\n local client_concurrencies = redis.call('zrange', client_running_key, 0, -1, 'withscores')\n\n for i = 1, #client_concurrencies, 2 do\n local client = client_concurrencies[i]\n local concurrency = tonumber(client_concurrencies[i+1])\n\n if (\n lowest_concurrency_value == nil or lowest_concurrency_value == concurrency\n ) and (\n not unresponsive_lookup[client]\n ) and (\n tonumber(redis.call('hget', client_num_queued_key, client)) > 0\n ) then\n lowest_concurrency_value = concurrency\n table.insert(lowest_concurrency_clients, client)\n local last_registered = tonumber(redis.call('zscore', client_last_registered_key, client))\n table.insert(lowest_concurrency_last_registered, last_registered)\n end\n end\n\n if #lowest_concurrency_clients > 0 then\n local position = 1\n local earliest = lowest_concurrency_last_registered[1]\n\n for i,v in ipairs(lowest_concurrency_last_registered) do\n if v < earliest then\n position = i\n earliest = v\n end\n end\n\n local next_client = lowest_concurrency_clients[position]\n redis.call('publish', 'b_'..id,\n 'capacity-priority:'..(final_capacity or '')..\n ':'..next_client..\n ':'..capacityPriorityCounter\n )\n redis.call('hincrby', settings_key, 'capacityPriorityCounter', '1')\n else\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n end\n end\n\n return {\n ['capacity'] = final_capacity,\n ['running'] = running,\n ['reservoir'] = reservoir\n }\nend\n","queued.lua":"local clientTimeout = tonumber(redis.call('hget', settings_key, 'clientTimeout'))\nlocal valid_clients = redis.call('zrangebyscore', client_last_seen_key, (now - clientTimeout), 'inf')\nlocal client_queued = redis.call('hmget', client_num_queued_key, unpack(valid_clients))\n\nlocal sum = 0\nfor i = 1, #client_queued do\n sum = sum + tonumber(client_queued[i])\nend\n\nreturn sum\n","refresh_expiration.lua":"local refresh_expiration = function (now, nextRequest, groupTimeout)\n\n if groupTimeout ~= nil then\n local ttl = (nextRequest + groupTimeout) - now\n\n for i = 1, #KEYS do\n redis.call('pexpire', KEYS[i], ttl)\n end\n end\n\nend\n","refs.lua":"local settings_key = KEYS[1]\nlocal job_weights_key = KEYS[2]\nlocal job_expirations_key = KEYS[3]\nlocal job_clients_key = KEYS[4]\nlocal client_running_key = KEYS[5]\nlocal client_num_queued_key = KEYS[6]\nlocal client_last_registered_key = KEYS[7]\nlocal client_last_seen_key = KEYS[8]\n\nlocal now = tonumber(ARGV[1])\nlocal client = ARGV[2]\n\nlocal num_static_argv = 2\n","register.lua":"local index = ARGV[num_static_argv + 1]\nlocal weight = tonumber(ARGV[num_static_argv + 2])\nlocal expiration = tonumber(ARGV[num_static_argv + 3])\n\nlocal state = process_tick(now, false)\nlocal capacity = state['capacity']\nlocal reservoir = state['reservoir']\n\nlocal settings = redis.call('hmget', settings_key,\n 'nextRequest',\n 'minTime',\n 'groupTimeout'\n)\nlocal nextRequest = tonumber(settings[1])\nlocal minTime = tonumber(settings[2])\nlocal groupTimeout = tonumber(settings[3])\n\nif conditions_check(capacity, weight) then\n\n redis.call('hincrby', settings_key, 'running', weight)\n redis.call('hset', job_weights_key, index, weight)\n if expiration ~= nil then\n redis.call('zadd', job_expirations_key, now + expiration, index)\n end\n redis.call('hset', job_clients_key, index, client)\n redis.call('zincrby', client_running_key, weight, client)\n redis.call('hincrby', client_num_queued_key, client, -1)\n redis.call('zadd', client_last_registered_key, now, client)\n\n local wait = math.max(nextRequest - now, 0)\n local newNextRequest = now + wait + minTime\n\n if reservoir == nil then\n redis.call('hset', settings_key,\n 'nextRequest', newNextRequest\n )\n else\n reservoir = reservoir - weight\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'nextRequest', newNextRequest\n )\n end\n\n refresh_expiration(now, newNextRequest, groupTimeout)\n\n return {true, wait, reservoir}\n\nelse\n return {false}\nend\n","register_client.lua":"local queued = tonumber(ARGV[num_static_argv + 1])\n\n-- Could have been re-registered concurrently\nif not redis.call('zscore', client_last_seen_key, client) then\n redis.call('zadd', client_running_key, 0, client)\n redis.call('hset', client_num_queued_key, client, queued)\n redis.call('zadd', client_last_registered_key, 0, client)\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n\nreturn {}\n","running.lua":"return process_tick(now, false)['running']\n","submit.lua":"local queueLength = tonumber(ARGV[num_static_argv + 1])\nlocal weight = tonumber(ARGV[num_static_argv + 2])\n\nlocal capacity = process_tick(now, false)['capacity']\n\nlocal settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'highWater',\n 'nextRequest',\n 'strategy',\n 'unblockTime',\n 'penalty',\n 'minTime',\n 'groupTimeout'\n)\nlocal id = settings[1]\nlocal maxConcurrent = tonumber(settings[2])\nlocal highWater = tonumber(settings[3])\nlocal nextRequest = tonumber(settings[4])\nlocal strategy = tonumber(settings[5])\nlocal unblockTime = tonumber(settings[6])\nlocal penalty = tonumber(settings[7])\nlocal minTime = tonumber(settings[8])\nlocal groupTimeout = tonumber(settings[9])\n\nif maxConcurrent ~= nil and weight > maxConcurrent then\n return redis.error_reply('OVERWEIGHT:'..weight..':'..maxConcurrent)\nend\n\nlocal reachedHWM = (highWater ~= nil and queueLength == highWater\n and not (\n conditions_check(capacity, weight)\n and nextRequest - now <= 0\n )\n)\n\nlocal blocked = strategy == 3 and (reachedHWM or unblockTime >= now)\n\nif blocked then\n local computedPenalty = penalty\n if computedPenalty == nil then\n if minTime == 0 then\n computedPenalty = 5000\n else\n computedPenalty = 15 * minTime\n end\n end\n\n local newNextRequest = now + computedPenalty + minTime\n\n redis.call('hmset', settings_key,\n 'unblockTime', now + computedPenalty,\n 'nextRequest', newNextRequest\n )\n\n local clients_queued_reset = redis.call('hkeys', client_num_queued_key)\n local queued_reset = {}\n for i = 1, #clients_queued_reset do\n table.insert(queued_reset, clients_queued_reset[i])\n table.insert(queued_reset, 0)\n end\n redis.call('hmset', client_num_queued_key, unpack(queued_reset))\n\n redis.call('publish', 'b_'..id, 'blocked:')\n\n refresh_expiration(now, newNextRequest, groupTimeout)\nend\n\nif not blocked and not reachedHWM then\n redis.call('hincrby', client_num_queued_key, client, 1)\nend\n\nreturn {reachedHWM, blocked, strategy}\n","update_settings.lua":"local args = {'hmset', settings_key}\n\nfor i = num_static_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\nend\n\nredis.call(unpack(args))\n\nprocess_tick(now, true)\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n","validate_client.lua":"if not redis.call('zscore', client_last_seen_key, client) then\n return redis.error_reply('UNKNOWN_CLIENT')\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n","validate_keys.lua":"if not (redis.call('exists', settings_key) == 1) then\n return redis.error_reply('SETTINGS_KEY_NOT_FOUND')\nend\n"},Scripts$3=createCommonjsModule((function(e,a){var p,t,d;p={refs:(t=require$$0$2)["refs.lua"],validate_keys:t["validate_keys.lua"],validate_client:t["validate_client.lua"],refresh_expiration:t["refresh_expiration.lua"],process_tick:t["process_tick.lua"],conditions_check:t["conditions_check.lua"],get_time:t["get_time.lua"]},a.allKeys=function(e){return[`b_${e}_settings`,`b_${e}_job_weights`,`b_${e}_job_expirations`,`b_${e}_job_clients`,`b_${e}_client_running`,`b_${e}_client_num_queued`,`b_${e}_client_last_registered`,`b_${e}_client_last_seen`]},d={init:{keys:a.allKeys,headers:["process_tick"],refresh_expiration:!0,code:t["init.lua"]},group_check:{keys:a.allKeys,headers:[],refresh_expiration:!1,code:t["group_check.lua"]},register_client:{keys:a.allKeys,headers:["validate_keys"],refresh_expiration:!1,code:t["register_client.lua"]},blacklist_client:{keys:a.allKeys,headers:["validate_keys","validate_client"],refresh_expiration:!1,code:t["blacklist_client.lua"]},heartbeat:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:t["heartbeat.lua"]},update_settings:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:t["update_settings.lua"]},running:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:t["running.lua"]},queued:{keys:a.allKeys,headers:["validate_keys","validate_client"],refresh_expiration:!1,code:t["queued.lua"]},done:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:t["done.lua"]},check:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!1,code:t["check.lua"]},submit:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!0,code:t["submit.lua"]},register:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!0,code:t["register.lua"]},free:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:t["free.lua"]},current_reservoir:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:t["current_reservoir.lua"]},increment_reservoir:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:t["increment_reservoir.lua"]}},a.names=Object.keys(d),a.keys=function(e,a){return d[e].keys(a)},a.payload=function(e){var a;return a=d[e],Array.prototype.concat(p.refs,a.headers.map((function(e){return p[e]})),a.refresh_expiration?p.refresh_expiration:"",a.code).join("\n")}})),Events$4,RedisConnection$2,Scripts$2,parser$5;function asyncGeneratorStep$5(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator$5(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep$5(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep$5(i,t,d,r,n,"throw",e)}r(void 0)}))}}parser$5=parser$8,Events$4=Events_1,Scripts$2=Scripts$3,RedisConnection$2=function(){class RedisConnection{constructor(options={}){parser$5.load(options,this.defaults,this),null==this.Redis&&(this.Redis=eval("require")("redis")),null==this.Events&&(this.Events=new Events$4(this)),this.terminated=!1,null==this.client&&(this.client=this.Redis.createClient(this.clientOptions)),this.subscriber=this.client.duplicate(),this.limiters={},this.shas={},this.ready=this.Promise.all([this._setup(this.client,!1),this._setup(this.subscriber,!0)]).then((()=>this._loadScripts())).then((()=>({client:this.client,subscriber:this.subscriber})))}_setup(e,a){return e.setMaxListeners(0),new this.Promise(((p,t)=>(e.on("error",(e=>this.Events.trigger("error",e))),a&&e.on("message",((e,a)=>{var p;return null!=(p=this.limiters[e])?p._store.onMessage(e,a):void 0})),e.ready?p():e.once("ready",p))))}_loadScript(e){return new this.Promise(((a,p)=>{var t;return t=Scripts$2.payload(e),this.client.multi([["script","load",t]]).exec(((t,d)=>null!=t?p(t):(this.shas[e]=d[0],a(d[0]))))}))}_loadScripts(){return this.Promise.all(Scripts$2.names.map((e=>this._loadScript(e))))}__runCommand__(e){var a=this;return _asyncToGenerator$5((function*(){return yield a.ready,new a.Promise(((p,t)=>a.client.multi([e]).exec_atomic((function(e,a){return null!=e?t(e):p(a[0])}))))}))()}__addLimiter__(e){return this.Promise.all([e.channel(),e.channel_client()].map((a=>new this.Promise(((p,t)=>{var d;return d=t=>{if(t===a)return this.subscriber.removeListener("subscribe",d),this.limiters[a]=e,p()},this.subscriber.on("subscribe",d),this.subscriber.subscribe(a)})))))}__removeLimiter__(e){var a=this;return this.Promise.all([e.channel(),e.channel_client()].map(function(){var e=_asyncToGenerator$5((function*(e){return a.terminated||(yield new a.Promise(((p,t)=>a.subscriber.unsubscribe(e,(function(a,d){return null!=a?t(a):d===e?p():void 0}))))),delete a.limiters[e]}));return function(a){return e.apply(this,arguments)}}()))}__scriptArgs__(e,a,p,t){var d;return d=Scripts$2.keys(e,a),[this.shas[e],d.length].concat(d,p,t)}__scriptFn__(e){return this.client.evalsha.bind(this.client)}disconnect(e=!0){var a,p,t,d;for(a=0,t=(d=Object.keys(this.limiters)).length;a(this._loadScripts(),{client:this.client,subscriber:this.subscriber})))}_setup(e,a){return e.setMaxListeners(0),new this.Promise(((p,t)=>(e.on("error",(e=>this.Events.trigger("error",e))),a&&e.on("message",((e,a)=>{var p;return null!=(p=this.limiters[e])?p._store.onMessage(e,a):void 0})),"ready"===e.status?p():e.once("ready",p))))}_loadScripts(){return Scripts$1.names.forEach((e=>this.client.defineCommand(e,{lua:Scripts$1.payload(e)})))}__runCommand__(e){var a=this;return _asyncToGenerator$4((function*(){yield a.ready;var p=_slicedToArray$3(yield a.client.pipeline([e]).exec(),1);return _slicedToArray$3(p[0],2)[1]}))()}__addLimiter__(e){return this.Promise.all([e.channel(),e.channel_client()].map((a=>new this.Promise(((p,t)=>this.subscriber.subscribe(a,(()=>(this.limiters[a]=e,p()))))))))}__removeLimiter__(e){var a=this;return[e.channel(),e.channel_client()].forEach(function(){var e=_asyncToGenerator$4((function*(e){return a.terminated||(yield a.subscriber.unsubscribe(e)),delete a.limiters[e]}));return function(a){return e.apply(this,arguments)}}())}__scriptArgs__(e,a,p,t){var d;return[(d=Scripts$1.keys(e,a)).length].concat(d,p,t)}__scriptFn__(e){return this.client[e].bind(this.client)}disconnect(e=!0){var a,p,t,d;for(a=0,t=(d=Object.keys(this.limiters)).length;a(this.clients=e,this.runScript("init",this.prepareInitSettings(this.clearDatastore))))).then((()=>this.connection.__addLimiter__(this.instance))).then((()=>this.runScript("register_client",[this.instance.queued()]))).then((()=>{var e;return"function"==typeof(e=this.heartbeat=setInterval((()=>this.runScript("heartbeat",[]).catch((e=>this.instance.Events.trigger("error",e)))),this.heartbeatInterval)).unref&&e.unref(),this.clients}))}__publish__(e){var a=this;return _asyncToGenerator$3((function*(){return(yield a.ready).client.publish(a.instance.channel(),`message:${e.toString()}`)}))()}onMessage(e,a){var p=this;return _asyncToGenerator$3((function*(){var e,t,d,i,r,n,s,o,l,m;try{s=a.indexOf(":");var u=[a.slice(0,s),a.slice(s+1)];if(d=u[1],"capacity"===(m=u[0]))return yield p.instance._drainAll(d.length>0?~~d:void 0);if("capacity-priority"===m){var c=_slicedToArray$2(d.split(":"),3);return l=c[0],o=c[1],t=c[2],e=l.length>0?~~l:void 0,o===p.clientId?(i=yield p.instance._drainAll(e),n=null!=e?e-(i||0):"",yield p.clients.client.publish(p.instance.channel(),`capacity-priority:${n}::${t}`)):""===o?(clearTimeout(p.capacityPriorityCounters[t]),delete p.capacityPriorityCounters[t],p.instance._drainAll(e)):p.capacityPriorityCounters[t]=setTimeout(_asyncToGenerator$3((function*(){var a;try{return delete p.capacityPriorityCounters[t],yield p.runScript("blacklist_client",[o]),yield p.instance._drainAll(e)}catch(e){return a=e,p.instance.Events.trigger("error",a)}})),1e3)}if("message"===m)return p.instance.Events.trigger("message",d);if("blocked"===m)return yield p.instance._dropAllQueued()}catch(e){return r=e,p.instance.Events.trigger("error",r)}}))()}__disconnect__(e){return clearInterval(this.heartbeat),this.sharedConnection?this.connection.__removeLimiter__(this.instance):this.connection.disconnect(e)}runScript(e,a){var p=this;return _asyncToGenerator$3((function*(){return"init"!==e&&"register_client"!==e&&(yield p.ready),new p.Promise(((t,d)=>{var i,r;return i=[Date.now(),p.clientId].concat(a),p.instance.Events.trigger("debug",`Calling Redis script: ${e}.lua`,i),r=p.connection.__scriptArgs__(e,p.originalId,i,(function(e,a){return null!=e?d(e):t(a)})),p.connection.__scriptFn__(e)(...r)})).catch((t=>"SETTINGS_KEY_NOT_FOUND"===t.message?"heartbeat"===e?p.Promise.resolve():p.runScript("init",p.prepareInitSettings(!1)).then((()=>p.runScript(e,a))):"UNKNOWN_CLIENT"===t.message?p.runScript("register_client",[p.instance.queued()]).then((()=>p.runScript(e,a))):p.Promise.reject(t)))}))()}prepareArray(e){var a,p,t,d;for(t=[],a=0,p=e.length;a(e[this.status[p]]=a,e)),{})}};var States_1=States$1,DLList,Sync$1;function asyncGeneratorStep$2(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator$2(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep$2(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep$2(i,t,d,r,n,"throw",e)}r(void 0)}))}}DLList=DLList_1,Sync$1=class{constructor(e,a){this.schedule=this.schedule.bind(this),this.name=e,this.Promise=a,this._running=0,this._queue=new DLList}isEmpty(){return 0===this._queue.length}_tryToRun(){var e=this;return _asyncToGenerator$2((function*(){var a,p,t,d,i,r,n;if(e._running<1&&e._queue.length>0){e._running++;var s=e._queue.shift();return n=s.task,a=s.args,i=s.resolve,d=s.reject,p=yield _asyncToGenerator$2((function*(){try{return r=yield n(...a),function(){return i(r)}}catch(e){return t=e,function(){return d(t)}}}))(),e._running--,e._tryToRun(),p()}}))()}schedule(e,...a){var p,t,d;return d=t=null,p=new this.Promise((function(e,a){return d=e,t=a})),this._queue.push({task:e,args:a,resolve:d,reject:t}),this._tryToRun(),p}};var Sync_1=Sync$1,version="2.19.5",require$$8={version:version},require$$0$1=Bottleneck_1,Events$2,Group,IORedisConnection,RedisConnection,Scripts,parser$2;function _slicedToArray$1(e,a){return _arrayWithHoles$1(e)||_iterableToArrayLimit$1(e,a)||_nonIterableRest$1()}function _nonIterableRest$1(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArrayLimit$1(e,a){var p=[],t=!0,d=!1,i=void 0;try{for(var r,n=e[Symbol.iterator]();!(t=(r=n.next()).done)&&(p.push(r.value),!a||p.length!==a);t=!0);}catch(e){d=!0,i=e}finally{try{t||null==n.return||n.return()}finally{if(d)throw i}}return p}function _arrayWithHoles$1(e){if(Array.isArray(e))return e}function asyncGeneratorStep$1(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator$1(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep$1(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep$1(i,t,d,r,n,"throw",e)}r(void 0)}))}}parser$2=parser$8,Events$2=Events_1,RedisConnection=RedisConnection_1,IORedisConnection=IORedisConnection_1,Scripts=Scripts$3,Group=function(){class e{constructor(e={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=e,parser$2.load(this.limiterOptions,this.defaults,this),this.Events=new Events$2(this),this.instances={},this.Bottleneck=require$$0$1,this._startAutoCleanup(),this.sharedConnection=null!=this.connection,null==this.connection&&("redis"===this.limiterOptions.datastore?this.connection=new RedisConnection(Object.assign({},this.limiterOptions,{Events:this.Events})):"ioredis"===this.limiterOptions.datastore&&(this.connection=new IORedisConnection(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(e=""){var a;return null!=(a=this.instances[e])?a:(()=>{var a;return a=this.instances[e]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${e}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",a,e),a})()}deleteKey(e=""){var a=this;return _asyncToGenerator$1((function*(){var p,t;return t=a.instances[e],a.connection&&(p=yield a.connection.__runCommand__(["del",...Scripts.allKeys(`${a.id}-${e}`)])),null!=t&&(delete a.instances[e],yield t.disconnect()),null!=t||p>0}))()}limiters(){var e,a,p,t;for(e in p=[],a=this.instances)t=a[e],p.push({key:e,limiter:t});return p}keys(){return Object.keys(this.instances)}clusterKeys(){var e=this;return _asyncToGenerator$1((function*(){var a,p,t,d,i,r,n,s;if(null==e.connection)return e.Promise.resolve(e.keys());for(r=[],a=null,s=`b_${e.id}-`.length,p="_settings".length;0!==a;){var o=_slicedToArray$1(yield e.connection.__runCommand__(["scan",null!=a?a:0,"match",`b_${e.id}-*_settings`,"count",1e4]),2);for(a=~~o[0],d=0,n=(t=o[1]).length;dthis._resolve=e))}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(e){var a;return this._arr.push(e),a=this._promise,this._arr.length===this.maxSize?this._flush():null!=this.maxTime&&1===this._arr.length&&(this._timeout=setTimeout((()=>this._flush()),this.maxTime)),a}}return e.prototype.defaults={maxTime:null,maxSize:null,Promise:Promise},e}.call(void 0);var Batcher_1=Batcher;function _slicedToArray(e,a){return _arrayWithHoles(e)||_iterableToArrayLimit(e,a)||_nonIterableRest()}function _iterableToArrayLimit(e,a){var p=[],t=!0,d=!1,i=void 0;try{for(var r,n=e[Symbol.iterator]();!(t=(r=n.next()).done)&&(p.push(r.value),!a||p.length!==a);t=!0);}catch(e){d=!0,i=e}finally{try{t||null==n.return||n.return()}finally{if(d)throw i}}return p}function _toArray(e){return _arrayWithHoles(e)||_iterableToArray(e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithHoles(e){if(Array.isArray(e))return e}function asyncGeneratorStep(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep(i,t,d,r,n,"throw",e)}r(void 0)}))}}var Bottleneck,DEFAULT_PRIORITY,Events,Job,LocalDatastore,NUM_PRIORITIES,Queues,RedisDatastore,States,Sync,parser,splice=[].splice;NUM_PRIORITIES=10,DEFAULT_PRIORITY=5,parser=parser$8,Queues=Queues_1,Job=Job_1,LocalDatastore=LocalDatastore_1,RedisDatastore=RedisDatastore_1,Events=Events_1,States=States_1,Sync=Sync_1,Bottleneck=function(){class e{constructor(a={},...p){var t,d;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(a,p),parser.load(a,this.instanceDefaults,this),this._queues=new Queues(NUM_PRIORITIES),this._scheduled={},this._states=new States(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new Events(this),this._submitLock=new Sync("submit",this.Promise),this._registerLock=new Sync("register",this.Promise),d=parser.load(a,this.storeDefaults,{}),this._store=function(){if("redis"===this.datastore||"ioredis"===this.datastore||null!=this.connection)return t=parser.load(a,this.redisStoreDefaults,{}),new RedisDatastore(this,d,t);if("local"===this.datastore)return t=parser.load(a,this.localStoreDefaults,{}),new LocalDatastore(this,d,t);throw new e.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",(()=>{var e;return null!=(e=this._store.heartbeat)&&"function"==typeof e.ref?e.ref():void 0})),this._queues.on("zero",(()=>{var e;return null!=(e=this._store.heartbeat)&&"function"==typeof e.unref?e.unref():void 0}))}_validateOptions(a,p){if(null==a||"object"!=typeof a||0!==p.length)throw new e.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(e){return this._store.__publish__(e)}disconnect(e=!0){return this._store.__disconnect__(e)}chain(e){return this._limiter=e,this}queued(e){return this._queues.queued(e)}clusterQueued(){return this._store.__queued__()}empty(){return 0===this.queued()&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(e){return this._states.jobStatus(e)}jobs(e){return this._states.statusJobs(e)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(e=1){return this._store.__check__(e)}_clearGlobalState(e){return null!=this._scheduled[e]&&(clearTimeout(this._scheduled[e].expiration),delete this._scheduled[e],!0)}_free(e,a,p,t){var d=this;return _asyncToGenerator((function*(){var a,i;try{if(i=(yield d._store.__free__(e,p.weight)).running,d.Events.trigger("debug",`Freed ${p.id}`,t),0===i&&d.empty())return d.Events.trigger("idle")}catch(e){return a=e,d.Events.trigger("error",a)}}))()}_run(e,a,p){var t,d,i;return a.doRun(),t=this._clearGlobalState.bind(this,e),i=this._run.bind(this,e,a),d=this._free.bind(this,e,a),this._scheduled[e]={timeout:setTimeout((()=>a.doExecute(this._limiter,t,i,d)),p),expiration:null!=a.options.expiration?setTimeout((function(){return a.doExpire(t,i,d)}),p+a.options.expiration):void 0,job:a}}_drainOne(e){return this._registerLock.schedule((()=>{var a,p,t,d,i;if(0===this.queued())return this.Promise.resolve(null);i=this._queues.getFirst();var r=t=i.first();return d=r.options,a=r.args,null!=e&&d.weight>e?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${d.id}`,{args:a,options:d}),p=this._randomIndex(),this._store.__register__(p,d.weight,d.expiration).then((({success:e,wait:r,reservoir:n})=>{var s;return this.Events.trigger("debug",`Drained ${d.id}`,{success:e,args:a,options:d}),e?(i.shift(),(s=this.empty())&&this.Events.trigger("empty"),0===n&&this.Events.trigger("depleted",s),this._run(p,t,r),this.Promise.resolve(d.weight)):this.Promise.resolve(null)})))}))}_drainAll(e,a=0){return this._drainOne(e).then((p=>{var t;return null!=p?(t=null!=e?e-p:e,this._drainAll(t,a+p)):this.Promise.resolve(a)})).catch((e=>this.Events.trigger("error",e)))}_dropAllQueued(e){return this._queues.shiftAll((function(a){return a.doDrop({message:e})}))}stop(a={}){var p,t;return a=parser.load(a,this.stopDefaults),t=e=>{var a;return a=()=>{var a;return(a=this._states.counts)[0]+a[1]+a[2]+a[3]===e},new this.Promise(((e,p)=>a()?e():this.on("done",(()=>{if(a())return this.removeAllListeners("done"),e()}))))},p=a.dropWaitingJobs?(this._run=function(e,p){return p.doDrop({message:a.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule((()=>this._submitLock.schedule((()=>{var e,p,d;for(e in p=this._scheduled)d=p[e],"RUNNING"===this.jobStatus(d.job.options.id)&&(clearTimeout(d.timeout),clearTimeout(d.expiration),d.job.doDrop({message:a.dropErrorMessage}));return this._dropAllQueued(a.dropErrorMessage),t(0)}))))):this.schedule({priority:NUM_PRIORITIES-1,weight:0},(()=>t(1))),this._receive=function(p){return p._reject(new e.prototype.BottleneckError(a.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new e.prototype.BottleneckError("stop() has already been called")),p}_addToQueue(a){var p=this;return _asyncToGenerator((function*(){var t,d,i,r,n,s,o;t=a.args,r=a.options;try{var l=yield p._store.__submit__(p.queued(),r.weight);n=l.reachedHWM,d=l.blocked,o=l.strategy}catch(e){return i=e,p.Events.trigger("debug",`Could not queue ${r.id}`,{args:t,options:r,error:i}),a.doDrop({error:i}),!1}return d?(a.doDrop(),!0):n&&(null!=(s=o===e.prototype.strategy.LEAK?p._queues.shiftLastFrom(r.priority):o===e.prototype.strategy.OVERFLOW_PRIORITY?p._queues.shiftLastFrom(r.priority+1):o===e.prototype.strategy.OVERFLOW?a:void 0)&&s.doDrop(),null==s||o===e.prototype.strategy.OVERFLOW)?(null==s&&a.doDrop(),n):(a.doQueue(n,d),p._queues.push(a),yield p._drainAll(),n)}))()}_receive(a){return null!=this._states.jobStatus(a.options.id)?(a._reject(new e.prototype.BottleneckError(`A job with the same id already exists (id=${a.options.id})`)),!1):(a.doReceive(),this._submitLock.schedule(this._addToQueue,a))}submit(...e){var a,p,t,d,i,r,n,s;"function"==typeof e[0]?(i=_toArray(e),p=i[0],e=i.slice(1),r=_slicedToArray(splice.call(e,-1),1),a=r[0],d=parser.load({},this.jobDefaults)):(d=(n=_toArray(e))[0],p=n[1],e=n.slice(2),s=_slicedToArray(splice.call(e,-1),1),a=s[0],d=parser.load(d,this.jobDefaults));return(t=new Job(((...e)=>new this.Promise((function(a,t){return p(...e,(function(...e){return(null!=e[0]?t:a)(e)}))}))),e,d,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise)).promise.then((function(e){return"function"==typeof a?a(...e):void 0})).catch((function(e){return Array.isArray(e)?"function"==typeof a?a(...e):void 0:"function"==typeof a?a(e):void 0})),this._receive(t)}schedule(...e){var a,p,t;if("function"==typeof e[0]){var d=_toArray(e);t=d[0],e=d.slice(1),p={}}else{var i=_toArray(e);p=i[0],t=i[1],e=i.slice(2)}return a=new Job(t,e,p,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(a),a.promise}wrap(e){var a,p;return a=this.schedule.bind(this),(p=function(...p){return a(e.bind(this),...p)}).withOptions=function(p,...t){return a(p,e,...t)},p}updateSettings(e={}){var a=this;return _asyncToGenerator((function*(){return yield a._store.__updateSettings__(parser.overwrite(e,a.storeDefaults)),parser.overwrite(e,a.instanceDefaults,a),a}))()}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(e=0){return this._store.__incrementReservoir__(e)}}return e.default=e,e.Events=Events,e.version=e.prototype.version=require$$8.version,e.strategy=e.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},e.BottleneckError=e.prototype.BottleneckError=BottleneckError_1,e.Group=e.prototype.Group=Group_1,e.RedisConnection=e.prototype.RedisConnection=RedisConnection_1,e.IORedisConnection=e.prototype.IORedisConnection=IORedisConnection_1,e.Batcher=e.prototype.Batcher=Batcher_1,e.prototype.jobDefaults={priority:DEFAULT_PRIORITY,weight:1,expiration:null,id:""},e.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:e.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},e.prototype.localStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:250},e.prototype.redisStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},e.prototype.instanceDefaults={datastore:"local",connection:null,id:"",rejectOnDrop:!0,trackDoneStatus:!1,Promise:Promise},e.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},e}.call(void 0);var Bottleneck_1=Bottleneck,lib$3=require$$0$1,shams=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},a=Symbol("test"),p=Object(a);if("string"==typeof a)return!1;if("[object Symbol]"!==Object.prototype.toString.call(a))return!1;if("[object Symbol]"!==Object.prototype.toString.call(p))return!1;for(a in e[a]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var t=Object.getOwnPropertySymbols(e);if(1!==t.length||t[0]!==a)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,a))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var d=Object.getOwnPropertyDescriptor(e,a);if(42!==d.value||!0!==d.enumerable)return!1}return!0},origSymbol="undefined"!=typeof Symbol&&Symbol,hasSymbols$1=function(){return"function"==typeof origSymbol&&("function"==typeof Symbol&&("symbol"==typeof origSymbol("foo")&&("symbol"==typeof Symbol("bar")&&shams())))},ERROR_MESSAGE="Function.prototype.bind called on incompatible ",slice=Array.prototype.slice,toStr$1=Object.prototype.toString,funcType="[object Function]",implementation$1=function(e){var a=this;if("function"!=typeof a||toStr$1.call(a)!==funcType)throw new TypeError(ERROR_MESSAGE+a);for(var p,t=slice.call(arguments,1),d=function(){if(this instanceof p){var d=a.apply(this,t.concat(slice.call(arguments)));return Object(d)===d?d:this}return a.apply(e,t.concat(slice.call(arguments)))},i=Math.max(0,a.length-t.length),r=[],n=0;n1&&"boolean"!=typeof a)throw new $TypeError$1('"allowMissing" argument must be a boolean');var p=stringToPath(e),t=p.length>0?p[0]:"",d=getBaseIntrinsic("%"+t+"%",a),i=d.name,r=d.value,n=!1,s=d.alias;s&&(t=s[0],$spliceApply(p,$concat([0,1],s)));for(var o=1,l=!0;o=p.length){var h=$gOPD(r,m);r=(l=!!h)&&"get"in h&&!("originalValue"in h.get)?h.get:r[m]}else l=src(r,m),r=r[m];l&&!n&&(INTRINSICS[i]=r)}}return r},callBind=createCommonjsModule((function(e){var a=getIntrinsic("%Function.prototype.apply%"),p=getIntrinsic("%Function.prototype.call%"),t=getIntrinsic("%Reflect.apply%",!0)||functionBind.call(p,a),d=getIntrinsic("%Object.getOwnPropertyDescriptor%",!0),i=getIntrinsic("%Object.defineProperty%",!0),r=getIntrinsic("%Math.max%");if(i)try{i({},"a",{value:1})}catch(e){i=null}e.exports=function(e){var a=t(functionBind,p,arguments);if(d&&i){var n=d(a,"length");n.configurable&&i(a,"length",{value:1+r(0,e.length-(arguments.length-1))})}return a};var n=function(){return t(functionBind,a,arguments)};i?i(e.exports,"apply",{value:n}):e.exports.apply=n})),$indexOf=callBind(getIntrinsic("String.prototype.indexOf")),callBound=function(e,a){var p=getIntrinsic(e,!!a);return"function"==typeof p&&$indexOf(e,".prototype.")>-1?callBind(p):p},util_inspect=require$$0$3.inspect,hasMap="function"==typeof Map&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize=hasMap&&mapSizeDescriptor&&"function"==typeof mapSizeDescriptor.get?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet="function"==typeof Set&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&"function"==typeof setSizeDescriptor.get?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap="function"==typeof WeakMap&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet="function"==typeof WeakSet&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef="function"==typeof WeakRef&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString=Object.prototype.toString,functionToString=Function.prototype.toString,match=String.prototype.match,bigIntValueOf="function"==typeof BigInt?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,hasShammedSymbols="function"==typeof Symbol&&"object"==typeof Symbol.iterator,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null),inspectCustom=util_inspect.custom,inspectSymbol=inspectCustom&&isSymbol(inspectCustom)?inspectCustom:null,toStringTag="function"==typeof Symbol&&void 0!==Symbol.toStringTag?Symbol.toStringTag:null,objectInspect=function e(a,p,t,d){var i=p||{};if(has$3(i,"quoteStyle")&&"single"!==i.quoteStyle&&"double"!==i.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has$3(i,"maxStringLength")&&("number"==typeof i.maxStringLength?i.maxStringLength<0&&i.maxStringLength!==1/0:null!==i.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var r=!has$3(i,"customInspect")||i.customInspect;if("boolean"!=typeof r&&"symbol"!==r)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has$3(i,"indent")&&null!==i.indent&&"\t"!==i.indent&&!(parseInt(i.indent,10)===i.indent&&i.indent>0))throw new TypeError('options "indent" must be "\\t", an integer > 0, or `null`');if(void 0===a)return"undefined";if(null===a)return"null";if("boolean"==typeof a)return a?"true":"false";if("string"==typeof a)return inspectString(a,i);if("number"==typeof a)return 0===a?1/0/a>0?"0":"-0":String(a);if("bigint"==typeof a)return String(a)+"n";var n=void 0===i.depth?5:i.depth;if(void 0===t&&(t=0),t>=n&&n>0&&"object"==typeof a)return isArray$3(a)?"[Array]":"[Object]";var s=getIndent(i,t);if(void 0===d)d=[];else if(indexOf(d,a)>=0)return"[Circular]";function o(a,p,r){if(p&&(d=d.slice()).push(p),r){var n={depth:i.depth};return has$3(i,"quoteStyle")&&(n.quoteStyle=i.quoteStyle),e(a,n,t+1,d)}return e(a,i,t+1,d)}if("function"==typeof a){var l=nameOf(a),m=arrObjKeys(a,o);return"[Function"+(l?": "+l:" (anonymous)")+"]"+(m.length>0?" { "+m.join(", ")+" }":"")}if(isSymbol(a)){var u=hasShammedSymbols?String(a).replace(/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(a);return"object"!=typeof a||hasShammedSymbols?u:markBoxed(u)}if(isElement(a)){for(var c="<"+String(a.nodeName).toLowerCase(),h=a.attributes||[],v=0;v"}if(isArray$3(a)){if(0===a.length)return"[]";var f=arrObjKeys(a,o);return s&&!singleLineValues(f)?"["+indentedJoin(f,s)+"]":"[ "+f.join(", ")+" ]"}if(isError(a)){var _=arrObjKeys(a,o);return 0===_.length?"["+String(a)+"]":"{ ["+String(a)+"] "+_.join(", ")+" }"}if("object"==typeof a&&r){if(inspectSymbol&&"function"==typeof a[inspectSymbol])return a[inspectSymbol]();if("symbol"!==r&&"function"==typeof a.inspect)return a.inspect()}if(isMap(a)){var y=[];return mapForEach.call(a,(function(e,p){y.push(o(p,a,!0)+" => "+o(e,a))})),collectionOf("Map",mapSize.call(a),y,s)}if(isSet(a)){var w=[];return setForEach.call(a,(function(e){w.push(o(e,a))})),collectionOf("Set",setSize.call(a),w,s)}if(isWeakMap(a))return weakCollectionOf("WeakMap");if(isWeakSet(a))return weakCollectionOf("WeakSet");if(isWeakRef(a))return weakCollectionOf("WeakRef");if(isNumber(a))return markBoxed(o(Number(a)));if(isBigInt(a))return markBoxed(o(bigIntValueOf.call(a)));if(isBoolean(a))return markBoxed(booleanValueOf.call(a));if(isString(a))return markBoxed(o(String(a)));if(!isDate(a)&&!isRegExp$1(a)){var g=arrObjKeys(a,o),b=gPO?gPO(a)===Object.prototype:a instanceof Object||a.constructor===Object,S=a instanceof Object?"":"null prototype",N=!b&&toStringTag&&Object(a)===a&&toStringTag in a?toStr(a).slice(8,-1):S?"Object":"",T=(b||"function"!=typeof a.constructor?"":a.constructor.name?a.constructor.name+" ":"")+(N||S?"["+[].concat(N||[],S||[]).join(": ")+"] ":"");return 0===g.length?T+"{}":s?T+"{"+indentedJoin(g,s)+"}":T+"{ "+g.join(", ")+" }"}return String(a)};function wrapQuotes(e,a,p){var t="double"===(p.quoteStyle||a)?'"':"'";return t+e+t}function quote(e){return String(e).replace(/"/g,""")}function isArray$3(e){return!("[object Array]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isDate(e){return!("[object Date]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isRegExp$1(e){return!("[object RegExp]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isError(e){return!("[object Error]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isString(e){return!("[object String]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isNumber(e){return!("[object Number]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isBoolean(e){return!("[object Boolean]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isSymbol(e){if(hasShammedSymbols)return e&&"object"==typeof e&&e instanceof Symbol;if("symbol"==typeof e)return!0;if(!e||"object"!=typeof e||!symToString)return!1;try{return symToString.call(e),!0}catch(e){}return!1}function isBigInt(e){if(!e||"object"!=typeof e||!bigIntValueOf)return!1;try{return bigIntValueOf.call(e),!0}catch(e){}return!1}var hasOwn=Object.prototype.hasOwnProperty||function(e){return e in this};function has$3(e,a){return hasOwn.call(e,a)}function toStr(e){return objectToString.call(e)}function nameOf(e){if(e.name)return e.name;var a=match.call(functionToString.call(e),/^function\s*([\w$]+)/);return a?a[1]:null}function indexOf(e,a){if(e.indexOf)return e.indexOf(a);for(var p=0,t=e.length;pa.maxStringLength){var p=e.length-a.maxStringLength,t="... "+p+" more character"+(p>1?"s":"");return inspectString(e.slice(0,a.maxStringLength),a)+t}return wrapQuotes(e.replace(/(['\\])/g,"\\$1").replace(/[\x00-\x1f]/g,lowbyte),"single",a)}function lowbyte(e){var a=e.charCodeAt(0),p={8:"b",9:"t",10:"n",12:"f",13:"r"}[a];return p?"\\"+p:"\\x"+(a<16?"0":"")+a.toString(16).toUpperCase()}function markBoxed(e){return"Object("+e+")"}function weakCollectionOf(e){return e+" { ? }"}function collectionOf(e,a,p,t){return e+" ("+a+") {"+(t?indentedJoin(p,t):p.join(", "))+"}"}function singleLineValues(e){for(var a=0;a=0)return!1;return!0}function getIndent(e,a){var p;if("\t"===e.indent)p="\t";else{if(!("number"==typeof e.indent&&e.indent>0))return null;p=Array(e.indent+1).join(" ")}return{base:p,prev:Array(a+1).join(p)}}function indentedJoin(e,a){if(0===e.length)return"";var p="\n"+a.prev+a.base;return p+e.join(","+p)+"\n"+a.prev}function arrObjKeys(e,a){var p=isArray$3(e),t=[];if(p){t.length=e.length;for(var d=0;d1;){var a=e.pop(),p=a.obj[a.prop];if(isArray$2(p)){for(var t=[],d=0;d=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122||d===formats.RFC1738&&(40===s||41===s)?r+=i.charAt(n):s<128?r+=hexTable[s]:s<2048?r+=hexTable[192|s>>6]+hexTable[128|63&s]:s<55296||s>=57344?r+=hexTable[224|s>>12]+hexTable[128|s>>6&63]+hexTable[128|63&s]:(n+=1,s=65536+((1023&s)<<10|1023&i.charCodeAt(n)),r+=hexTable[240|s>>18]+hexTable[128|s>>12&63]+hexTable[128|s>>6&63]+hexTable[128|63&s])}return r},compact=function(e){for(var a=[{obj:{o:e},prop:"o"}],p=[],t=0;t0?f.join(",")||null:void 0}];else if(isArray$1(n))_=n;else{var w=Object.keys(f);_=s?w.sort(s):w}for(var g=0;g<_.length;++g){var b=_[g],S="object"==typeof b&&void 0!==b.value?b.value:f[b];if(!i||null!==S){var N=isArray$1(f)?"function"==typeof t?t(p,b):p:p+(o?"."+b:"["+b+"]");v.set(a,!0);var T=sideChannel();pushToArray(y,e(S,N,t,d,i,r,n,s,o,l,m,u,c,h,T))}}return y},normalizeStringifyOptions=function(e){if(!e)return defaults$1;if(null!==e.encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");var a=e.charset||defaults$1.charset;if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var p=formats.default;if(void 0!==e.format){if(!has$1.call(formats.formatters,e.format))throw new TypeError("Unknown format option provided.");p=e.format}var t=formats.formatters[p],d=defaults$1.filter;return("function"==typeof e.filter||isArray$1(e.filter))&&(d=e.filter),{addQueryPrefix:"boolean"==typeof e.addQueryPrefix?e.addQueryPrefix:defaults$1.addQueryPrefix,allowDots:void 0===e.allowDots?defaults$1.allowDots:!!e.allowDots,charset:a,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:defaults$1.charsetSentinel,delimiter:void 0===e.delimiter?defaults$1.delimiter:e.delimiter,encode:"boolean"==typeof e.encode?e.encode:defaults$1.encode,encoder:"function"==typeof e.encoder?e.encoder:defaults$1.encoder,encodeValuesOnly:"boolean"==typeof e.encodeValuesOnly?e.encodeValuesOnly:defaults$1.encodeValuesOnly,filter:d,format:p,formatter:t,serializeDate:"function"==typeof e.serializeDate?e.serializeDate:defaults$1.serializeDate,skipNulls:"boolean"==typeof e.skipNulls?e.skipNulls:defaults$1.skipNulls,sort:"function"==typeof e.sort?e.sort:null,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:defaults$1.strictNullHandling}},stringify_1=function(e,a){var p,t=e,d=normalizeStringifyOptions(a);"function"==typeof d.filter?t=(0,d.filter)("",t):isArray$1(d.filter)&&(p=d.filter);var i,r=[];if("object"!=typeof t||null===t)return"";i=a&&a.arrayFormat in arrayPrefixGenerators?a.arrayFormat:a&&"indices"in a?a.indices?"indices":"repeat":"indices";var n=arrayPrefixGenerators[i];p||(p=Object.keys(t)),d.sort&&p.sort(d.sort);for(var s=sideChannel(),o=0;o0?u+m:""},has=Object.prototype.hasOwnProperty,isArray=Array.isArray,defaults={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:utils$1.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},interpretNumericEntities=function(e){return e.replace(/&#(\d+);/g,(function(e,a){return String.fromCharCode(parseInt(a,10))}))},parseArrayValue=function(e,a){return e&&"string"==typeof e&&a.comma&&e.indexOf(",")>-1?e.split(","):e},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function(e,a){var p,t={},d=a.ignoreQueryPrefix?e.replace(/^\?/,""):e,i=a.parameterLimit===1/0?void 0:a.parameterLimit,r=d.split(a.delimiter,i),n=-1,s=a.charset;if(a.charsetSentinel)for(p=0;p-1&&(l=isArray(l)?[l]:l),has.call(t,o)?t[o]=utils$1.combine(t[o],l):t[o]=l}return t},parseObject=function(e,a,p,t){for(var d=t?a:parseArrayValue(a,p),i=e.length-1;i>=0;--i){var r,n=e[i];if("[]"===n&&p.parseArrays)r=[].concat(d);else{r=p.plainObjects?Object.create(null):{};var s="["===n.charAt(0)&&"]"===n.charAt(n.length-1)?n.slice(1,-1):n,o=parseInt(s,10);p.parseArrays||""!==s?!isNaN(o)&&n!==s&&String(o)===s&&o>=0&&p.parseArrays&&o<=p.arrayLimit?(r=[])[o]=d:r[s]=d:r={0:d}}d=r}return d},parseKeys=function(e,a,p,t){if(e){var d=p.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,i=/(\[[^[\]]*])/g,r=p.depth>0&&/(\[[^[\]]*])/.exec(d),n=r?d.slice(0,r.index):d,s=[];if(n){if(!p.plainObjects&&has.call(Object.prototype,n)&&!p.allowPrototypes)return;s.push(n)}for(var o=0;p.depth>0&&null!==(r=i.exec(d))&&ot)throw new TypeError("Argument is not in byte range");return n}if(!isNaN(n)&&r.clamp)return n=evenRound(n),nt&&(n=t),n;if(!Number.isFinite(n)||0===n)return 0;if(n=sign(n)*Math.floor(Math.abs(n)),n%=d,!a.unsigned&&n>=i)return n-d;if(a.unsigned)if(n<0)n+=d;else if(-0===n)return 0;return n}}conversions.void=function(){},conversions.boolean=function(e){return!!e},conversions.byte=createNumberConversion(8,{unsigned:!1}),conversions.octet=createNumberConversion(8,{unsigned:!0}),conversions.short=createNumberConversion(16,{unsigned:!1}),conversions["unsigned short"]=createNumberConversion(16,{unsigned:!0}),conversions.long=createNumberConversion(32,{unsigned:!1}),conversions["unsigned long"]=createNumberConversion(32,{unsigned:!0}),conversions["long long"]=createNumberConversion(32,{unsigned:!1,moduloBitLength:64}),conversions["unsigned long long"]=createNumberConversion(32,{unsigned:!0,moduloBitLength:64}),conversions.double=function(e){const a=+e;if(!Number.isFinite(a))throw new TypeError("Argument is not a finite floating-point value");return a},conversions["unrestricted double"]=function(e){const a=+e;if(isNaN(a))throw new TypeError("Argument is NaN");return a},conversions.float=conversions.double,conversions["unrestricted float"]=conversions["unrestricted double"],conversions.DOMString=function(e,a){return a||(a={}),a.treatNullAsEmptyString&&null===e?"":String(e)},conversions.ByteString=function(e,a){const p=String(e);let t;for(let e=0;void 0!==(t=p.codePointAt(e));++e)if(t>255)throw new TypeError("Argument is not a valid bytestring");return p},conversions.USVString=function(e){const a=String(e),p=a.length,t=[];for(let e=0;e57343)t.push(String.fromCodePoint(d));else if(56320<=d&&d<=57343)t.push(String.fromCodePoint(65533));else if(e===p-1)t.push(String.fromCodePoint(65533));else{const p=a.charCodeAt(e+1);if(56320<=p&&p<=57343){const a=1023&d,i=1023&p;t.push(String.fromCodePoint(65536+1024*a+i)),++e}else t.push(String.fromCodePoint(65533))}}return t.join("")},conversions.Date=function(e,a){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e},conversions.RegExp=function(e,a){return e instanceof RegExp||(e=new RegExp(e)),e};var utils=createCommonjsModule((function(e){e.exports.mixin=function(e,a){const p=Object.getOwnPropertyNames(a);for(let t=0;t= 0x80 (not a basic code point)","invalid-input":"Invalid input"},baseMinusTMin=base-tMin,floor=Math.floor,stringFromCharCode=String.fromCharCode;function error$1(e){throw new RangeError(errors[e])}function map(e,a){const p=[];let t=e.length;for(;t--;)p[t]=a(e[t]);return p}function mapDomain(e,a){const p=e.split("@");let t="";p.length>1&&(t=p[0]+"@",e=p[1]);return t+map((e=e.replace(regexSeparators,".")).split("."),a).join(".")}function ucs2decode(e){const a=[];let p=0;const t=e.length;for(;p=55296&&d<=56319&&pString.fromCodePoint(...e),basicToDigit=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:base},digitToBasic=function(e,a){return e+22+75*(e<26)-((0!=a)<<5)},adapt=function(e,a,p){let t=0;for(e=p?floor(e/damp):e>>1,e+=floor(e/a);e>baseMinusTMin*tMax>>1;t+=base)e=floor(e/baseMinusTMin);return floor(t+(baseMinusTMin+1)*e/(e+skew))},decode=function(e){const a=[],p=e.length;let t=0,d=initialN,i=initialBias,r=e.lastIndexOf(delimiter);r<0&&(r=0);for(let p=0;p=128&&error$1("not-basic"),a.push(e.charCodeAt(p));for(let n=r>0?r+1:0;n=p&&error$1("invalid-input");const r=basicToDigit(e.charCodeAt(n++));(r>=base||r>floor((maxInt-t)/a))&&error$1("overflow"),t+=r*a;const s=d<=i?tMin:d>=i+tMax?tMax:d-i;if(rfloor(maxInt/o)&&error$1("overflow"),a*=o}const s=a.length+1;i=adapt(t-r,s,0==r),floor(t/s)>maxInt-d&&error$1("overflow"),d+=floor(t/s),t%=s,a.splice(t++,0,d)}return String.fromCodePoint(...a)},encode=function(e){const a=[];let p=(e=ucs2decode(e)).length,t=initialN,d=0,i=initialBias;for(const p of e)p<128&&a.push(stringFromCharCode(p));let r=a.length,n=r;for(r&&a.push(delimiter);n=t&&afloor((maxInt-d)/s)&&error$1("overflow"),d+=(p-t)*s,t=p;for(const p of e)if(pmaxInt&&error$1("overflow"),p==t){let e=d;for(let p=base;;p+=base){const t=p<=i?tMin:p>=i+tMax?tMax:p-i;if(e=e)return d;d[0][0]>e?p=t-1:a=t+1}return null}var regexAstralSymbols=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function countSymbols(e){return e.replace(regexAstralSymbols,"_").length}function mapChars(e,a,p){for(var t=!1,d="",i=countSymbols(e),r=0;r253||0===r.length)&&(d.error=!0);for(var n=0;n63||0===i.length){d.error=!0;break}}return d.error?null:i.join(".")},toUnicode=function(e,a){var p=processing(e,a,PROCESSING_OPTIONS.NONTRANSITIONAL);return{domain:p.string,error:p.error}},PROCESSING_OPTIONS_1=PROCESSING_OPTIONS,tr46={toASCII:toASCII,toUnicode:toUnicode,PROCESSING_OPTIONS:PROCESSING_OPTIONS_1},urlStateMachine=createCommonjsModule((function(e){const a={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},p=Symbol("failure");function t(e){return punycode_1.ucs2.decode(e).length}function d(e,a){const p=e[a];return isNaN(p)?void 0:String.fromCodePoint(p)}function i(e){return e>=48&&e<=57}function r(e){return e>=65&&e<=90||e>=97&&e<=122}function n(e){return i(e)||e>=65&&e<=70||e>=97&&e<=102}function s(e){return"."===e||"%2e"===e.toLowerCase()}function o(e){return 2===e.length&&r(e.codePointAt(0))&&(":"===e[1]||"|"===e[1])}function l(e){return void 0!==a[e]}function m(e){return l(e.scheme)}function u(e){let a=e.toString(16).toUpperCase();return 1===a.length&&(a="0"+a),"%"+a}function c(e){return e<=31||e>126}const h=new Set([32,34,35,60,62,63,96,123,125]);function v(e){return c(e)||h.has(e)}const f=new Set([47,58,59,61,64,91,92,93,94,124]);function _(e){return v(e)||f.has(e)}function y(e,a){const p=String.fromCodePoint(e);return a(e)?function(e){const a=new Buffer(e);let p="";for(let e=0;e=2&&"0"===e.charAt(0)&&"x"===e.charAt(1).toLowerCase()?(e=e.substring(2),a=16):e.length>=2&&"0"===e.charAt(0)&&(e=e.substring(1),a=8),""===e)return 0;return(10===a?/[^0-9]/:16===a?/[^0-9A-Fa-f]/:/[^0-7]/).test(e)?p:parseInt(e,a)}function g(e,a){if("["===e[0])return"]"!==e[e.length-1]?p:function(e){const a=[0,0,0,0,0,0,0,0];let t=0,r=null,s=0;if(58===(e=punycode_1.ucs2.decode(e))[s]){if(58!==e[s+1])return p;s+=2,++t,r=t}for(;s6)return p;let r=0;for(;void 0!==e[s];){let n=null;if(r>0){if(!(46===e[s]&&r<4))return p;++s}if(!i(e[s]))return p;for(;i(e[s]);){const a=parseInt(d(e,s));if(null===n)n=a;else{if(0===n)return p;n=10*n+a}if(n>255)return p;++s}a[t]=256*a[t]+n,++r,2!==r&&4!==r||++t}if(4!==r)return p;break}if(58===e[s]){if(++s,void 0===e[s])return p}else if(void 0!==e[s])return p;a[t]=o,++t}if(null!==r){let e=t-r;for(t=7;0!==t&&e>0;){const p=a[r+e-1];a[r+e-1]=a[t],a[t]=p,--t,--e}}else if(null===r&&8!==t)return p;return a}(e.substring(1,e.length-1));if(!a)return function(e){if(a=e,-1!==a.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/))return p;var a;let t="";const d=punycode_1.ucs2.decode(e);for(let e=0;e1&&a.pop(),a.length>4)return e;const t=[];for(const d of a){if(""===d)return e;const a=w(d);if(a===p)return e;t.push(a)}for(let e=0;e255)return p;if(t[t.length-1]>=Math.pow(256,5-t.length))return p;let d=t.pop(),i=0;for(const e of t)d+=e*Math.pow(256,3-i),++i;return d}(r);return"number"==typeof s||s===p?s:r}function b(e){return"number"==typeof e?function(e){let a="",p=e;for(let e=1;e<=4;++e)a=String(p%256)+a,4!==e&&(a="."+a),p=Math.floor(p/256);return a}(e):e instanceof Array?"["+function(e){let a="";const p=function(e){let a=null,p=1,t=null,d=0;for(let i=0;ip&&(a=t,p=d),t=null,d=0):(null===t&&(t=i),++d);return d>p&&(a=t,p=d),{idx:a,len:p}}(e).idx;let t=!1;for(let d=0;d<=7;++d)t&&0===e[d]||(t&&(t=!1),p!==d?(a+=e[d].toString(16),7!==d&&(a+=":")):(a+=0===d?"::":":",t=!0));return a}(e)+"]":e}function S(e){const a=e.path;var p;0!==a.length&&("file"===e.scheme&&1===a.length&&(p=a[0],/^[A-Za-z]:$/.test(p))||a.pop())}function N(e){return""!==e.username||""!==e.password}function T(e,a,t,d,i){if(this.pointer=0,this.input=e,this.base=a||null,this.encodingOverride=t||"utf-8",this.stateOverride=i,this.url=d,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};const e=function(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}(this.input);e!==this.input&&(this.parseError=!0),this.input=e}const r=function(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}(this.input);for(r!==this.input&&(this.parseError=!0),this.input=r,this.state=i||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=punycode_1.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){const e=this.input[this.pointer],a=isNaN(e)?void 0:String.fromCodePoint(e),t=this["parse "+this.state](e,a);if(!t)break;if(t===p){this.failure=!0;break}}}T.prototype["parse scheme start"]=function(e,a){if(r(e))this.buffer+=a.toLowerCase(),this.state="scheme";else{if(this.stateOverride)return this.parseError=!0,p;this.state="no scheme",--this.pointer}return!0},T.prototype["parse scheme"]=function(e,a){if(function(e){return r(e)||i(e)}(e)||43===e||45===e||46===e)this.buffer+=a.toLowerCase();else if(58===e){if(this.stateOverride){if(m(this.url)&&!l(this.buffer))return!1;if(!m(this.url)&&l(this.buffer))return!1;if((N(this.url)||null!==this.url.port)&&"file"===this.buffer)return!1;if("file"===this.url.scheme&&(""===this.url.host||null===this.url.host))return!1}if(this.url.scheme=this.buffer,this.buffer="",this.stateOverride)return!1;"file"===this.url.scheme?(47===this.input[this.pointer+1]&&47===this.input[this.pointer+2]||(this.parseError=!0),this.state="file"):m(this.url)&&null!==this.base&&this.base.scheme===this.url.scheme?this.state="special relative or authority":m(this.url)?this.state="special authority slashes":47===this.input[this.pointer+1]?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else{if(this.stateOverride)return this.parseError=!0,p;this.buffer="",this.state="no scheme",this.pointer=-1}return!0},T.prototype["parse no scheme"]=function(e){return null===this.base||this.base.cannotBeABaseURL&&35!==e?p:(this.base.cannotBeABaseURL&&35===e?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):"file"===this.base.scheme?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)},T.prototype["parse special relative or authority"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0},T.prototype["parse path or authority"]=function(e){return 47===e?this.state="authority":(this.state="path",--this.pointer),!0},T.prototype["parse relative"]=function(e){return this.url.scheme=this.base.scheme,isNaN(e)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):47===e?this.state="relative slash":63===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):m(this.url)&&92===e?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0},T.prototype["parse relative slash"]=function(e){return!m(this.url)||47!==e&&92!==e?47===e?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer):(92===e&&(this.parseError=!0),this.state="special authority ignore slashes"),!0},T.prototype["parse special authority slashes"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0},T.prototype["parse special authority ignore slashes"]=function(e){return 47!==e&&92!==e?(this.state="authority",--this.pointer):this.parseError=!0,!0},T.prototype["parse authority"]=function(e,a){if(64===e){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;const e=t(this.buffer);for(let a=0;aMath.pow(2,16)-1)return this.parseError=!0,p;this.url.port=e===(d=this.url.scheme,a[d])?null:e,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}var d;return!0};const E=new Set([47,92,63,35]);T.prototype["parse file"]=function(e){var a,p;return this.url.scheme="file",47===e||92===e?(92===e&&(this.parseError=!0),this.state="file slash"):null!==this.base&&"file"===this.base.scheme?isNaN(e)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):63===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1==0||(a=e,p=this.input[this.pointer+1],!r(a)||58!==p&&124!==p)||this.input.length-this.pointer-1>=2&&!E.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),S(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0},T.prototype["parse file slash"]=function(e){var a;return 47===e||92===e?(92===e&&(this.parseError=!0),this.state="file host"):(null!==this.base&&"file"===this.base.scheme&&(2===(a=this.base.path[0]).length&&r(a.codePointAt(0))&&":"===a[1]?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0},T.prototype["parse file host"]=function(e,a){if(isNaN(e)||47===e||92===e||63===e||35===e)if(--this.pointer,!this.stateOverride&&o(this.buffer))this.parseError=!0,this.state="path";else if(""===this.buffer){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let e=g(this.buffer,m(this.url));if(e===p)return p;if("localhost"===e&&(e=""),this.url.host=e,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=a;return!0},T.prototype["parse path start"]=function(e){return m(this.url)?(92===e&&(this.parseError=!0),this.state="path",47!==e&&92!==e&&--this.pointer):this.stateOverride||63!==e?this.stateOverride||35!==e?void 0!==e&&(this.state="path",47!==e&&--this.pointer):(this.url.fragment="",this.state="fragment"):(this.url.query="",this.state="query"),!0},T.prototype["parse path"]=function(e){if(isNaN(e)||47===e||m(this.url)&&92===e||!this.stateOverride&&(63===e||35===e)){if(m(this.url)&&92===e&&(this.parseError=!0),".."===(a=(a=this.buffer).toLowerCase())||"%2e."===a||".%2e"===a||"%2e%2e"===a?(S(this.url),47===e||m(this.url)&&92===e||this.url.path.push("")):!s(this.buffer)||47===e||m(this.url)&&92===e?s(this.buffer)||("file"===this.url.scheme&&0===this.url.path.length&&o(this.buffer)&&(""!==this.url.host&&null!==this.url.host&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)):this.url.path.push(""),this.buffer="","file"===this.url.scheme&&(void 0===e||63===e||35===e))for(;this.url.path.length>1&&""===this.url.path[0];)this.parseError=!0,this.url.path.shift();63===e&&(this.url.query="",this.state="query"),35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||n(this.input[this.pointer+1])&&n(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=y(e,v);var a;return!0},T.prototype["parse cannot-be-a-base-URL path"]=function(e){return 63===e?(this.url.query="",this.state="query"):35===e?(this.url.fragment="",this.state="fragment"):(isNaN(e)||37===e||(this.parseError=!0),37!==e||n(this.input[this.pointer+1])&&n(this.input[this.pointer+2])||(this.parseError=!0),isNaN(e)||(this.url.path[0]=this.url.path[0]+y(e,c))),!0},T.prototype["parse query"]=function(e,a){if(isNaN(e)||!this.stateOverride&&35===e){m(this.url)&&"ws"!==this.url.scheme&&"wss"!==this.url.scheme||(this.encodingOverride="utf-8");const a=new Buffer(this.buffer);for(let e=0;e126||34===a[e]||35===a[e]||60===a[e]||62===a[e]?this.url.query+=u(a[e]):this.url.query+=String.fromCodePoint(a[e]);this.buffer="",35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||n(this.input[this.pointer+1])&&n(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=a;return!0},T.prototype["parse fragment"]=function(e){return isNaN(e)||(0===e?this.parseError=!0:(37!==e||n(this.input[this.pointer+1])&&n(this.input[this.pointer+2])||(this.parseError=!0),this.url.fragment+=y(e,c))),!0},e.exports.serializeURL=function(e,a){let p=e.scheme+":";if(null!==e.host?(p+="//",""===e.username&&""===e.password||(p+=e.username,""!==e.password&&(p+=":"+e.password),p+="@"),p+=b(e.host),null!==e.port&&(p+=":"+e.port)):null===e.host&&"file"===e.scheme&&(p+="//"),e.cannotBeABaseURL)p+=e.path[0];else for(const a of e.path)p+="/"+a;return null!==e.query&&(p+="?"+e.query),a||null===e.fragment||(p+="#"+e.fragment),p},e.exports.serializeURLOrigin=function(a){switch(a.scheme){case"blob":try{return e.exports.serializeURLOrigin(e.exports.parseURL(a.path[0]))}catch(e){return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return function(e){let a=e.scheme+"://";return a+=b(e.host),null!==e.port&&(a+=":"+e.port),a}({scheme:a.scheme,host:a.host,port:a.port});case"file":return"file://";default:return"null"}},e.exports.basicURLParse=function(e,a){void 0===a&&(a={});const p=new T(e,a.baseURL,a.encodingOverride,a.url,a.stateOverride);return p.failure?"failure":p.url},e.exports.setTheUsername=function(e,a){e.username="";const p=punycode_1.ucs2.decode(a);for(let a=0;a!!e&&e[a]instanceof URLImpl_1.implementation,create(e,a){let t=Object.create(p.prototype);return this.setup(t,e,a),t},setup(e,p,t){t||(t={}),t.wrapper=e,e[a]=new URLImpl_1.implementation(p,t),e[a][utils.wrapperSymbol]=e},interface:p,expose:{Window:{URL:p},Worker:{URL:p}}}})),URL$2=URL_1.interface,serializeURL=urlStateMachine.serializeURL,serializeURLOrigin=urlStateMachine.serializeURLOrigin,basicURLParse=urlStateMachine.basicURLParse,setTheUsername=urlStateMachine.setTheUsername,setThePassword=urlStateMachine.setThePassword,serializeHost=urlStateMachine.serializeHost,serializeInteger=urlStateMachine.serializeInteger,parseURL$1=urlStateMachine.parseURL,publicApi={URL:URL$2,serializeURL:serializeURL,serializeURLOrigin:serializeURLOrigin,basicURLParse:basicURLParse,setTheUsername:setTheUsername,setThePassword:setThePassword,serializeHost:serializeHost,serializeInteger:serializeInteger,parseURL:parseURL$1};const Readable=Stream.Readable,BUFFER=Symbol("buffer"),TYPE=Symbol("type");class Blob$1{constructor(){this[TYPE]="";const e=arguments[0],a=arguments[1],p=[];let t=0;if(e){const a=e,d=Number(a.length);for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:{},t=p.size;let d=void 0===t?0:t;var i=p.timeout;let r=void 0===i?0:i;null==e?e=null:isURLSearchParams(e)?e=Buffer.from(e.toString()):isBlob$1(e)||Buffer.isBuffer(e)||("[object ArrayBuffer]"===Object.prototype.toString.call(e)?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof Stream||(e=Buffer.from(String(e)))),this[INTERNALS]={body:e,disturbed:!1,error:null},this.size=d,this.timeout=r,e instanceof Stream&&e.on("error",(function(e){const p="AbortError"===e.name?e:new FetchError(`Invalid response body while trying to fetch ${a.url}: ${e.message}`,"system",e);a[INTERNALS].error=p}))}function consumeBody(){var e=this;if(this[INTERNALS].disturbed)return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[INTERNALS].disturbed=!0,this[INTERNALS].error)return Body.Promise.reject(this[INTERNALS].error);let a=this.body;if(null===a)return Body.Promise.resolve(Buffer.alloc(0));if(isBlob$1(a)&&(a=a.stream()),Buffer.isBuffer(a))return Body.Promise.resolve(a);if(!(a instanceof Stream))return Body.Promise.resolve(Buffer.alloc(0));let p=[],t=0,d=!1;return new Body.Promise((function(i,r){let n;e.timeout&&(n=setTimeout((function(){d=!0,r(new FetchError(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))}),e.timeout)),a.on("error",(function(a){"AbortError"===a.name?(d=!0,r(a)):r(new FetchError(`Invalid response body while trying to fetch ${e.url}: ${a.message}`,"system",a))})),a.on("data",(function(a){if(!d&&null!==a){if(e.size&&t+a.length>e.size)return d=!0,void r(new FetchError(`content size at ${e.url} over limit: ${e.size}`,"max-size"));t+=a.length,p.push(a)}})),a.on("end",(function(){if(!d){clearTimeout(n);try{i(Buffer.concat(p,t))}catch(a){r(new FetchError(`Could not create Buffer from response body for ${e.url}: ${a.message}`,"system",a))}}}))}))}function convertBody(e,a){if("function"!=typeof convert)throw new Error("The package `encoding` must be installed to use the textConverted() function");const p=a.get("content-type");let t,d,i="utf-8";return p&&(t=/charset=([^;]*)/i.exec(p)),d=e.slice(0,1024).toString(),!t&&d&&(t=/0&&void 0!==arguments[0]?arguments[0]:void 0;if(this[MAP]=Object.create(null),e instanceof Headers){const a=e.raw(),p=Object.keys(a);for(const e of p)for(const p of a[e])this.append(e,p)}else if(null==e);else{if("object"!=typeof e)throw new TypeError("Provided initializer must be an object");{const a=e[Symbol.iterator];if(null!=a){if("function"!=typeof a)throw new TypeError("Header pairs must be iterable");const p=[];for(const a of e){if("object"!=typeof a||"function"!=typeof a[Symbol.iterator])throw new TypeError("Each header pair must be iterable");p.push(Array.from(a))}for(const e of p){if(2!==e.length)throw new TypeError("Each header pair must be a name/value tuple");this.append(e[0],e[1])}}else for(const a of Object.keys(e)){const p=e[a];this.append(a,p)}}}}get(e){validateName(e=`${e}`);const a=find(this[MAP],e);return void 0===a?null:this[MAP][a].join(", ")}forEach(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,p=getHeaders(this),t=0;for(;t1&&void 0!==arguments[1]?arguments[1]:"key+value";const p=Object.keys(e[MAP]).sort();return p.map("key"===a?function(e){return e.toLowerCase()}:"value"===a?function(a){return e[MAP][a].join(", ")}:function(a){return[a.toLowerCase(),e[MAP][a].join(", ")]})}Headers.prototype.entries=Headers.prototype[Symbol.iterator],Object.defineProperty(Headers.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(Headers.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});const INTERNAL=Symbol("internal");function createHeadersIterator(e,a){const p=Object.create(HeadersIteratorPrototype);return p[INTERNAL]={target:e,kind:a,index:0},p}const HeadersIteratorPrototype=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==HeadersIteratorPrototype)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[INTERNAL];const a=e.target,p=e.kind,t=e.index,d=getHeaders(a,p);return t>=d.length?{value:void 0,done:!0}:(this[INTERNAL].index=t+1,{value:d[t],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));function exportNodeCompatibleHeaders(e){const a=Object.assign({__proto__:null},e[MAP]),p=find(e[MAP],"Host");return void 0!==p&&(a[p]=a[p][0]),a}function createHeadersLenient(e){const a=new Headers;for(const p of Object.keys(e))if(!invalidTokenRegex.test(p))if(Array.isArray(e[p]))for(const t of e[p])invalidHeaderCharRegex.test(t)||(void 0===a[MAP][p]?a[MAP][p]=[t]:a[MAP][p].push(t));else invalidHeaderCharRegex.test(e[p])||(a[MAP][p]=[e[p]]);return a}Object.defineProperty(HeadersIteratorPrototype,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});const INTERNALS$1=Symbol("Response internals"),STATUS_CODES=http.STATUS_CODES;class Response{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Body.call(this,e,a);const p=a.status||200,t=new Headers(a.headers);if(null!=e&&!t.has("Content-Type")){const a=extractContentType(e);a&&t.append("Content-Type",a)}this[INTERNALS$1]={url:a.url,status:p,statusText:a.statusText||STATUS_CODES[p],headers:t,counter:a.counter}}get url(){return this[INTERNALS$1].url||""}get status(){return this[INTERNALS$1].status}get ok(){return this[INTERNALS$1].status>=200&&this[INTERNALS$1].status<300}get redirected(){return this[INTERNALS$1].counter>0}get statusText(){return this[INTERNALS$1].statusText}get headers(){return this[INTERNALS$1].headers}clone(){return new Response(clone(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}}Body.mixIn(Response.prototype),Object.defineProperties(Response.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}}),Object.defineProperty(Response.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});const INTERNALS$2=Symbol("Request internals"),URL$1=Url.URL||publicApi.URL,parse_url=Url.parse,format_url=Url.format;function parseURL(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new URL$1(e).toString()),parse_url(e)}const streamDestructionSupported="destroy"in Stream.Readable.prototype;function isRequest(e){return"object"==typeof e&&"object"==typeof e[INTERNALS$2]}function isAbortSignal(e){const a=e&&"object"==typeof e&&Object.getPrototypeOf(e);return!(!a||"AbortSignal"!==a.constructor.name)}class Request{constructor(e){let a,p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};isRequest(e)?a=parseURL(e.url):(a=e&&e.href?parseURL(e.href):parseURL(`${e}`),e={});let t=p.method||e.method||"GET";if(t=t.toUpperCase(),(null!=p.body||isRequest(e)&&null!==e.body)&&("GET"===t||"HEAD"===t))throw new TypeError("Request with GET/HEAD method cannot have body");let d=null!=p.body?p.body:isRequest(e)&&null!==e.body?clone(e):null;Body.call(this,d,{timeout:p.timeout||e.timeout||0,size:p.size||e.size||0});const i=new Headers(p.headers||e.headers||{});if(null!=d&&!i.has("Content-Type")){const e=extractContentType(d);e&&i.append("Content-Type",e)}let r=isRequest(e)?e.signal:null;if("signal"in p&&(r=p.signal),null!=r&&!isAbortSignal(r))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[INTERNALS$2]={method:t,redirect:p.redirect||e.redirect||"follow",headers:i,parsedURL:a,signal:r},this.follow=void 0!==p.follow?p.follow:void 0!==e.follow?e.follow:20,this.compress=void 0!==p.compress?p.compress:void 0===e.compress||e.compress,this.counter=p.counter||e.counter||0,this.agent=p.agent||e.agent}get method(){return this[INTERNALS$2].method}get url(){return format_url(this[INTERNALS$2].parsedURL)}get headers(){return this[INTERNALS$2].headers}get redirect(){return this[INTERNALS$2].redirect}get signal(){return this[INTERNALS$2].signal}clone(){return new Request(this)}}function getNodeRequestOptions(e){const a=e[INTERNALS$2].parsedURL,p=new Headers(e[INTERNALS$2].headers);if(p.has("Accept")||p.set("Accept","*/*"),!a.protocol||!a.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(a.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof Stream.Readable&&!streamDestructionSupported)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let t=null;if(null==e.body&&/^(POST|PUT)$/i.test(e.method)&&(t="0"),null!=e.body){const a=getTotalBytes(e);"number"==typeof a&&(t=String(a))}t&&p.set("Content-Length",t),p.has("User-Agent")||p.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!p.has("Accept-Encoding")&&p.set("Accept-Encoding","gzip,deflate");let d=e.agent;return"function"==typeof d&&(d=d(a)),p.has("Connection")||d||p.set("Connection","close"),Object.assign({},a,{method:e.method,headers:exportNodeCompatibleHeaders(p),agent:d})}function AbortError(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}Body.mixIn(Request.prototype),Object.defineProperty(Request.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(Request.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}}),AbortError.prototype=Object.create(Error.prototype),AbortError.prototype.constructor=AbortError,AbortError.prototype.name="AbortError";const URL$1$1=Url.URL||publicApi.URL,PassThrough$1=Stream.PassThrough,isDomainOrSubdomain=function(e,a){const p=new URL$1$1(a).hostname,t=new URL$1$1(e).hostname;return p===t||"."===p[p.length-t.length-1]&&p.endsWith(t)};function fetch$1(e,a){if(!fetch$1.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return Body.Promise=fetch$1.Promise,new fetch$1.Promise((function(p,t){const d=new Request(e,a),i=getNodeRequestOptions(d),r=("https:"===i.protocol?https:http).request,n=d.signal;let s=null;const o=function(){let e=new AbortError("The user aborted a request.");t(e),d.body&&d.body instanceof Stream.Readable&&d.body.destroy(e),s&&s.body&&s.body.emit("error",e)};if(n&&n.aborted)return void o();const l=function(){o(),c()},m=r(i);let u;function c(){m.abort(),n&&n.removeEventListener("abort",l),clearTimeout(u)}n&&n.addEventListener("abort",l),d.timeout&&m.once("socket",(function(e){u=setTimeout((function(){t(new FetchError(`network timeout at: ${d.url}`,"request-timeout")),c()}),d.timeout)})),m.on("error",(function(e){t(new FetchError(`request to ${d.url} failed, reason: ${e.message}`,"system",e)),c()})),m.on("response",(function(e){clearTimeout(u);const a=createHeadersLenient(e.headers);if(fetch$1.isRedirect(e.statusCode)){const i=a.get("Location");let r=null;try{r=null===i?null:new URL$1$1(i,d.url).toString()}catch(e){if("manual"!==d.redirect)return t(new FetchError(`uri requested responds with an invalid redirect URL: ${i}`,"invalid-redirect")),void c()}switch(d.redirect){case"error":return t(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${d.url}`,"no-redirect")),void c();case"manual":if(null!==r)try{a.set("Location",r)}catch(e){t(e)}break;case"follow":if(null===r)break;if(d.counter>=d.follow)return t(new FetchError(`maximum redirect reached at: ${d.url}`,"max-redirect")),void c();const i={headers:new Headers(d.headers),follow:d.follow,counter:d.counter+1,agent:d.agent,compress:d.compress,method:d.method,body:d.body,signal:d.signal,timeout:d.timeout,size:d.size};if(!isDomainOrSubdomain(d.url,r))for(const e of["authorization","www-authenticate","cookie","cookie2"])i.headers.delete(e);return 303!==e.statusCode&&d.body&&null===getTotalBytes(d)?(t(new FetchError("Cannot follow redirect with body being a readable stream","unsupported-redirect")),void c()):(303!==e.statusCode&&(301!==e.statusCode&&302!==e.statusCode||"POST"!==d.method)||(i.method="GET",i.body=void 0,i.headers.delete("content-length")),p(fetch$1(new Request(r,i))),void c())}}e.once("end",(function(){n&&n.removeEventListener("abort",l)}));let i=e.pipe(new PassThrough$1);const r={url:d.url,status:e.statusCode,statusText:e.statusMessage,headers:a,size:d.size,timeout:d.timeout,counter:d.counter},o=a.get("Content-Encoding");if(!d.compress||"HEAD"===d.method||null===o||204===e.statusCode||304===e.statusCode)return s=new Response(i,r),void p(s);const m={flush:zlib.Z_SYNC_FLUSH,finishFlush:zlib.Z_SYNC_FLUSH};if("gzip"==o||"x-gzip"==o)return i=i.pipe(zlib.createGunzip(m)),s=new Response(i,r),void p(s);if("deflate"!=o&&"x-deflate"!=o){if("br"==o&&"function"==typeof zlib.createBrotliDecompress)return i=i.pipe(zlib.createBrotliDecompress()),s=new Response(i,r),void p(s);s=new Response(i,r),p(s)}else{e.pipe(new PassThrough$1).once("data",(function(e){i=8==(15&e[0])?i.pipe(zlib.createInflate()):i.pipe(zlib.createInflateRaw()),s=new Response(i,r),p(s)}))}})),writeToStream(m,d)}))}fetch$1.isRedirect=function(e){return 301===e||302===e||303===e||307===e||308===e},fetch$1.Promise=global.Promise;var lib=Object.freeze({__proto__:null,default:fetch$1,Headers:Headers,Request:Request,Response:Response,FetchError:FetchError}),require$$0=getAugmentedNamespace(unfetch_module$1),require$$1=getAugmentedNamespace(lib);function r(e){return e&&e.default||e}var isomorphicUnfetch=commonjsGlobal.fetch=commonjsGlobal.fetch||("undefined"==typeof process?r(require$$0):function(e,a){return r(require$$1)(String(e).replace(/^\/\//g,"https://"),a)}),urls={rest:{beta:"https://data.alpaca.markets/v1beta1",account:"https://api.alpaca.markets/v2",market_data_v2:"https://data.alpaca.markets/v2",market_data_v1:"https://data.alpaca.markets/v1"},websocket:{account:"wss://api.alpaca.markets/stream",market_data:(e="iex")=>`wss://stream.data.alpaca.markets/v2/${e}`}};function account(e){if(e)try{return Object.assign(Object.assign({},e),{raw:()=>e,buying_power:number(e.buying_power),regt_buying_power:number(e.regt_buying_power),daytrading_buying_power:number(e.daytrading_buying_power),cash:number(e.cash),created_at:new Date(e.created_at),portfolio_value:number(e.portfolio_value),multiplier:number(e.multiplier),equity:number(e.equity),last_equity:number(e.last_equity),long_market_value:number(e.long_market_value),short_market_value:number(e.short_market_value),initial_margin:number(e.initial_margin),maintenance_margin:number(e.maintenance_margin),last_maintenance_margin:number(e.last_maintenance_margin),sma:number(e.sma),status:e.status})}catch(e){throw new Error(`Account parsing failed. ${e.message}`)}}function clock(e){if(e)try{return{raw:()=>e,timestamp:new Date(e.timestamp),is_open:e.is_open,next_open:new Date(e.next_open),next_close:new Date(e.next_close)}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function order(e){if(e)try{return Object.assign(Object.assign({},e),{raw:()=>e,created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),submitted_at:new Date(e.submitted_at),filled_at:new Date(e.filled_at),expired_at:new Date(e.expired_at),canceled_at:new Date(e.canceled_at),failed_at:new Date(e.failed_at),replaced_at:new Date(e.replaced_at),qty:number(e.qty),filled_qty:number(e.filled_qty),type:e.type,side:e.side,time_in_force:e.time_in_force,limit_price:number(e.limit_price),stop_price:number(e.stop_price),filled_avg_price:number(e.filled_avg_price),status:e.status,legs:orders(e.legs),trail_price:number(e.trail_price),trail_percent:number(e.trail_percent),hwm:number(e.hwm),order_class:e.order_class})}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function orders(e){return e?e.map((e=>order(e))):void 0}function canceled_order(e){if(!e)return;let a=e.body;delete e.body;try{return Object.assign(Object.assign({},e),{order:Object.assign(Object.assign({},a),{raw:()=>a,created_at:new Date(a.created_at),updated_at:new Date(a.updated_at),submitted_at:new Date(a.submitted_at),filled_at:new Date(a.filled_at),expired_at:new Date(a.expired_at),canceled_at:new Date(a.canceled_at),failed_at:new Date(a.failed_at),replaced_at:new Date(a.replaced_at),qty:number(a.qty),filled_qty:number(a.filled_qty),type:a.type,side:a.side,time_in_force:a.time_in_force,limit_price:number(a.limit_price),stop_price:number(a.stop_price),filled_avg_price:number(a.filled_avg_price),status:a.status,legs:orders(a.legs),trail_price:number(a.trail_price),trail_percent:number(a.trail_percent),hwm:number(a.hwm),order_class:a.order_class})})}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function canceled_orders(e){return e?e.map((e=>canceled_order(e))):void 0}function position(e){if(e)try{return Object.assign(Object.assign({},e),{raw:()=>e,avg_entry_price:number(e.avg_entry_price),qty:number(e.qty),side:e.side,market_value:number(e.market_value),cost_basis:number(e.cost_basis),unrealized_pl:number(e.unrealized_pl),unrealized_plpc:number(e.unrealized_plpc),unrealized_intraday_pl:number(e.unrealized_intraday_pl),unrealized_intraday_plpc:number(e.unrealized_intraday_plpc),current_price:number(e.current_price),lastday_price:number(e.lastday_price),change_today:number(e.change_today)})}catch(e){throw new Error(`Position parsing failed. ${e.message}`)}}function positions(e){return e?e.map((e=>position(e))):void 0}function tradeActivity(e){if(e)try{return Object.assign(Object.assign({},e),{raw:()=>e,cum_qty:number(e.cum_qty),leaves_qty:number(e.leaves_qty),price:number(e.price),qty:number(e.qty),side:e.side,type:e.type})}catch(e){throw new Error(`TradeActivity parsing failed. ${e.message}`)}}function nonTradeActivity(e){if(e)try{return Object.assign(Object.assign({},e),{raw:()=>e,net_amount:number(e.net_amount),qty:number(e.qty),per_share_amount:number(e.per_share_amount)})}catch(e){throw new Error(`NonTradeActivity parsing failed. ${e.message}`)}}function activities(e){if(e)try{return e.map((e=>"FILL"===e.activity_type?tradeActivity(e):nonTradeActivity(e)))}catch(e){throw new Error(`Activity parsing failed. ${e.message}`)}}function pageOfTrades(e){if(e)try{return{raw:()=>e,trades:(null==e.trades?[]:e.trades).map((e=>Object.assign(Object.assign({raw:()=>e},e),{t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function pageOfQuotes(e){if(e)try{return{raw:()=>e,quotes:(null==e.quotes?[]:e.quotes).map((e=>Object.assign(Object.assign({raw:()=>e},e),{t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function pageOfBars(e){if(e)try{return{raw:()=>e,bars:(null==e.bars?[]:e.bars).map((e=>Object.assign(Object.assign({raw:()=>e},e),{t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function snapshot(e){if(e)try{return Object.assign(Object.assign({},e),{raw:()=>e,latestTrade:e.latestTrade?Object.assign(Object.assign({},e.latestTrade),{t:new Date(e.latestTrade.t)}):null,latestQuote:e.latestQuote?Object.assign(Object.assign({},e.latestQuote),{t:new Date(e.latestQuote.t)}):null,minuteBar:e.minuteBar?Object.assign(Object.assign({},e.minuteBar),{t:new Date(e.minuteBar.t)}):null,dailyBar:e.dailyBar?Object.assign(Object.assign({},e.dailyBar),{t:new Date(e.dailyBar.t)}):null,prevDailyBar:e.prevDailyBar?Object.assign(Object.assign({},e.prevDailyBar),{t:new Date(e.prevDailyBar.t)}):null})}catch(e){throw new Error(`Snapshot parsing failed "${e.message}"`)}}function snapshots(e){let a={};for(let[p,t]of Object.entries(e))a[p]=snapshot(t);return a}function number(e){if(void 0===e||null==e)return e;const a=parseFloat(e);return Number.isNaN(a)?null:a}function trade_update(e){if(e)return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({raw:()=>e,event:e.event,execution_id:e.execution_id,order:order(e.order)},e.event_id&&{event_id:number(e.event_id)}),e.at&&{at:new Date(e.at)}),e.timestamp&&{timestamp:new Date(e.timestamp)}),e.position_qty&&{position_qty:number(e.position_qty)}),e.price&&{price:number(e.price)}),e.qty&&{qty:number(e.qty)})}var parse$3={account:account,activities:activities,clock:clock,nonTradeActivity:nonTradeActivity,order:order,orders:orders,canceled_orders:canceled_orders,position:position,positions:positions,tradeActivity:tradeActivity,pageOfTrades:pageOfTrades,pageOfQuotes:pageOfQuotes,pageOfBars:pageOfBars,snapshot:snapshot,snapshots:snapshots,trade_update:trade_update};const unifetch="undefined"!=typeof fetch?fetch:isomorphicUnfetch;class AlpacaClient{constructor(e){if(this.params=e,this.limiter=new lib$3({reservoir:200,reservoirRefreshAmount:200,reservoirRefreshInterval:6e4,maxConcurrent:1,minTime:200}),"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),"access_token"in e.credentials&&("key"in e.credentials||"secret"in e.credentials))throw new Error("can't create client with both default and oauth credentials")}isAuthenticated(){return __awaiter(this,void 0,void 0,(function*(){try{return yield this.getAccount(),!0}catch(e){return!1}}))}getAccount(){return __awaiter(this,void 0,void 0,(function*(){return parse$3.account(yield this.request({method:"GET",url:`${urls.rest.account}/account`}))}))}getOrder(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.order(yield this.request({method:"GET",url:`${urls.rest.account}/orders/${e.order_id||e.client_order_id}`,data:{nested:e.nested}}))}))}getOrders(e={}){return __awaiter(this,void 0,void 0,(function*(){return parse$3.orders(yield this.request({method:"GET",url:`${urls.rest.account}/orders`,data:Object.assign(Object.assign({},e),{symbols:e.symbols?e.symbols.join(","):void 0})}))}))}placeOrder(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.order(yield this.request({method:"POST",url:`${urls.rest.account}/orders`,data:e}))}))}replaceOrder(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.order(yield this.request({method:"PATCH",url:`${urls.rest.account}/orders/${e.order_id}`,data:e}))}))}cancelOrder(e){return this.request({method:"DELETE",url:`${urls.rest.account}/orders/${e.order_id}`,isJSON:!1})}cancelOrders(){return __awaiter(this,void 0,void 0,(function*(){return parse$3.canceled_orders(yield this.request({method:"DELETE",url:`${urls.rest.account}/orders`}))}))}getPosition(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.position(yield this.request({method:"GET",url:`${urls.rest.account}/positions/${e.symbol}`}))}))}getPositions(){return __awaiter(this,void 0,void 0,(function*(){return parse$3.positions(yield this.request({method:"GET",url:`${urls.rest.account}/positions`}))}))}closePosition(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.order(yield this.request({method:"DELETE",url:`${urls.rest.account}/positions/${e.symbol}`,data:e}))}))}closePositions(e){var a;return __awaiter(this,void 0,void 0,(function*(){return parse$3.orders(yield this.request({method:"DELETE",url:`${urls.rest.account}/positions?cancel_orders=${JSON.stringify(null!==(a=e.cancel_orders)&&void 0!==a&&a)}`}))}))}getAsset(e){return this.request({method:"GET",url:`${urls.rest.account}/assets/${e.asset_id_or_symbol}`})}getAssets(e){return this.request({method:"GET",url:`${urls.rest.account}/assets`,data:e})}getWatchlist(e){return this.request({method:"GET",url:`${urls.rest.account}/watchlists/${e.uuid}`})}getWatchlists(){return this.request({method:"GET",url:`${urls.rest.account}/watchlists`})}createWatchlist(e){return this.request({method:"POST",url:`${urls.rest.account}/watchlists`,data:e})}updateWatchlist(e){return this.request({method:"PUT",url:`${urls.rest.account}/watchlists/${e.uuid}`,data:e})}addToWatchlist(e){return this.request({method:"POST",url:`${urls.rest.account}/watchlists/${e.uuid}`,data:e})}removeFromWatchlist(e){return this.request({method:"DELETE",url:`${urls.rest.account}/watchlists/${e.uuid}/${e.symbol}`})}deleteWatchlist(e){return this.request({method:"DELETE",url:`${urls.rest.account}/watchlists/${e.uuid}`})}getCalendar(e){return this.request({method:"GET",url:`${urls.rest.account}/calendar`,data:e})}getNews(e){return this.request({method:"GET",url:`${urls.rest.beta}/news`,data:e})}getClock(){return __awaiter(this,void 0,void 0,(function*(){return parse$3.clock(yield this.request({method:"GET",url:`${urls.rest.account}/clock`}))}))}getAccountConfigurations(){return this.request({method:"GET",url:`${urls.rest.account}/account/configurations`})}updateAccountConfigurations(e){return this.request({method:"PATCH",url:`${urls.rest.account}/account/configurations`,data:e})}getAccountActivities(e){return __awaiter(this,void 0,void 0,(function*(){return e.activity_types&&Array.isArray(e.activity_types)&&(e.activity_types=e.activity_types.join(",")),parse$3.activities(yield this.request({method:"GET",url:`${urls.rest.account}/account/activities${e.activity_type?"/".concat(e.activity_type):""}`,data:Object.assign(Object.assign({},e),{activity_type:void 0})}))}))}getPortfolioHistory(e){return this.request({method:"GET",url:`${urls.rest.account}/account/portfolio/history`,data:e})}getBars_v1(e){return __awaiter(this,void 0,void 0,(function*(){const a=Object.assign(Object.assign({},e),{symbols:e.symbols.join(",")});return yield this.request({method:"GET",url:`${urls.rest.market_data_v1}/bars/${e.timeframe}`,data:a})}))}getLastTrade_v1(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.request({method:"GET",url:`${urls.rest.market_data_v1}/last/stocks/${e.symbol}`})}))}getLastQuote_v1(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.request({method:"GET",url:`${urls.rest.market_data_v1}/last_quote/stocks/${e.symbol}`})}))}getTrades(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.pageOfTrades(yield this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/trades`,data:Object.assign(Object.assign({},e),{symbol:void 0})}))}))}getQuotes(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.pageOfQuotes(yield this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/quotes`,data:Object.assign(Object.assign({},e),{symbol:void 0})}))}))}getBars(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.pageOfBars(yield this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/bars`,data:Object.assign(Object.assign({},e),{symbol:void 0})}))}))}getSnapshot(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.snapshot(yield this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/snapshot`}))}))}getSnapshots(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.snapshots(yield this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/snapshots?symbols=${e.symbols.join(",")}`}))}))}request(e){return __awaiter(this,void 0,void 0,(function*(){let a={};"access_token"in this.params.credentials?a.Authorization=`Bearer ${this.params.credentials.access_token}`:(a["APCA-API-KEY-ID"]=this.params.credentials.key,a["APCA-API-SECRET-KEY"]=this.params.credentials.secret),this.params.credentials.paper&&(e.url=e.url.replace("api.","paper-api."));let p="";if(e.data){for(let[a,p]of Object.entries(e.data))p instanceof Date&&(e.data[a]=p.toISOString());["POST","PATCH","PUT"].includes(e.method)||(p="?".concat(lib$2.stringify(e.data)),e.data=void 0)}const t=()=>unifetch(e.url.concat(p),{method:e.method,headers:a,body:JSON.stringify(e.data)}),d=this.params.rate_limit?()=>this.limiter.schedule(t):t;let i,r={};try{if(i=yield d(),null!=e.isJSON&&!e.isJSON)return i.ok;r=yield i.json()}catch(e){throw console.error(e),r}if("code"in r||"message"in r)throw r;return r}))}}var constants={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),EMPTY_BUFFER:Buffer.alloc(0),NOOP:()=>{}},runtimeRequire="function"==typeof __webpack_require__?__non_webpack_require__:commonjsRequire,vars=process.config&&process.config.variables||{},prebuildsOnly=!!process.env.PREBUILDS_ONLY,abi=process.versions.modules,runtime=isElectron()?"electron":"node",arch=os.arch(),platform=os.platform(),libc=process.env.LIBC||(isAlpine(platform)?"musl":"glibc"),armv=process.env.ARM_VERSION||("arm64"===arch?"8":vars.arm_version)||"",uv=(process.versions.uv||"").split(".")[0],nodeGypBuild=load;function load(e){return runtimeRequire(load.path(e))}function readdirSync(e){try{return fs.readdirSync(e)}catch(e){return[]}}function getFirst(e,a){var p=readdirSync(e).filter(a);return p[0]&&path.join(e,p[0])}function matchBuild(e){return/\.node$/.test(e)}function parseTags(e){var a=e.split("."),p={file:e,specificity:0};if("node"===a.pop()){for(var t=0;tp.specificity?-1:1:0}}function isElectron(){return!(!process.versions||!process.versions.electron)||(!!process.env.ELECTRON_RUN_AS_NODE||"undefined"!=typeof window&&window.process&&"renderer"===window.process.type)}function isAlpine(e){return"linux"===e&&fs.existsSync("/etc/alpine-release")}load.path=function(e){e=path.resolve(e||".");try{var a=runtimeRequire(path.join(e,"package.json")).name.toUpperCase().replace(/-/g,"_");process.env[a+"_PREBUILD"]&&(e=process.env[a+"_PREBUILD"])}catch(e){}if(!prebuildsOnly){var p=getFirst(path.join(e,"build/Release"),matchBuild);if(p)return p;var t=getFirst(path.join(e,"build/Debug"),matchBuild);if(t)return t}var d=n(e);if(d)return d;var i=n(path.dirname(process.execPath));if(i)return i;var r=["platform="+platform,"arch="+arch,"runtime="+runtime,"abi="+abi,"uv="+uv,armv?"armv="+armv:"","libc="+libc,"node="+process.versions.node,process.versions&&process.versions.electron?"electron="+process.versions.electron:"","function"==typeof __webpack_require__?"webpack=true":""].filter(Boolean).join(" ");throw new Error("No native build was found for "+r+"\n loaded from: "+e+"\n");function n(e){var a=path.join(e,"prebuilds",platform+"-"+arch),p=readdirSync(a).map(parseTags).filter(matchTags(runtime,abi)).sort(compareTags(runtime))[0];if(p)return path.join(a,p.file)}},load.parseTags=parseTags,load.matchTags=matchTags,load.compareTags=compareTags;const mask$1=(e,a,p,t,d)=>{for(var i=0;i{const p=e.length;for(var t=0;t{this.pending--,this[kRun]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[kRun]()}[kRun](){if(this.pending!==this.concurrency&&this.jobs.length){const e=this.jobs.shift();this.pending++,e(this[kDone])}}}var limiter=Limiter;const{kStatusCode:kStatusCode$2,NOOP:NOOP$1}=constants,TRAILER=Buffer.from([0,0,255,255]),kPerMessageDeflate=Symbol("permessage-deflate"),kTotalLength=Symbol("total-length"),kCallback=Symbol("callback"),kBuffers=Symbol("buffers"),kError=Symbol("error");let zlibLimiter;class PerMessageDeflate{constructor(e,a,p){if(this._maxPayload=0|p,this._options=e||{},this._threshold=void 0!==this._options.threshold?this._options.threshold:1024,this._isServer=!!a,this._deflate=null,this._inflate=null,this.params=null,!zlibLimiter){const e=void 0!==this._options.concurrencyLimit?this._options.concurrencyLimit:10;zlibLimiter=new limiter(e)}}static get extensionName(){return"permessage-deflate"}offer(){const e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:null==this._options.clientMaxWindowBits&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){const e=this._deflate[kCallback];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){const a=this._options,p=e.find((e=>!(!1===a.serverNoContextTakeover&&e.server_no_context_takeover||e.server_max_window_bits&&(!1===a.serverMaxWindowBits||"number"==typeof a.serverMaxWindowBits&&a.serverMaxWindowBits>e.server_max_window_bits)||"number"==typeof a.clientMaxWindowBits&&!e.client_max_window_bits)));if(!p)throw new Error("None of the extension offers can be accepted");return a.serverNoContextTakeover&&(p.server_no_context_takeover=!0),a.clientNoContextTakeover&&(p.client_no_context_takeover=!0),"number"==typeof a.serverMaxWindowBits&&(p.server_max_window_bits=a.serverMaxWindowBits),"number"==typeof a.clientMaxWindowBits?p.client_max_window_bits=a.clientMaxWindowBits:!0!==p.client_max_window_bits&&!1!==a.clientMaxWindowBits||delete p.client_max_window_bits,p}acceptAsClient(e){const a=e[0];if(!1===this._options.clientNoContextTakeover&&a.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(a.client_max_window_bits){if(!1===this._options.clientMaxWindowBits||"number"==typeof this._options.clientMaxWindowBits&&a.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"')}else"number"==typeof this._options.clientMaxWindowBits&&(a.client_max_window_bits=this._options.clientMaxWindowBits);return a}normalizeParams(e){return e.forEach((e=>{Object.keys(e).forEach((a=>{let p=e[a];if(p.length>1)throw new Error(`Parameter "${a}" must have only a single value`);if(p=p[0],"client_max_window_bits"===a){if(!0!==p){const e=+p;if(!Number.isInteger(e)||e<8||e>15)throw new TypeError(`Invalid value for parameter "${a}": ${p}`);p=e}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${a}": ${p}`)}else if("server_max_window_bits"===a){const e=+p;if(!Number.isInteger(e)||e<8||e>15)throw new TypeError(`Invalid value for parameter "${a}": ${p}`);p=e}else{if("client_no_context_takeover"!==a&&"server_no_context_takeover"!==a)throw new Error(`Unknown parameter "${a}"`);if(!0!==p)throw new TypeError(`Invalid value for parameter "${a}": ${p}`)}e[a]=p}))})),e}decompress(e,a,p){zlibLimiter.add((t=>{this._decompress(e,a,((e,a)=>{t(),p(e,a)}))}))}compress(e,a,p){zlibLimiter.add((t=>{this._compress(e,a,((e,a)=>{t(),p(e,a)}))}))}_decompress(e,a,p){const t=this._isServer?"client":"server";if(!this._inflate){const e=`${t}_max_window_bits`,a="number"!=typeof this.params[e]?zlib.Z_DEFAULT_WINDOWBITS:this.params[e];this._inflate=zlib.createInflateRaw({...this._options.zlibInflateOptions,windowBits:a}),this._inflate[kPerMessageDeflate]=this,this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],this._inflate.on("error",inflateOnError),this._inflate.on("data",inflateOnData)}this._inflate[kCallback]=p,this._inflate.write(e),a&&this._inflate.write(TRAILER),this._inflate.flush((()=>{const e=this._inflate[kError];if(e)return this._inflate.close(),this._inflate=null,void p(e);const d=bufferUtil.concat(this._inflate[kBuffers],this._inflate[kTotalLength]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],a&&this.params[`${t}_no_context_takeover`]&&this._inflate.reset()),p(null,d)}))}_compress(e,a,p){const t=this._isServer?"server":"client";if(!this._deflate){const e=`${t}_max_window_bits`,a="number"!=typeof this.params[e]?zlib.Z_DEFAULT_WINDOWBITS:this.params[e];this._deflate=zlib.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:a}),this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],this._deflate.on("error",NOOP$1),this._deflate.on("data",deflateOnData)}this._deflate[kCallback]=p,this._deflate.write(e),this._deflate.flush(zlib.Z_SYNC_FLUSH,(()=>{if(!this._deflate)return;let e=bufferUtil.concat(this._deflate[kBuffers],this._deflate[kTotalLength]);a&&(e=e.slice(0,e.length-4)),this._deflate[kCallback]=null,this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],a&&this.params[`${t}_no_context_takeover`]&&this._deflate.reset(),p(null,e)}))}}var permessageDeflate=PerMessageDeflate;function deflateOnData(e){this[kBuffers].push(e),this[kTotalLength]+=e.length}function inflateOnData(e){this[kTotalLength]+=e.length,this[kPerMessageDeflate]._maxPayload<1||this[kTotalLength]<=this[kPerMessageDeflate]._maxPayload?this[kBuffers].push(e):(this[kError]=new RangeError("Max payload size exceeded"),this[kError].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[kError][kStatusCode$2]=1009,this.removeListener("data",inflateOnData),this.reset())}function inflateOnError(e){this[kPerMessageDeflate]._inflate=null,e[kStatusCode$2]=1007,this[kCallback](e)}function isValidUTF8$1(e){const a=e.length;let p=0;for(;p=a||128!=(192&e[p+1])||128!=(192&e[p+2])||224===e[p]&&128==(224&e[p+1])||237===e[p]&&160==(224&e[p+1]))return!1;p+=3}else{if(240!=(248&e[p]))return!1;if(p+3>=a||128!=(192&e[p+1])||128!=(192&e[p+2])||128!=(192&e[p+3])||240===e[p]&&128==(240&e[p+1])||244===e[p]&&e[p+1]>143||e[p]>244)return!1;p+=4}return!0}var fallback=isValidUTF8$1,utf8Validate=createCommonjsModule((function(e){try{e.exports=nodeGypBuild(__dirname)}catch(a){e.exports=fallback}})),validation=createCommonjsModule((function(e){function a(e){return e>=1e3&&e<=1014&&1004!==e&&1005!==e&&1006!==e||e>=3e3&&e<=4999}function p(e){const a=e.length;let p=0;for(;p=a||128!=(192&e[p+1])||128!=(192&e[p+2])||224===e[p]&&128==(224&e[p+1])||237===e[p]&&160==(224&e[p+1]))return!1;p+=3}else{if(240!=(248&e[p]))return!1;if(p+3>=a||128!=(192&e[p+1])||128!=(192&e[p+2])||128!=(192&e[p+3])||240===e[p]&&128==(240&e[p+1])||244===e[p]&&e[p+1]>143||e[p]>244)return!1;p+=4}return!0}try{let t=utf8Validate;"object"==typeof t&&(t=t.Validation.isValidUTF8),e.exports={isValidStatusCode:a,isValidUTF8:e=>e.length<150?p(e):t(e)}}catch(t){e.exports={isValidStatusCode:a,isValidUTF8:p}}}));const{Writable:Writable}=Stream,{BINARY_TYPES:BINARY_TYPES$1,EMPTY_BUFFER:EMPTY_BUFFER$2,kStatusCode:kStatusCode$1,kWebSocket:kWebSocket$2}=constants,{concat:concat,toArrayBuffer:toArrayBuffer,unmask:unmask}=bufferUtil,{isValidStatusCode:isValidStatusCode$1,isValidUTF8:isValidUTF8}=validation,GET_INFO=0,GET_PAYLOAD_LENGTH_16=1,GET_PAYLOAD_LENGTH_64=2,GET_MASK=3,GET_DATA=4,INFLATING=5;class Receiver extends Writable{constructor(e,a,p,t){super(),this._binaryType=e||BINARY_TYPES$1[0],this[kWebSocket$2]=void 0,this._extensions=a||{},this._isServer=!!p,this._maxPayload=0|t,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=GET_INFO,this._loop=!1}_write(e,a,p){if(8===this._opcode&&this._state==GET_INFO)return p();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(p)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e=p.length?a.set(this._buffers.shift(),t):(a.set(new Uint8Array(p.buffer,p.byteOffset,e),t),this._buffers[0]=p.slice(e)),e-=p.length}while(e>0);return a}startLoop(e){let a;this._loop=!0;do{switch(this._state){case GET_INFO:a=this.getInfo();break;case GET_PAYLOAD_LENGTH_16:a=this.getPayloadLength16();break;case GET_PAYLOAD_LENGTH_64:a=this.getPayloadLength64();break;case GET_MASK:this.getMask();break;case GET_DATA:a=this.getData(e);break;default:return void(this._loop=!1)}}while(this._loop);e(a)}getInfo(){if(this._bufferedBytes<2)return void(this._loop=!1);const e=this.consume(2);if(0!=(48&e[0]))return this._loop=!1,error(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");const a=64==(64&e[0]);if(a&&!this._extensions[permessageDeflate.extensionName])return this._loop=!1,error(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(this._fin=128==(128&e[0]),this._opcode=15&e[0],this._payloadLength=127&e[1],0===this._opcode){if(a)return this._loop=!1,error(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(!this._fragmented)return this._loop=!1,error(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented)return this._loop=!1,error(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");this._compressed=a}else{if(!(this._opcode>7&&this._opcode<11))return this._loop=!1,error(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");if(!this._fin)return this._loop=!1,error(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");if(a)return this._loop=!1,error(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(this._payloadLength>125)return this._loop=!1,error(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH")}if(this._fin||this._fragmented||(this._fragmented=this._opcode),this._masked=128==(128&e[1]),this._isServer){if(!this._masked)return this._loop=!1,error(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK")}else if(this._masked)return this._loop=!1,error(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");if(126===this._payloadLength)this._state=GET_PAYLOAD_LENGTH_16;else{if(127!==this._payloadLength)return this.haveLength();this._state=GET_PAYLOAD_LENGTH_64}}getPayloadLength16(){if(!(this._bufferedBytes<2))return this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength();this._loop=!1}getPayloadLength64(){if(this._bufferedBytes<8)return void(this._loop=!1);const e=this.consume(8),a=e.readUInt32BE(0);return a>Math.pow(2,21)-1?(this._loop=!1,error(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH")):(this._payloadLength=a*Math.pow(2,32)+e.readUInt32BE(4),this.haveLength())}haveLength(){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0))return this._loop=!1,error(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");this._masked?this._state=GET_MASK:this._state=GET_DATA}getMask(){this._bufferedBytes<4?this._loop=!1:(this._mask=this.consume(4),this._state=GET_DATA)}getData(e){let a=EMPTY_BUFFER$2;if(this._payloadLength){if(this._bufferedBytes7?this.controlMessage(a):this._compressed?(this._state=INFLATING,void this.decompress(a,e)):(a.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(a)),this.dataMessage())}decompress(e,a){this._extensions[permessageDeflate.extensionName].decompress(e,this._fin,((e,p)=>{if(e)return a(e);if(p.length){if(this._messageLength+=p.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return a(error(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"));this._fragments.push(p)}const t=this.dataMessage();if(t)return a(t);this.startLoop(a)}))}dataMessage(){if(this._fin){const e=this._messageLength,a=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],2===this._opcode){let p;p="nodebuffer"===this._binaryType?concat(a,e):"arraybuffer"===this._binaryType?toArrayBuffer(concat(a,e)):a,this.emit("message",p)}else{const p=concat(a,e);if(!isValidUTF8(p))return this._loop=!1,error(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");this.emit("message",p.toString())}}this._state=GET_INFO}controlMessage(e){if(8===this._opcode)if(this._loop=!1,0===e.length)this.emit("conclude",1005,""),this.end();else{if(1===e.length)return error(RangeError,"invalid payload length 1",!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");{const a=e.readUInt16BE(0);if(!isValidStatusCode$1(a))return error(RangeError,`invalid status code ${a}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");const p=e.slice(2);if(!isValidUTF8(p))return error(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");this.emit("conclude",a,p.toString()),this.end()}}else 9===this._opcode?this.emit("ping",e):this.emit("pong",e);this._state=GET_INFO}}var receiver=Receiver;function error(e,a,p,t,d){const i=new e(p?`Invalid WebSocket frame: ${a}`:a);return Error.captureStackTrace(i,error),i.code=d,i[kStatusCode$1]=t,i}const{randomFillSync:randomFillSync}=require$$0$4,{EMPTY_BUFFER:EMPTY_BUFFER$1}=constants,{isValidStatusCode:isValidStatusCode}=validation,{mask:applyMask,toBuffer:toBuffer$1}=bufferUtil,mask=Buffer.alloc(4);class Sender{constructor(e,a){this._extensions=a||{},this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(e,a){const p=a.mask&&a.readOnly;let t=a.mask?6:2,d=e.length;e.length>=65536?(t+=8,d=127):e.length>125&&(t+=2,d=126);const i=Buffer.allocUnsafe(p?e.length+t:t);return i[0]=a.fin?128|a.opcode:a.opcode,a.rsv1&&(i[0]|=64),i[1]=d,126===d?i.writeUInt16BE(e.length,2):127===d&&(i.writeUInt32BE(0,2),i.writeUInt32BE(e.length,6)),a.mask?(randomFillSync(mask,0,4),i[1]|=128,i[t-4]=mask[0],i[t-3]=mask[1],i[t-2]=mask[2],i[t-1]=mask[3],p?(applyMask(e,mask,i,t,e.length),[i]):(applyMask(e,mask,e,0,e.length),[i,e])):[i,e]}close(e,a,p,t){let d;if(void 0===e)d=EMPTY_BUFFER$1;else{if("number"!=typeof e||!isValidStatusCode(e))throw new TypeError("First argument must be a valid error code number");if(void 0===a||""===a)d=Buffer.allocUnsafe(2),d.writeUInt16BE(e,0);else{const p=Buffer.byteLength(a);if(p>123)throw new RangeError("The message must not be greater than 123 bytes");d=Buffer.allocUnsafe(2+p),d.writeUInt16BE(e,0),d.write(a,2)}}this._deflating?this.enqueue([this.doClose,d,p,t]):this.doClose(d,p,t)}doClose(e,a,p){this.sendFrame(Sender.frame(e,{fin:!0,rsv1:!1,opcode:8,mask:a,readOnly:!1}),p)}ping(e,a,p){const t=toBuffer$1(e);if(t.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPing,t,a,toBuffer$1.readOnly,p]):this.doPing(t,a,toBuffer$1.readOnly,p)}doPing(e,a,p,t){this.sendFrame(Sender.frame(e,{fin:!0,rsv1:!1,opcode:9,mask:a,readOnly:p}),t)}pong(e,a,p){const t=toBuffer$1(e);if(t.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPong,t,a,toBuffer$1.readOnly,p]):this.doPong(t,a,toBuffer$1.readOnly,p)}doPong(e,a,p,t){this.sendFrame(Sender.frame(e,{fin:!0,rsv1:!1,opcode:10,mask:a,readOnly:p}),t)}send(e,a,p){const t=toBuffer$1(e),d=this._extensions[permessageDeflate.extensionName];let i=a.binary?2:1,r=a.compress;if(this._firstFragment?(this._firstFragment=!1,r&&d&&(r=t.length>=d._threshold),this._compress=r):(r=!1,i=0),a.fin&&(this._firstFragment=!0),d){const e={fin:a.fin,rsv1:r,opcode:i,mask:a.mask,readOnly:toBuffer$1.readOnly};this._deflating?this.enqueue([this.dispatch,t,this._compress,e,p]):this.dispatch(t,this._compress,e,p)}else this.sendFrame(Sender.frame(t,{fin:a.fin,rsv1:!1,opcode:i,mask:a.mask,readOnly:toBuffer$1.readOnly}),p)}dispatch(e,a,p,t){if(!a)return void this.sendFrame(Sender.frame(e,p),t);const d=this._extensions[permessageDeflate.extensionName];this._bufferedBytes+=e.length,this._deflating=!0,d.compress(e,p.fin,((a,d)=>{if(this._socket.destroyed){const e=new Error("The socket was closed while data was being compressed");"function"==typeof t&&t(e);for(let a=0;a{let p=e[a];return Array.isArray(p)||(p=[p]),p.map((e=>[a].concat(Object.keys(e).map((a=>{let p=e[a];return Array.isArray(p)||(p=[p]),p.map((e=>!0===e?a:`${a}=${e}`)).join("; ")}))).join("; "))).join(", ")})).join(", ")}var extension={format:format$2,parse:parse$2};const{randomBytes:randomBytes,createHash:createHash$1}=require$$0$4,{URL:URL}=Url,{BINARY_TYPES:BINARY_TYPES,EMPTY_BUFFER:EMPTY_BUFFER,GUID:GUID$1,kStatusCode:kStatusCode,kWebSocket:kWebSocket$1,NOOP:NOOP}=constants,{addEventListener:addEventListener,removeEventListener:removeEventListener}=eventTarget,{format:format$1,parse:parse$1}=extension,{toBuffer:toBuffer}=bufferUtil,readyStates=["CONNECTING","OPEN","CLOSING","CLOSED"],protocolVersions=[8,13],closeTimeout=3e4;class WebSocket extends EventEmitter{constructor(e,a,p){super(),this._binaryType=BINARY_TYPES[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._extensions={},this._protocol="",this._readyState=WebSocket.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,null!==e?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,Array.isArray(a)?a=a.join(", "):"object"==typeof a&&null!==a&&(p=a,a=void 0),initAsClient(this,e,a,p)):this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(e){BINARY_TYPES.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get onclose(){}set onclose(e){}get onerror(){}set onerror(e){}get onopen(){}set onopen(e){}get onmessage(){}set onmessage(e){}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,a,p){const t=new receiver(this.binaryType,this._extensions,this._isServer,p);this._sender=new sender(e,this._extensions),this._receiver=t,this._socket=e,t[kWebSocket$1]=this,e[kWebSocket$1]=this,t.on("conclude",receiverOnConclude),t.on("drain",receiverOnDrain),t.on("error",receiverOnError),t.on("message",receiverOnMessage),t.on("ping",receiverOnPing),t.on("pong",receiverOnPong),e.setTimeout(0),e.setNoDelay(),a.length>0&&e.unshift(a),e.on("close",socketOnClose),e.on("data",socketOnData),e.on("end",socketOnEnd),e.on("error",socketOnError$1),this._readyState=WebSocket.OPEN,this.emit("open")}emitClose(){if(!this._socket)return this._readyState=WebSocket.CLOSED,void this.emit("close",this._closeCode,this._closeMessage);this._extensions[permessageDeflate.extensionName]&&this._extensions[permessageDeflate.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=WebSocket.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,a){if(this.readyState!==WebSocket.CLOSED){if(this.readyState===WebSocket.CONNECTING){const e="WebSocket was closed before the connection was established";return abortHandshake$1(this,this._req,e)}this.readyState!==WebSocket.CLOSING?(this._readyState=WebSocket.CLOSING,this._sender.close(e,a,!this._isServer,(e=>{e||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())})),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),closeTimeout)):this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end()}}ping(e,a,p){if(this.readyState===WebSocket.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof e?(p=e,e=a=void 0):"function"==typeof a&&(p=a,a=void 0),"number"==typeof e&&(e=e.toString()),this.readyState===WebSocket.OPEN?(void 0===a&&(a=!this._isServer),this._sender.ping(e||EMPTY_BUFFER,a,p)):sendAfterClose(this,e,p)}pong(e,a,p){if(this.readyState===WebSocket.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof e?(p=e,e=a=void 0):"function"==typeof a&&(p=a,a=void 0),"number"==typeof e&&(e=e.toString()),this.readyState===WebSocket.OPEN?(void 0===a&&(a=!this._isServer),this._sender.pong(e||EMPTY_BUFFER,a,p)):sendAfterClose(this,e,p)}send(e,a,p){if(this.readyState===WebSocket.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof a&&(p=a,a={}),"number"==typeof e&&(e=e.toString()),this.readyState!==WebSocket.OPEN)return void sendAfterClose(this,e,p);const t={binary:"string"!=typeof e,mask:!this._isServer,compress:!0,fin:!0,...a};this._extensions[permessageDeflate.extensionName]||(t.compress=!1),this._sender.send(e||EMPTY_BUFFER,t,p)}terminate(){if(this.readyState!==WebSocket.CLOSED){if(this.readyState===WebSocket.CONNECTING){const e="WebSocket was closed before the connection was established";return abortHandshake$1(this,this._req,e)}this._socket&&(this._readyState=WebSocket.CLOSING,this._socket.destroy())}}}Object.defineProperty(WebSocket,"CONNECTING",{enumerable:!0,value:readyStates.indexOf("CONNECTING")}),Object.defineProperty(WebSocket.prototype,"CONNECTING",{enumerable:!0,value:readyStates.indexOf("CONNECTING")}),Object.defineProperty(WebSocket,"OPEN",{enumerable:!0,value:readyStates.indexOf("OPEN")}),Object.defineProperty(WebSocket.prototype,"OPEN",{enumerable:!0,value:readyStates.indexOf("OPEN")}),Object.defineProperty(WebSocket,"CLOSING",{enumerable:!0,value:readyStates.indexOf("CLOSING")}),Object.defineProperty(WebSocket.prototype,"CLOSING",{enumerable:!0,value:readyStates.indexOf("CLOSING")}),Object.defineProperty(WebSocket,"CLOSED",{enumerable:!0,value:readyStates.indexOf("CLOSED")}),Object.defineProperty(WebSocket.prototype,"CLOSED",{enumerable:!0,value:readyStates.indexOf("CLOSED")}),["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach((e=>{Object.defineProperty(WebSocket.prototype,e,{enumerable:!0})})),["open","error","close","message"].forEach((e=>{Object.defineProperty(WebSocket.prototype,`on${e}`,{enumerable:!0,get(){const a=this.listeners(e);for(let e=0;e{abortHandshake$1(e,u,"Opening handshake has timed out")})),u.on("error",(a=>{null===u||u.aborted||(u=e._req=null,e._readyState=WebSocket.CLOSING,e.emit("error",a),e.emitClose())})),u.on("response",(i=>{const r=i.headers.location,n=i.statusCode;if(r&&d.followRedirects&&n>=300&&n<400){if(++e._redirects>d.maxRedirects)return void abortHandshake$1(e,u,"Maximum redirects exceeded");u.abort();const i=new URL(r,a);initAsClient(e,i,p,t)}else e.emit("unexpected-response",u,i)||abortHandshake$1(e,u,`Unexpected server response: ${i.statusCode}`)})),u.on("upgrade",((a,t,i)=>{if(e.emit("upgrade",a),e.readyState!==WebSocket.CONNECTING)return;u=e._req=null;const r=createHash$1("sha1").update(o+GUID$1).digest("base64");if(a.headers["sec-websocket-accept"]!==r)return void abortHandshake$1(e,t,"Invalid Sec-WebSocket-Accept header");const n=a.headers["sec-websocket-protocol"],s=(p||"").split(/, */);let l;if(!p&&n?l="Server sent a subprotocol but none was requested":p&&!n?l="Server sent no subprotocol":n&&!s.includes(n)&&(l="Server sent an invalid subprotocol"),l)return void abortHandshake$1(e,t,l);n&&(e._protocol=n);const c=a.headers["sec-websocket-extensions"];if(void 0!==c){if(!m){return void abortHandshake$1(e,t,"Server sent a Sec-WebSocket-Extensions header but no extension was requested")}let a;try{a=parse$1(c)}catch(a){return void abortHandshake$1(e,t,"Invalid Sec-WebSocket-Extensions header")}const p=Object.keys(a);if(p.length){if(1!==p.length||p[0]!==permessageDeflate.extensionName){return void abortHandshake$1(e,t,"Server indicated an extension that was not requested")}try{m.accept(a[permessageDeflate.extensionName])}catch(a){return void abortHandshake$1(e,t,"Invalid Sec-WebSocket-Extensions header")}e._extensions[permessageDeflate.extensionName]=m}}e.setSocket(t,i,d.maxPayload)}))}function netConnect(e){return e.path=e.socketPath,net.connect(e)}function tlsConnect(e){return e.path=void 0,e.servername||""===e.servername||(e.servername=net.isIP(e.host)?"":e.host),tls.connect(e)}function abortHandshake$1(e,a,p){e._readyState=WebSocket.CLOSING;const t=new Error(p);Error.captureStackTrace(t,abortHandshake$1),a.setHeader?(a.abort(),a.socket&&!a.socket.destroyed&&a.socket.destroy(),a.once("abort",e.emitClose.bind(e)),e.emit("error",t)):(a.destroy(t),a.once("error",e.emit.bind(e,"error")),a.once("close",e.emitClose.bind(e)))}function sendAfterClose(e,a,p){if(a){const p=toBuffer(a).length;e._socket?e._sender._bufferedBytes+=p:e._bufferedAmount+=p}if(p){p(new Error(`WebSocket is not open: readyState ${e.readyState} (${readyStates[e.readyState]})`))}}function receiverOnConclude(e,a){const p=this[kWebSocket$1];p._socket.removeListener("data",socketOnData),p._socket.resume(),p._closeFrameReceived=!0,p._closeMessage=a,p._closeCode=e,1005===e?p.close():p.close(e,a)}function receiverOnDrain(){this[kWebSocket$1]._socket.resume()}function receiverOnError(e){const a=this[kWebSocket$1];a._socket.removeListener("data",socketOnData),a._socket.resume(),a.close(e[kStatusCode]),a.emit("error",e)}function receiverOnFinish(){this[kWebSocket$1].emitClose()}function receiverOnMessage(e){this[kWebSocket$1].emit("message",e)}function receiverOnPing(e){const a=this[kWebSocket$1];a.pong(e,!a._isServer,NOOP),a.emit("ping",e)}function receiverOnPong(e){this[kWebSocket$1].emit("pong",e)}function socketOnClose(){const e=this[kWebSocket$1];this.removeListener("close",socketOnClose),this.removeListener("end",socketOnEnd),e._readyState=WebSocket.CLOSING,e._socket.read(),e._receiver.end(),this.removeListener("data",socketOnData),this[kWebSocket$1]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",receiverOnFinish),e._receiver.on("finish",receiverOnFinish))}function socketOnData(e){this[kWebSocket$1]._receiver.write(e)||this.pause()}function socketOnEnd(){const e=this[kWebSocket$1];e._readyState=WebSocket.CLOSING,e._receiver.end(),this.end()}function socketOnError$1(){const e=this[kWebSocket$1];this.removeListener("error",socketOnError$1),this.on("error",NOOP),e&&(e._readyState=WebSocket.CLOSING,this.destroy())}const{Duplex:Duplex}=Stream;function emitClose$1(e){e.emit("close")}function duplexOnEnd(){!this.destroyed&&this._writableState.finished&&this.destroy()}function duplexOnError(e){this.removeListener("error",duplexOnError),this.destroy(),0===this.listenerCount("error")&&this.emit("error",e)}function createWebSocketStream(e,a){let p=!0,t=!0;function d(){p&&e._socket.resume()}e.readyState===e.CONNECTING?e.once("open",(function(){e._receiver.removeAllListeners("drain"),e._receiver.on("drain",d)})):(e._receiver.removeAllListeners("drain"),e._receiver.on("drain",d));const i=new Duplex({...a,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",(function(a){i.push(a)||(p=!1,e._socket.pause())})),e.once("error",(function(e){i.destroyed||(t=!1,i.destroy(e))})),e.once("close",(function(){i.destroyed||i.push(null)})),i._destroy=function(a,p){if(e.readyState===e.CLOSED)return p(a),void process.nextTick(emitClose$1,i);let d=!1;e.once("error",(function(e){d=!0,p(e)})),e.once("close",(function(){d||p(a),process.nextTick(emitClose$1,i)})),t&&e.terminate()},i._final=function(a){e.readyState!==e.CONNECTING?null!==e._socket&&(e._socket._writableState.finished?(a(),i._readableState.endEmitted&&i.destroy()):(e._socket.once("finish",(function(){a()})),e.close())):e.once("open",(function(){i._final(a)}))},i._read=function(){e.readyState!==e.OPEN||p||(p=!0,e._receiver._writableState.needDrain||e._socket.resume())},i._write=function(a,p,t){e.readyState!==e.CONNECTING?e.send(a,t):e.once("open",(function(){i._write(a,p,t)}))},i.on("end",duplexOnEnd),i.on("error",duplexOnError),i}var stream=createWebSocketStream;const{createHash:createHash}=require$$0$4,{format:format,parse:parse}=extension,{GUID:GUID,kWebSocket:kWebSocket}=constants,keyRegex=/^[+/0-9A-Za-z]{22}==$/,RUNNING=0,CLOSING=1,CLOSED=2;class WebSocketServer extends EventEmitter{constructor(e,a){if(super(),null==(e={maxPayload:104857600,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,...e}).port&&!e.server&&!e.noServer||null!=e.port&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(null!=e.port?(this._server=http.createServer(((e,a)=>{const p=http.STATUS_CODES[426];a.writeHead(426,{"Content-Length":p.length,"Content-Type":"text/plain"}),a.end(p)})),this._server.listen(e.port,e.host,e.backlog,a)):e.server&&(this._server=e.server),this._server){const e=this.emit.bind(this,"connection");this._removeListeners=addListeners(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(a,p,t)=>{this.handleUpgrade(a,p,t,e)}})}!0===e.perMessageDeflate&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set),this.options=e,this._state=RUNNING}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(e&&this.once("close",e),this._state===CLOSED)return void process.nextTick(emitClose,this);if(this._state===CLOSING)return;if(this._state=CLOSING,this.clients)for(const e of this.clients)e.terminate();const a=this._server;a&&(this._removeListeners(),this._removeListeners=this._server=null,null!=this.options.port)?a.close(emitClose.bind(void 0,this)):process.nextTick(emitClose,this)}shouldHandle(e){if(this.options.path){const a=e.url.indexOf("?");if((-1!==a?e.url.slice(0,a):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,a,p,t){a.on("error",socketOnError);const d=void 0!==e.headers["sec-websocket-key"]&&e.headers["sec-websocket-key"].trim(),i=+e.headers["sec-websocket-version"],r={};if("GET"!==e.method||"websocket"!==e.headers.upgrade.toLowerCase()||!d||!keyRegex.test(d)||8!==i&&13!==i||!this.shouldHandle(e))return abortHandshake(a,400);if(this.options.perMessageDeflate){const p=new permessageDeflate(this.options.perMessageDeflate,!0,this.options.maxPayload);try{const a=parse(e.headers["sec-websocket-extensions"]);a[permessageDeflate.extensionName]&&(p.accept(a[permessageDeflate.extensionName]),r[permessageDeflate.extensionName]=p)}catch(e){return abortHandshake(a,400)}}if(this.options.verifyClient){const n={origin:e.headers[""+(8===i?"sec-websocket-origin":"origin")],secure:!(!e.socket.authorized&&!e.socket.encrypted),req:e};if(2===this.options.verifyClient.length)return void this.options.verifyClient(n,((i,n,s,o)=>{if(!i)return abortHandshake(a,n||401,s,o);this.completeUpgrade(d,r,e,a,p,t)}));if(!this.options.verifyClient(n))return abortHandshake(a,401)}this.completeUpgrade(d,r,e,a,p,t)}completeUpgrade(e,a,p,t,d,i){if(!t.readable||!t.writable)return t.destroy();if(t[kWebSocket])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>RUNNING)return abortHandshake(t,503);const r=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${createHash("sha1").update(e+GUID).digest("base64")}`],n=new websocket(null);let s=p.headers["sec-websocket-protocol"];if(s&&(s=s.split(",").map(trim),s=this.options.handleProtocols?this.options.handleProtocols(s,p):s[0],s&&(r.push(`Sec-WebSocket-Protocol: ${s}`),n._protocol=s)),a[permessageDeflate.extensionName]){const e=a[permessageDeflate.extensionName].params,p=format({[permessageDeflate.extensionName]:[e]});r.push(`Sec-WebSocket-Extensions: ${p}`),n._extensions=a}this.emit("headers",r,p),t.write(r.concat("\r\n").join("\r\n")),t.removeListener("error",socketOnError),n.setSocket(t,d,this.options.maxPayload),this.clients&&(this.clients.add(n),n.on("close",(()=>this.clients.delete(n)))),i(n,p)}}var websocketServer=WebSocketServer;function addListeners(e,a){for(const p of Object.keys(a))e.on(p,a[p]);return function(){for(const p of Object.keys(a))e.removeListener(p,a[p])}}function emitClose(e){e._state=CLOSED,e.emit("close")}function socketOnError(){this.destroy()}function abortHandshake(e,a,p,t){e.writable&&(p=p||http.STATUS_CODES[a],t={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(p),...t},e.write(`HTTP/1.1 ${a} ${http.STATUS_CODES[a]}\r\n`+Object.keys(t).map((e=>`${e}: ${t[e]}`)).join("\r\n")+"\r\n\r\n"+p)),e.removeListener("error",socketOnError),e.destroy()}function trim(e){return e.trim()}websocket.createWebSocketStream=stream,websocket.Server=websocketServer,websocket.Receiver=receiver,websocket.Sender=sender;var ws=websocket,node=ws,eventemitter3=createCommonjsModule((function(e){var a=Object.prototype.hasOwnProperty,p="~";function t(){}function d(e,a,p){this.fn=e,this.context=a,this.once=p||!1}function i(e,a,t,i,r){if("function"!=typeof t)throw new TypeError("The listener must be a function");var n=new d(t,i||e,r),s=p?p+a:a;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],n]:e._events[s].push(n):(e._events[s]=n,e._eventsCount++),e}function r(e,a){0==--e._eventsCount?e._events=new t:delete e._events[a]}function n(){this._events=new t,this._eventsCount=0}Object.create&&(t.prototype=Object.create(null),(new t).__proto__||(p=!1)),n.prototype.eventNames=function(){var e,t,d=[];if(0===this._eventsCount)return d;for(t in e=this._events)a.call(e,t)&&d.push(p?t.slice(1):t);return Object.getOwnPropertySymbols?d.concat(Object.getOwnPropertySymbols(e)):d},n.prototype.listeners=function(e){var a=p?p+e:e,t=this._events[a];if(!t)return[];if(t.fn)return[t.fn];for(var d=0,i=t.length,r=new Array(i);d"undefined"!=typeof Blob&&(e instanceof Blob||"[object Blob]"===Object.prototype.toString.call(e));class AlpacaStream extends eventemitter3{constructor(e){switch(super(),this.params=e,"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),e.type){case"account":this.host=e.credentials.paper?urls.websocket.account.replace("api.","paper-api."):urls.websocket.account;break;case"market_data":this.host=urls.websocket.market_data(this.params.source);break;default:this.host="unknown"}this.connection=new node(this.host),this.connection.onopen=()=>{let a={};switch(this.params.type){case"account":a={action:"authenticate",data:{key_id:e.credentials.key,secret_key:e.credentials.secret}};break;case"market_data":a=Object.assign({action:"auth"},e.credentials)}this.connection.send(JSON.stringify(a)),this.emit("open",this)},this.connection.onclose=()=>this.emit("close",this),this.connection.onmessage=e=>__awaiter(this,void 0,void 0,(function*(){let a=e.data;isBlob(a)?a=yield e.data.text():a instanceof ArrayBuffer&&(a=String.fromCharCode(...new Uint8Array(e.data)));let p=JSON.parse(a);("account"==this.params.type?[p]:p).forEach((e=>{this.emit("message",e),("T"in e&&"authenticated"==e.msg||"stream"in e&&"authorization"==e.stream&&"authorized"==e.data.status)&&(this.authenticated=!0,this.emit("authenticated",this)),"stream"in e&&"trade_updates"==e.stream&&this.emit("trade_updates",parse$3.trade_update(e.data));const a={success:"success",subscription:"subscription",error:"error",t:"trade",q:"quote",b:"bar"};"T"in e&&this.emit(a[e.T.split(".")[0]],e)}))})),this.connection.onerror=e=>{this.emit("error",e)}}getConnection(){return this.connection}subscribe(e,a=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"listen",data:{streams:[e]}}));break;case"market_data":let p={action:"subscribe"};p[e]=a,this.send(JSON.stringify(p))}return this}unsubscribe(e,a=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"unlisten",data:{streams:[e]}}));break;case"market_data":let p={action:"unsubscribe"};p[e]=a,this.send(JSON.stringify(p))}return this}send(e){if(!this.authenticated)throw new Error("not authenticated");return"object"==typeof e&&(e=JSON.stringify(e)),this.connection.send(e),this}}var index={AlpacaClient:AlpacaClient,AlpacaStream:AlpacaStream};export{AlpacaClient,AlpacaStream,index as default}; +import require$$0$3 from"util";import Stream from"stream";import http from"http";import Url from"url";import https from"https";import zlib from"zlib";import EventEmitter from"events";import net from"net";import tls from"tls";import require$$0$4 from"crypto";import fs from"fs";import path from"path";import os from"os";function __awaiter(e,a,p,t){return new(p||(p=Promise))((function(d,i){function r(e){try{s(t.next(e))}catch(e){i(e)}}function n(e){try{s(t.throw(e))}catch(e){i(e)}}function s(e){var a;e.done?d(e.value):(a=e.value,a instanceof p?a:new p((function(e){e(a)}))).then(r,n)}s((t=t.apply(e,a||[])).next())}))}var load$1=function(e,a,p={}){var t,d,i;for(t in a)i=a[t],p[t]=null!=(d=e[t])?d:i;return p},overwrite=function(e,a,p={}){var t,d;for(t in e)d=e[t],void 0!==a[t]&&(p[t]=d);return p},parser$8={load:load$1,overwrite:overwrite},DLList$2;DLList$2=class{constructor(e,a){this.incr=e,this.decr=a,this._first=null,this._last=null,this.length=0}push(e){var a;this.length++,"function"==typeof this.incr&&this.incr(),a={value:e,prev:this._last,next:null},null!=this._last?(this._last.next=a,this._last=a):this._first=this._last=a}shift(){var e;if(null!=this._first)return this.length--,"function"==typeof this.decr&&this.decr(),e=this._first.value,null!=(this._first=this._first.next)?this._first.prev=null:this._last=null,e}first(){if(null!=this._first)return this._first.value}getArray(){var e,a,p;for(e=this._first,p=[];null!=e;)p.push((a=e,e=e.next,a.value));return p}forEachShift(e){var a;for(a=this.shift();null!=a;)e(a),a=this.shift()}debug(){var e,a,p,t,d;for(e=this._first,d=[];null!=e;)d.push((a=e,e=e.next,{value:a.value,prev:null!=(p=a.prev)?p.value:void 0,next:null!=(t=a.next)?t.value:void 0}));return d}};var DLList_1=DLList$2,Events$6;function asyncGeneratorStep$8(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator$8(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep$8(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep$8(i,t,d,r,n,"throw",e)}r(void 0)}))}}Events$6=class{constructor(e){if(this.instance=e,this._events={},null!=this.instance.on||null!=this.instance.once||null!=this.instance.removeAllListeners)throw new Error("An Emitter already exists for this object");this.instance.on=(e,a)=>this._addListener(e,"many",a),this.instance.once=(e,a)=>this._addListener(e,"once",a),this.instance.removeAllListeners=(e=null)=>null!=e?delete this._events[e]:this._events={}}_addListener(e,a,p){var t;return null==(t=this._events)[e]&&(t[e]=[]),this._events[e].push({cb:p,status:a}),this.instance}listenerCount(e){return null!=this._events[e]?this._events[e].length:0}trigger(e,...a){var p=this;return _asyncToGenerator$8((function*(){var t,d;try{if("debug"!==e&&p.trigger("debug",`Event triggered: ${e}`,a),null==p._events[e])return;return p._events[e]=p._events[e].filter((function(e){return"none"!==e.status})),d=p._events[e].map(function(){var e=_asyncToGenerator$8((function*(e){var t,d;if("none"!==e.status){"once"===e.status&&(e.status="none");try{return"function"==typeof(null!=(d="function"==typeof e.cb?e.cb(...a):void 0)?d.then:void 0)?yield d:d}catch(e){return t=e,p.trigger("error",t),null}}}));return function(a){return e.apply(this,arguments)}}()),(yield Promise.all(d)).find((function(e){return null!=e}))}catch(e){return t=e,p.trigger("error",t),null}}))()}};var Events_1=Events$6,DLList$1,Events$5,Queues$1;DLList$1=DLList_1,Events$5=Events_1,Queues$1=class{constructor(e){this.Events=new Events$5(this),this._length=0,this._lists=function(){var a,p,t;for(t=[],a=1,p=e;1<=p?a<=p:a>=p;1<=p?++a:--a)t.push(new DLList$1((()=>this.incr()),(()=>this.decr())));return t}.call(this)}incr(){if(0==this._length++)return this.Events.trigger("leftzero")}decr(){if(0==--this._length)return this.Events.trigger("zero")}push(e){return this._lists[e.options.priority].push(e)}queued(e){return null!=e?this._lists[e].length:this._length}shiftAll(e){return this._lists.forEach((function(a){return a.forEachShift(e)}))}getFirst(e=this._lists){var a,p,t;for(a=0,p=e.length;a0)return t;return[]}shiftLastFrom(e){return this.getFirst(this._lists.slice(e).reverse()).shift()}};var Queues_1=Queues$1,BottleneckError$4;BottleneckError$4=class extends Error{};var BottleneckError_1=BottleneckError$4,BottleneckError$3,DEFAULT_PRIORITY$1,Job$1,NUM_PRIORITIES$1,parser$7;function asyncGeneratorStep$7(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator$7(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep$7(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep$7(i,t,d,r,n,"throw",e)}r(void 0)}))}}NUM_PRIORITIES$1=10,DEFAULT_PRIORITY$1=5,parser$7=parser$8,BottleneckError$3=BottleneckError_1,Job$1=class{constructor(e,a,p,t,d,i,r,n){this.task=e,this.args=a,this.rejectOnDrop=d,this.Events=i,this._states=r,this.Promise=n,this.options=parser$7.load(p,t),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===t.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise(((e,a)=>{this._resolve=e,this._reject=a})),this.retryCount=0}_sanitizePriority(e){var a;return(a=~~e!==e?DEFAULT_PRIORITY$1:e)<0?0:a>NUM_PRIORITIES$1-1?NUM_PRIORITIES$1-1:a}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:e,message:a="This job has been dropped by Bottleneck"}={}){return!!this._states.remove(this.options.id)&&(this.rejectOnDrop&&this._reject(null!=e?e:new BottleneckError$3(a)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0)}_assertStatus(e){var a;if((a=this._states.jobStatus(this.options.id))!==e&&("DONE"!==e||null!==a))throw new BottleneckError$3(`Invalid job status ${a}, expected ${e}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(e,a){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:e,blocked:a})}doRun(){return 0===this.retryCount?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}doExecute(e,a,p,t){var d=this;return _asyncToGenerator$7((function*(){var i,r,n;0===d.retryCount?(d._assertStatus("RUNNING"),d._states.next(d.options.id)):d._assertStatus("EXECUTING"),r={args:d.args,options:d.options,retryCount:d.retryCount},d.Events.trigger("executing",r);try{if(n=yield null!=e?e.schedule(d.options,d.task,...d.args):d.task(...d.args),a())return d.doDone(r),yield t(d.options,r),d._assertStatus("DONE"),d._resolve(n)}catch(e){return i=e,d._onFailure(i,r,a,p,t)}}))()}doExpire(e,a,p){var t,d;return this._states.jobStatus("RUNNING"===this.options.id)&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),d={args:this.args,options:this.options,retryCount:this.retryCount},t=new BottleneckError$3(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(t,d,e,a,p)}_onFailure(e,a,p,t,d){var i=this;return _asyncToGenerator$7((function*(){var r,n;if(p())return null!=(r=yield i.Events.trigger("failed",e,a))?(n=~~r,i.Events.trigger("retry",`Retrying ${i.options.id} after ${n} ms`,a),i.retryCount++,t(n)):(i.doDone(a),yield d(i.options,a),i._assertStatus("DONE"),i._reject(e))}))()}doDone(e){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",e)}};var Job_1=Job$1,BottleneckError$2,LocalDatastore$1,parser$6;function asyncGeneratorStep$6(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator$6(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep$6(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep$6(i,t,d,r,n,"throw",e)}r(void 0)}))}}parser$6=parser$8,BottleneckError$2=BottleneckError_1,LocalDatastore$1=class{constructor(e,a,p){this.instance=e,this.storeOptions=a,this.clientId=this.instance._randomIndex(),parser$6.load(p,p,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var e;return null==this.heartbeat&&(null!=this.storeOptions.reservoirRefreshInterval&&null!=this.storeOptions.reservoirRefreshAmount||null!=this.storeOptions.reservoirIncreaseInterval&&null!=this.storeOptions.reservoirIncreaseAmount)?"function"==typeof(e=this.heartbeat=setInterval((()=>{var e,a,p,t,d;if(t=Date.now(),null!=this.storeOptions.reservoirRefreshInterval&&t>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=t,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),null!=this.storeOptions.reservoirIncreaseInterval&&t>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval){var i=this.storeOptions;if(e=i.reservoirIncreaseAmount,p=i.reservoirIncreaseMaximum,d=i.reservoir,this._lastReservoirIncrease=t,(a=null!=p?Math.min(e,p-d):e)>0)return this.storeOptions.reservoir+=a,this.instance._drainAll(this.computeCapacity())}}),this.heartbeatInterval)).unref?e.unref():void 0:clearInterval(this.heartbeat)}__publish__(e){var a=this;return _asyncToGenerator$6((function*(){return yield a.yieldLoop(),a.instance.Events.trigger("message",e.toString())}))()}__disconnect__(e){var a=this;return _asyncToGenerator$6((function*(){return yield a.yieldLoop(),clearInterval(a.heartbeat),a.Promise.resolve()}))()}yieldLoop(e=0){return new this.Promise((function(a,p){return setTimeout(a,e)}))}computePenalty(){var e;return null!=(e=this.storeOptions.penalty)?e:15*this.storeOptions.minTime||5e3}__updateSettings__(e){var a=this;return _asyncToGenerator$6((function*(){return yield a.yieldLoop(),parser$6.overwrite(e,e,a.storeOptions),a._startHeartbeat(),a.instance._drainAll(a.computeCapacity()),!0}))()}__running__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e._running}))()}__queued__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e.instance.queued()}))()}__done__(){var e=this;return _asyncToGenerator$6((function*(){return yield e.yieldLoop(),e._done}))()}__groupCheck__(e){var a=this;return _asyncToGenerator$6((function*(){return yield a.yieldLoop(),a._nextRequest+a.timeout=e}check(e,a){return this.conditionsCheck(e)&&this._nextRequest-a<=0}__check__(e){var a=this;return _asyncToGenerator$6((function*(){var p;return yield a.yieldLoop(),p=Date.now(),a.check(e,p)}))()}__register__(e,a,p){var t=this;return _asyncToGenerator$6((function*(){var e,p;return yield t.yieldLoop(),e=Date.now(),t.conditionsCheck(a)?(t._running+=a,null!=t.storeOptions.reservoir&&(t.storeOptions.reservoir-=a),p=Math.max(t._nextRequest-e,0),t._nextRequest=e+p+t.storeOptions.minTime,{success:!0,wait:p,reservoir:t.storeOptions.reservoir}):{success:!1}}))()}strategyIsBlock(){return 3===this.storeOptions.strategy}__submit__(e,a){var p=this;return _asyncToGenerator$6((function*(){var t,d,i;if(yield p.yieldLoop(),null!=p.storeOptions.maxConcurrent&&a>p.storeOptions.maxConcurrent)throw new BottleneckError$2(`Impossible to add a job having a weight of ${a} to a limiter having a maxConcurrent setting of ${p.storeOptions.maxConcurrent}`);return d=Date.now(),i=null!=p.storeOptions.highWater&&e===p.storeOptions.highWater&&!p.check(a,d),(t=p.strategyIsBlock()&&(i||p.isBlocked(d)))&&(p._unblockTime=d+p.computePenalty(),p._nextRequest=p._unblockTime+p.storeOptions.minTime,p.instance._dropAllQueued()),{reachedHWM:i,blocked:t,strategy:p.storeOptions.strategy}}))()}__free__(e,a){var p=this;return _asyncToGenerator$6((function*(){return yield p.yieldLoop(),p._running-=a,p._done+=a,p.instance._drainAll(p.computeCapacity()),{running:p._running}}))()}};var LocalDatastore_1=LocalDatastore$1,commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getAugmentedNamespace(e){if(e.__esModule)return e;var a=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(p){var t=Object.getOwnPropertyDescriptor(e,p);Object.defineProperty(a,p,t.get?t:{enumerable:!0,get:function(){return e[p]}})})),a}function createCommonjsModule(e){var a={exports:{}};return e(a,a.exports),a.exports}function commonjsRequire(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.')}var require$$0$2={"blacklist_client.lua":"local blacklist = ARGV[num_static_argv + 1]\n\nif redis.call('zscore', client_last_seen_key, blacklist) then\n redis.call('zadd', client_last_seen_key, 0, blacklist)\nend\n\n\nreturn {}\n","check.lua":"local weight = tonumber(ARGV[num_static_argv + 1])\n\nlocal capacity = process_tick(now, false)['capacity']\nlocal nextRequest = tonumber(redis.call('hget', settings_key, 'nextRequest'))\n\nreturn conditions_check(capacity, weight) and nextRequest - now <= 0\n","conditions_check.lua":"local conditions_check = function (capacity, weight)\n return capacity == nil or weight <= capacity\nend\n","current_reservoir.lua":"return process_tick(now, false)['reservoir']\n","done.lua":"process_tick(now, false)\n\nreturn tonumber(redis.call('hget', settings_key, 'done'))\n","free.lua":"local index = ARGV[num_static_argv + 1]\n\nredis.call('zadd', job_expirations_key, 0, index)\n\nreturn process_tick(now, false)['running']\n","get_time.lua":"redis.replicate_commands()\n\nlocal get_time = function ()\n local time = redis.call('time')\n\n return tonumber(time[1]..string.sub(time[2], 1, 3))\nend\n","group_check.lua":"return not (redis.call('exists', settings_key) == 1)\n","heartbeat.lua":"process_tick(now, true)\n","increment_reservoir.lua":"local incr = tonumber(ARGV[num_static_argv + 1])\n\nredis.call('hincrby', settings_key, 'reservoir', incr)\n\nlocal reservoir = process_tick(now, true)['reservoir']\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn reservoir\n","init.lua":"local clear = tonumber(ARGV[num_static_argv + 1])\nlocal limiter_version = ARGV[num_static_argv + 2]\nlocal num_local_argv = num_static_argv + 2\n\nif clear == 1 then\n redis.call('del', unpack(KEYS))\nend\n\nif redis.call('exists', settings_key) == 0 then\n -- Create\n local args = {'hmset', settings_key}\n\n for i = num_local_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\n end\n\n redis.call(unpack(args))\n redis.call('hmset', settings_key,\n 'nextRequest', now,\n 'lastReservoirRefresh', now,\n 'lastReservoirIncrease', now,\n 'running', 0,\n 'done', 0,\n 'unblockTime', 0,\n 'capacityPriorityCounter', 0\n )\n\nelse\n -- Apply migrations\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'version'\n )\n local id = settings[1]\n local current_version = settings[2]\n\n if current_version ~= limiter_version then\n local version_digits = {}\n for k, v in string.gmatch(current_version, \"([^.]+)\") do\n table.insert(version_digits, tonumber(k))\n end\n\n -- 2.10.0\n if version_digits[2] < 10 then\n redis.call('hsetnx', settings_key, 'reservoirRefreshInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirRefreshAmount', '')\n redis.call('hsetnx', settings_key, 'lastReservoirRefresh', '')\n redis.call('hsetnx', settings_key, 'done', 0)\n redis.call('hset', settings_key, 'version', '2.10.0')\n end\n\n -- 2.11.1\n if version_digits[2] < 11 or (version_digits[2] == 11 and version_digits[3] < 1) then\n if redis.call('hstrlen', settings_key, 'lastReservoirRefresh') == 0 then\n redis.call('hmset', settings_key,\n 'lastReservoirRefresh', now,\n 'version', '2.11.1'\n )\n end\n end\n\n -- 2.14.0\n if version_digits[2] < 14 then\n local old_running_key = 'b_'..id..'_running'\n local old_executing_key = 'b_'..id..'_executing'\n\n if redis.call('exists', old_running_key) == 1 then\n redis.call('rename', old_running_key, job_weights_key)\n end\n if redis.call('exists', old_executing_key) == 1 then\n redis.call('rename', old_executing_key, job_expirations_key)\n end\n redis.call('hset', settings_key, 'version', '2.14.0')\n end\n\n -- 2.15.2\n if version_digits[2] < 15 or (version_digits[2] == 15 and version_digits[3] < 2) then\n redis.call('hsetnx', settings_key, 'capacityPriorityCounter', 0)\n redis.call('hset', settings_key, 'version', '2.15.2')\n end\n\n -- 2.17.0\n if version_digits[2] < 17 then\n redis.call('hsetnx', settings_key, 'clientTimeout', 10000)\n redis.call('hset', settings_key, 'version', '2.17.0')\n end\n\n -- 2.18.0\n if version_digits[2] < 18 then\n redis.call('hsetnx', settings_key, 'reservoirIncreaseInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseAmount', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseMaximum', '')\n redis.call('hsetnx', settings_key, 'lastReservoirIncrease', now)\n redis.call('hset', settings_key, 'version', '2.18.0')\n end\n\n end\n\n process_tick(now, false)\nend\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n","process_tick.lua":"local process_tick = function (now, always_publish)\n\n local compute_capacity = function (maxConcurrent, running, reservoir)\n if maxConcurrent ~= nil and reservoir ~= nil then\n return math.min((maxConcurrent - running), reservoir)\n elseif maxConcurrent ~= nil then\n return maxConcurrent - running\n elseif reservoir ~= nil then\n return reservoir\n else\n return nil\n end\n end\n\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'running',\n 'reservoir',\n 'reservoirRefreshInterval',\n 'reservoirRefreshAmount',\n 'lastReservoirRefresh',\n 'reservoirIncreaseInterval',\n 'reservoirIncreaseAmount',\n 'reservoirIncreaseMaximum',\n 'lastReservoirIncrease',\n 'capacityPriorityCounter',\n 'clientTimeout'\n )\n local id = settings[1]\n local maxConcurrent = tonumber(settings[2])\n local running = tonumber(settings[3])\n local reservoir = tonumber(settings[4])\n local reservoirRefreshInterval = tonumber(settings[5])\n local reservoirRefreshAmount = tonumber(settings[6])\n local lastReservoirRefresh = tonumber(settings[7])\n local reservoirIncreaseInterval = tonumber(settings[8])\n local reservoirIncreaseAmount = tonumber(settings[9])\n local reservoirIncreaseMaximum = tonumber(settings[10])\n local lastReservoirIncrease = tonumber(settings[11])\n local capacityPriorityCounter = tonumber(settings[12])\n local clientTimeout = tonumber(settings[13])\n\n local initial_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n --\n -- Process 'running' changes\n --\n local expired = redis.call('zrangebyscore', job_expirations_key, '-inf', '('..now)\n\n if #expired > 0 then\n redis.call('zremrangebyscore', job_expirations_key, '-inf', '('..now)\n\n local flush_batch = function (batch, acc)\n local weights = redis.call('hmget', job_weights_key, unpack(batch))\n redis.call('hdel', job_weights_key, unpack(batch))\n local clients = redis.call('hmget', job_clients_key, unpack(batch))\n redis.call('hdel', job_clients_key, unpack(batch))\n\n -- Calculate sum of removed weights\n for i = 1, #weights do\n acc['total'] = acc['total'] + (tonumber(weights[i]) or 0)\n end\n\n -- Calculate sum of removed weights by client\n local client_weights = {}\n for i = 1, #clients do\n local removed = tonumber(weights[i]) or 0\n if removed > 0 then\n acc['client_weights'][clients[i]] = (acc['client_weights'][clients[i]] or 0) + removed\n end\n end\n end\n\n local acc = {\n ['total'] = 0,\n ['client_weights'] = {}\n }\n local batch_size = 1000\n\n -- Compute changes to Zsets and apply changes to Hashes\n for i = 1, #expired, batch_size do\n local batch = {}\n for j = i, math.min(i + batch_size - 1, #expired) do\n table.insert(batch, expired[j])\n end\n\n flush_batch(batch, acc)\n end\n\n -- Apply changes to Zsets\n if acc['total'] > 0 then\n redis.call('hincrby', settings_key, 'done', acc['total'])\n running = tonumber(redis.call('hincrby', settings_key, 'running', -acc['total']))\n end\n\n for client, weight in pairs(acc['client_weights']) do\n redis.call('zincrby', client_running_key, -weight, client)\n end\n end\n\n --\n -- Process 'reservoir' changes\n --\n local reservoirRefreshActive = reservoirRefreshInterval ~= nil and reservoirRefreshAmount ~= nil\n if reservoirRefreshActive and now >= lastReservoirRefresh + reservoirRefreshInterval then\n reservoir = reservoirRefreshAmount\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirRefresh', now\n )\n end\n\n local reservoirIncreaseActive = reservoirIncreaseInterval ~= nil and reservoirIncreaseAmount ~= nil\n if reservoirIncreaseActive and now >= lastReservoirIncrease + reservoirIncreaseInterval then\n local num_intervals = math.floor((now - lastReservoirIncrease) / reservoirIncreaseInterval)\n local incr = reservoirIncreaseAmount * num_intervals\n if reservoirIncreaseMaximum ~= nil then\n incr = math.min(incr, reservoirIncreaseMaximum - (reservoir or 0))\n end\n if incr > 0 then\n reservoir = (reservoir or 0) + incr\n end\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirIncrease', lastReservoirIncrease + (num_intervals * reservoirIncreaseInterval)\n )\n end\n\n --\n -- Clear unresponsive clients\n --\n local unresponsive = redis.call('zrangebyscore', client_last_seen_key, '-inf', (now - clientTimeout))\n local unresponsive_lookup = {}\n local terminated_clients = {}\n for i = 1, #unresponsive do\n unresponsive_lookup[unresponsive[i]] = true\n if tonumber(redis.call('zscore', client_running_key, unresponsive[i])) == 0 then\n table.insert(terminated_clients, unresponsive[i])\n end\n end\n if #terminated_clients > 0 then\n redis.call('zrem', client_running_key, unpack(terminated_clients))\n redis.call('hdel', client_num_queued_key, unpack(terminated_clients))\n redis.call('zrem', client_last_registered_key, unpack(terminated_clients))\n redis.call('zrem', client_last_seen_key, unpack(terminated_clients))\n end\n\n --\n -- Broadcast capacity changes\n --\n local final_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n if always_publish or (initial_capacity ~= nil and final_capacity == nil) then\n -- always_publish or was not unlimited, now unlimited\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n\n elseif initial_capacity ~= nil and final_capacity ~= nil and final_capacity > initial_capacity then\n -- capacity was increased\n -- send the capacity message to the limiter having the lowest number of running jobs\n -- the tiebreaker is the limiter having not registered a job in the longest time\n\n local lowest_concurrency_value = nil\n local lowest_concurrency_clients = {}\n local lowest_concurrency_last_registered = {}\n local client_concurrencies = redis.call('zrange', client_running_key, 0, -1, 'withscores')\n\n for i = 1, #client_concurrencies, 2 do\n local client = client_concurrencies[i]\n local concurrency = tonumber(client_concurrencies[i+1])\n\n if (\n lowest_concurrency_value == nil or lowest_concurrency_value == concurrency\n ) and (\n not unresponsive_lookup[client]\n ) and (\n tonumber(redis.call('hget', client_num_queued_key, client)) > 0\n ) then\n lowest_concurrency_value = concurrency\n table.insert(lowest_concurrency_clients, client)\n local last_registered = tonumber(redis.call('zscore', client_last_registered_key, client))\n table.insert(lowest_concurrency_last_registered, last_registered)\n end\n end\n\n if #lowest_concurrency_clients > 0 then\n local position = 1\n local earliest = lowest_concurrency_last_registered[1]\n\n for i,v in ipairs(lowest_concurrency_last_registered) do\n if v < earliest then\n position = i\n earliest = v\n end\n end\n\n local next_client = lowest_concurrency_clients[position]\n redis.call('publish', 'b_'..id,\n 'capacity-priority:'..(final_capacity or '')..\n ':'..next_client..\n ':'..capacityPriorityCounter\n )\n redis.call('hincrby', settings_key, 'capacityPriorityCounter', '1')\n else\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n end\n end\n\n return {\n ['capacity'] = final_capacity,\n ['running'] = running,\n ['reservoir'] = reservoir\n }\nend\n","queued.lua":"local clientTimeout = tonumber(redis.call('hget', settings_key, 'clientTimeout'))\nlocal valid_clients = redis.call('zrangebyscore', client_last_seen_key, (now - clientTimeout), 'inf')\nlocal client_queued = redis.call('hmget', client_num_queued_key, unpack(valid_clients))\n\nlocal sum = 0\nfor i = 1, #client_queued do\n sum = sum + tonumber(client_queued[i])\nend\n\nreturn sum\n","refresh_expiration.lua":"local refresh_expiration = function (now, nextRequest, groupTimeout)\n\n if groupTimeout ~= nil then\n local ttl = (nextRequest + groupTimeout) - now\n\n for i = 1, #KEYS do\n redis.call('pexpire', KEYS[i], ttl)\n end\n end\n\nend\n","refs.lua":"local settings_key = KEYS[1]\nlocal job_weights_key = KEYS[2]\nlocal job_expirations_key = KEYS[3]\nlocal job_clients_key = KEYS[4]\nlocal client_running_key = KEYS[5]\nlocal client_num_queued_key = KEYS[6]\nlocal client_last_registered_key = KEYS[7]\nlocal client_last_seen_key = KEYS[8]\n\nlocal now = tonumber(ARGV[1])\nlocal client = ARGV[2]\n\nlocal num_static_argv = 2\n","register.lua":"local index = ARGV[num_static_argv + 1]\nlocal weight = tonumber(ARGV[num_static_argv + 2])\nlocal expiration = tonumber(ARGV[num_static_argv + 3])\n\nlocal state = process_tick(now, false)\nlocal capacity = state['capacity']\nlocal reservoir = state['reservoir']\n\nlocal settings = redis.call('hmget', settings_key,\n 'nextRequest',\n 'minTime',\n 'groupTimeout'\n)\nlocal nextRequest = tonumber(settings[1])\nlocal minTime = tonumber(settings[2])\nlocal groupTimeout = tonumber(settings[3])\n\nif conditions_check(capacity, weight) then\n\n redis.call('hincrby', settings_key, 'running', weight)\n redis.call('hset', job_weights_key, index, weight)\n if expiration ~= nil then\n redis.call('zadd', job_expirations_key, now + expiration, index)\n end\n redis.call('hset', job_clients_key, index, client)\n redis.call('zincrby', client_running_key, weight, client)\n redis.call('hincrby', client_num_queued_key, client, -1)\n redis.call('zadd', client_last_registered_key, now, client)\n\n local wait = math.max(nextRequest - now, 0)\n local newNextRequest = now + wait + minTime\n\n if reservoir == nil then\n redis.call('hset', settings_key,\n 'nextRequest', newNextRequest\n )\n else\n reservoir = reservoir - weight\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'nextRequest', newNextRequest\n )\n end\n\n refresh_expiration(now, newNextRequest, groupTimeout)\n\n return {true, wait, reservoir}\n\nelse\n return {false}\nend\n","register_client.lua":"local queued = tonumber(ARGV[num_static_argv + 1])\n\n-- Could have been re-registered concurrently\nif not redis.call('zscore', client_last_seen_key, client) then\n redis.call('zadd', client_running_key, 0, client)\n redis.call('hset', client_num_queued_key, client, queued)\n redis.call('zadd', client_last_registered_key, 0, client)\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n\nreturn {}\n","running.lua":"return process_tick(now, false)['running']\n","submit.lua":"local queueLength = tonumber(ARGV[num_static_argv + 1])\nlocal weight = tonumber(ARGV[num_static_argv + 2])\n\nlocal capacity = process_tick(now, false)['capacity']\n\nlocal settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'highWater',\n 'nextRequest',\n 'strategy',\n 'unblockTime',\n 'penalty',\n 'minTime',\n 'groupTimeout'\n)\nlocal id = settings[1]\nlocal maxConcurrent = tonumber(settings[2])\nlocal highWater = tonumber(settings[3])\nlocal nextRequest = tonumber(settings[4])\nlocal strategy = tonumber(settings[5])\nlocal unblockTime = tonumber(settings[6])\nlocal penalty = tonumber(settings[7])\nlocal minTime = tonumber(settings[8])\nlocal groupTimeout = tonumber(settings[9])\n\nif maxConcurrent ~= nil and weight > maxConcurrent then\n return redis.error_reply('OVERWEIGHT:'..weight..':'..maxConcurrent)\nend\n\nlocal reachedHWM = (highWater ~= nil and queueLength == highWater\n and not (\n conditions_check(capacity, weight)\n and nextRequest - now <= 0\n )\n)\n\nlocal blocked = strategy == 3 and (reachedHWM or unblockTime >= now)\n\nif blocked then\n local computedPenalty = penalty\n if computedPenalty == nil then\n if minTime == 0 then\n computedPenalty = 5000\n else\n computedPenalty = 15 * minTime\n end\n end\n\n local newNextRequest = now + computedPenalty + minTime\n\n redis.call('hmset', settings_key,\n 'unblockTime', now + computedPenalty,\n 'nextRequest', newNextRequest\n )\n\n local clients_queued_reset = redis.call('hkeys', client_num_queued_key)\n local queued_reset = {}\n for i = 1, #clients_queued_reset do\n table.insert(queued_reset, clients_queued_reset[i])\n table.insert(queued_reset, 0)\n end\n redis.call('hmset', client_num_queued_key, unpack(queued_reset))\n\n redis.call('publish', 'b_'..id, 'blocked:')\n\n refresh_expiration(now, newNextRequest, groupTimeout)\nend\n\nif not blocked and not reachedHWM then\n redis.call('hincrby', client_num_queued_key, client, 1)\nend\n\nreturn {reachedHWM, blocked, strategy}\n","update_settings.lua":"local args = {'hmset', settings_key}\n\nfor i = num_static_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\nend\n\nredis.call(unpack(args))\n\nprocess_tick(now, true)\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n","validate_client.lua":"if not redis.call('zscore', client_last_seen_key, client) then\n return redis.error_reply('UNKNOWN_CLIENT')\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n","validate_keys.lua":"if not (redis.call('exists', settings_key) == 1) then\n return redis.error_reply('SETTINGS_KEY_NOT_FOUND')\nend\n"},Scripts$3=createCommonjsModule((function(e,a){var p,t,d;p={refs:(t=require$$0$2)["refs.lua"],validate_keys:t["validate_keys.lua"],validate_client:t["validate_client.lua"],refresh_expiration:t["refresh_expiration.lua"],process_tick:t["process_tick.lua"],conditions_check:t["conditions_check.lua"],get_time:t["get_time.lua"]},a.allKeys=function(e){return[`b_${e}_settings`,`b_${e}_job_weights`,`b_${e}_job_expirations`,`b_${e}_job_clients`,`b_${e}_client_running`,`b_${e}_client_num_queued`,`b_${e}_client_last_registered`,`b_${e}_client_last_seen`]},d={init:{keys:a.allKeys,headers:["process_tick"],refresh_expiration:!0,code:t["init.lua"]},group_check:{keys:a.allKeys,headers:[],refresh_expiration:!1,code:t["group_check.lua"]},register_client:{keys:a.allKeys,headers:["validate_keys"],refresh_expiration:!1,code:t["register_client.lua"]},blacklist_client:{keys:a.allKeys,headers:["validate_keys","validate_client"],refresh_expiration:!1,code:t["blacklist_client.lua"]},heartbeat:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:t["heartbeat.lua"]},update_settings:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:t["update_settings.lua"]},running:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:t["running.lua"]},queued:{keys:a.allKeys,headers:["validate_keys","validate_client"],refresh_expiration:!1,code:t["queued.lua"]},done:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:t["done.lua"]},check:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!1,code:t["check.lua"]},submit:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!0,code:t["submit.lua"]},register:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick","conditions_check"],refresh_expiration:!0,code:t["register.lua"]},free:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:t["free.lua"]},current_reservoir:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!1,code:t["current_reservoir.lua"]},increment_reservoir:{keys:a.allKeys,headers:["validate_keys","validate_client","process_tick"],refresh_expiration:!0,code:t["increment_reservoir.lua"]}},a.names=Object.keys(d),a.keys=function(e,a){return d[e].keys(a)},a.payload=function(e){var a;return a=d[e],Array.prototype.concat(p.refs,a.headers.map((function(e){return p[e]})),a.refresh_expiration?p.refresh_expiration:"",a.code).join("\n")}})),Events$4,RedisConnection$2,Scripts$2,parser$5;function asyncGeneratorStep$5(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator$5(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep$5(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep$5(i,t,d,r,n,"throw",e)}r(void 0)}))}}parser$5=parser$8,Events$4=Events_1,Scripts$2=Scripts$3,RedisConnection$2=function(){class RedisConnection{constructor(options={}){parser$5.load(options,this.defaults,this),null==this.Redis&&(this.Redis=eval("require")("redis")),null==this.Events&&(this.Events=new Events$4(this)),this.terminated=!1,null==this.client&&(this.client=this.Redis.createClient(this.clientOptions)),this.subscriber=this.client.duplicate(),this.limiters={},this.shas={},this.ready=this.Promise.all([this._setup(this.client,!1),this._setup(this.subscriber,!0)]).then((()=>this._loadScripts())).then((()=>({client:this.client,subscriber:this.subscriber})))}_setup(e,a){return e.setMaxListeners(0),new this.Promise(((p,t)=>(e.on("error",(e=>this.Events.trigger("error",e))),a&&e.on("message",((e,a)=>{var p;return null!=(p=this.limiters[e])?p._store.onMessage(e,a):void 0})),e.ready?p():e.once("ready",p))))}_loadScript(e){return new this.Promise(((a,p)=>{var t;return t=Scripts$2.payload(e),this.client.multi([["script","load",t]]).exec(((t,d)=>null!=t?p(t):(this.shas[e]=d[0],a(d[0]))))}))}_loadScripts(){return this.Promise.all(Scripts$2.names.map((e=>this._loadScript(e))))}__runCommand__(e){var a=this;return _asyncToGenerator$5((function*(){return yield a.ready,new a.Promise(((p,t)=>a.client.multi([e]).exec_atomic((function(e,a){return null!=e?t(e):p(a[0])}))))}))()}__addLimiter__(e){return this.Promise.all([e.channel(),e.channel_client()].map((a=>new this.Promise(((p,t)=>{var d;return d=t=>{if(t===a)return this.subscriber.removeListener("subscribe",d),this.limiters[a]=e,p()},this.subscriber.on("subscribe",d),this.subscriber.subscribe(a)})))))}__removeLimiter__(e){var a=this;return this.Promise.all([e.channel(),e.channel_client()].map(function(){var e=_asyncToGenerator$5((function*(e){return a.terminated||(yield new a.Promise(((p,t)=>a.subscriber.unsubscribe(e,(function(a,d){return null!=a?t(a):d===e?p():void 0}))))),delete a.limiters[e]}));return function(a){return e.apply(this,arguments)}}()))}__scriptArgs__(e,a,p,t){var d;return d=Scripts$2.keys(e,a),[this.shas[e],d.length].concat(d,p,t)}__scriptFn__(e){return this.client.evalsha.bind(this.client)}disconnect(e=!0){var a,p,t,d;for(a=0,t=(d=Object.keys(this.limiters)).length;a(this._loadScripts(),{client:this.client,subscriber:this.subscriber})))}_setup(e,a){return e.setMaxListeners(0),new this.Promise(((p,t)=>(e.on("error",(e=>this.Events.trigger("error",e))),a&&e.on("message",((e,a)=>{var p;return null!=(p=this.limiters[e])?p._store.onMessage(e,a):void 0})),"ready"===e.status?p():e.once("ready",p))))}_loadScripts(){return Scripts$1.names.forEach((e=>this.client.defineCommand(e,{lua:Scripts$1.payload(e)})))}__runCommand__(e){var a=this;return _asyncToGenerator$4((function*(){yield a.ready;var p=_slicedToArray$3(yield a.client.pipeline([e]).exec(),1);return _slicedToArray$3(p[0],2)[1]}))()}__addLimiter__(e){return this.Promise.all([e.channel(),e.channel_client()].map((a=>new this.Promise(((p,t)=>this.subscriber.subscribe(a,(()=>(this.limiters[a]=e,p()))))))))}__removeLimiter__(e){var a=this;return[e.channel(),e.channel_client()].forEach(function(){var e=_asyncToGenerator$4((function*(e){return a.terminated||(yield a.subscriber.unsubscribe(e)),delete a.limiters[e]}));return function(a){return e.apply(this,arguments)}}())}__scriptArgs__(e,a,p,t){var d;return[(d=Scripts$1.keys(e,a)).length].concat(d,p,t)}__scriptFn__(e){return this.client[e].bind(this.client)}disconnect(e=!0){var a,p,t,d;for(a=0,t=(d=Object.keys(this.limiters)).length;a(this.clients=e,this.runScript("init",this.prepareInitSettings(this.clearDatastore))))).then((()=>this.connection.__addLimiter__(this.instance))).then((()=>this.runScript("register_client",[this.instance.queued()]))).then((()=>{var e;return"function"==typeof(e=this.heartbeat=setInterval((()=>this.runScript("heartbeat",[]).catch((e=>this.instance.Events.trigger("error",e)))),this.heartbeatInterval)).unref&&e.unref(),this.clients}))}__publish__(e){var a=this;return _asyncToGenerator$3((function*(){return(yield a.ready).client.publish(a.instance.channel(),`message:${e.toString()}`)}))()}onMessage(e,a){var p=this;return _asyncToGenerator$3((function*(){var e,t,d,i,r,n,s,o,l,m;try{s=a.indexOf(":");var u=[a.slice(0,s),a.slice(s+1)];if(d=u[1],"capacity"===(m=u[0]))return yield p.instance._drainAll(d.length>0?~~d:void 0);if("capacity-priority"===m){var c=_slicedToArray$2(d.split(":"),3);return l=c[0],o=c[1],t=c[2],e=l.length>0?~~l:void 0,o===p.clientId?(i=yield p.instance._drainAll(e),n=null!=e?e-(i||0):"",yield p.clients.client.publish(p.instance.channel(),`capacity-priority:${n}::${t}`)):""===o?(clearTimeout(p.capacityPriorityCounters[t]),delete p.capacityPriorityCounters[t],p.instance._drainAll(e)):p.capacityPriorityCounters[t]=setTimeout(_asyncToGenerator$3((function*(){var a;try{return delete p.capacityPriorityCounters[t],yield p.runScript("blacklist_client",[o]),yield p.instance._drainAll(e)}catch(e){return a=e,p.instance.Events.trigger("error",a)}})),1e3)}if("message"===m)return p.instance.Events.trigger("message",d);if("blocked"===m)return yield p.instance._dropAllQueued()}catch(e){return r=e,p.instance.Events.trigger("error",r)}}))()}__disconnect__(e){return clearInterval(this.heartbeat),this.sharedConnection?this.connection.__removeLimiter__(this.instance):this.connection.disconnect(e)}runScript(e,a){var p=this;return _asyncToGenerator$3((function*(){return"init"!==e&&"register_client"!==e&&(yield p.ready),new p.Promise(((t,d)=>{var i,r;return i=[Date.now(),p.clientId].concat(a),p.instance.Events.trigger("debug",`Calling Redis script: ${e}.lua`,i),r=p.connection.__scriptArgs__(e,p.originalId,i,(function(e,a){return null!=e?d(e):t(a)})),p.connection.__scriptFn__(e)(...r)})).catch((t=>"SETTINGS_KEY_NOT_FOUND"===t.message?"heartbeat"===e?p.Promise.resolve():p.runScript("init",p.prepareInitSettings(!1)).then((()=>p.runScript(e,a))):"UNKNOWN_CLIENT"===t.message?p.runScript("register_client",[p.instance.queued()]).then((()=>p.runScript(e,a))):p.Promise.reject(t)))}))()}prepareArray(e){var a,p,t,d;for(t=[],a=0,p=e.length;a(e[this.status[p]]=a,e)),{})}};var States_1=States$1,DLList,Sync$1;function asyncGeneratorStep$2(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator$2(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep$2(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep$2(i,t,d,r,n,"throw",e)}r(void 0)}))}}DLList=DLList_1,Sync$1=class{constructor(e,a){this.schedule=this.schedule.bind(this),this.name=e,this.Promise=a,this._running=0,this._queue=new DLList}isEmpty(){return 0===this._queue.length}_tryToRun(){var e=this;return _asyncToGenerator$2((function*(){var a,p,t,d,i,r,n;if(e._running<1&&e._queue.length>0){e._running++;var s=e._queue.shift();return n=s.task,a=s.args,i=s.resolve,d=s.reject,p=yield _asyncToGenerator$2((function*(){try{return r=yield n(...a),function(){return i(r)}}catch(e){return t=e,function(){return d(t)}}}))(),e._running--,e._tryToRun(),p()}}))()}schedule(e,...a){var p,t,d;return d=t=null,p=new this.Promise((function(e,a){return d=e,t=a})),this._queue.push({task:e,args:a,resolve:d,reject:t}),this._tryToRun(),p}};var Sync_1=Sync$1,version="2.19.5",require$$8={version:version},require$$0$1=Bottleneck_1,Events$2,Group,IORedisConnection,RedisConnection,Scripts,parser$2;function _slicedToArray$1(e,a){return _arrayWithHoles$1(e)||_iterableToArrayLimit$1(e,a)||_nonIterableRest$1()}function _nonIterableRest$1(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArrayLimit$1(e,a){var p=[],t=!0,d=!1,i=void 0;try{for(var r,n=e[Symbol.iterator]();!(t=(r=n.next()).done)&&(p.push(r.value),!a||p.length!==a);t=!0);}catch(e){d=!0,i=e}finally{try{t||null==n.return||n.return()}finally{if(d)throw i}}return p}function _arrayWithHoles$1(e){if(Array.isArray(e))return e}function asyncGeneratorStep$1(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator$1(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep$1(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep$1(i,t,d,r,n,"throw",e)}r(void 0)}))}}parser$2=parser$8,Events$2=Events_1,RedisConnection=RedisConnection_1,IORedisConnection=IORedisConnection_1,Scripts=Scripts$3,Group=function(){class e{constructor(e={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=e,parser$2.load(this.limiterOptions,this.defaults,this),this.Events=new Events$2(this),this.instances={},this.Bottleneck=require$$0$1,this._startAutoCleanup(),this.sharedConnection=null!=this.connection,null==this.connection&&("redis"===this.limiterOptions.datastore?this.connection=new RedisConnection(Object.assign({},this.limiterOptions,{Events:this.Events})):"ioredis"===this.limiterOptions.datastore&&(this.connection=new IORedisConnection(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(e=""){var a;return null!=(a=this.instances[e])?a:(()=>{var a;return a=this.instances[e]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${e}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",a,e),a})()}deleteKey(e=""){var a=this;return _asyncToGenerator$1((function*(){var p,t;return t=a.instances[e],a.connection&&(p=yield a.connection.__runCommand__(["del",...Scripts.allKeys(`${a.id}-${e}`)])),null!=t&&(delete a.instances[e],yield t.disconnect()),null!=t||p>0}))()}limiters(){var e,a,p,t;for(e in p=[],a=this.instances)t=a[e],p.push({key:e,limiter:t});return p}keys(){return Object.keys(this.instances)}clusterKeys(){var e=this;return _asyncToGenerator$1((function*(){var a,p,t,d,i,r,n,s;if(null==e.connection)return e.Promise.resolve(e.keys());for(r=[],a=null,s=`b_${e.id}-`.length,p="_settings".length;0!==a;){var o=_slicedToArray$1(yield e.connection.__runCommand__(["scan",null!=a?a:0,"match",`b_${e.id}-*_settings`,"count",1e4]),2);for(a=~~o[0],d=0,n=(t=o[1]).length;dthis._resolve=e))}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(e){var a;return this._arr.push(e),a=this._promise,this._arr.length===this.maxSize?this._flush():null!=this.maxTime&&1===this._arr.length&&(this._timeout=setTimeout((()=>this._flush()),this.maxTime)),a}}return e.prototype.defaults={maxTime:null,maxSize:null,Promise:Promise},e}.call(void 0);var Batcher_1=Batcher;function _slicedToArray(e,a){return _arrayWithHoles(e)||_iterableToArrayLimit(e,a)||_nonIterableRest()}function _iterableToArrayLimit(e,a){var p=[],t=!0,d=!1,i=void 0;try{for(var r,n=e[Symbol.iterator]();!(t=(r=n.next()).done)&&(p.push(r.value),!a||p.length!==a);t=!0);}catch(e){d=!0,i=e}finally{try{t||null==n.return||n.return()}finally{if(d)throw i}}return p}function _toArray(e){return _arrayWithHoles(e)||_iterableToArray(e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithHoles(e){if(Array.isArray(e))return e}function asyncGeneratorStep(e,a,p,t,d,i,r){try{var n=e[i](r),s=n.value}catch(e){return void p(e)}n.done?a(s):Promise.resolve(s).then(t,d)}function _asyncToGenerator(e){return function(){var a=this,p=arguments;return new Promise((function(t,d){var i=e.apply(a,p);function r(e){asyncGeneratorStep(i,t,d,r,n,"next",e)}function n(e){asyncGeneratorStep(i,t,d,r,n,"throw",e)}r(void 0)}))}}var Bottleneck,DEFAULT_PRIORITY,Events,Job,LocalDatastore,NUM_PRIORITIES,Queues,RedisDatastore,States,Sync,parser,splice=[].splice;NUM_PRIORITIES=10,DEFAULT_PRIORITY=5,parser=parser$8,Queues=Queues_1,Job=Job_1,LocalDatastore=LocalDatastore_1,RedisDatastore=RedisDatastore_1,Events=Events_1,States=States_1,Sync=Sync_1,Bottleneck=function(){class e{constructor(a={},...p){var t,d;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(a,p),parser.load(a,this.instanceDefaults,this),this._queues=new Queues(NUM_PRIORITIES),this._scheduled={},this._states=new States(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new Events(this),this._submitLock=new Sync("submit",this.Promise),this._registerLock=new Sync("register",this.Promise),d=parser.load(a,this.storeDefaults,{}),this._store=function(){if("redis"===this.datastore||"ioredis"===this.datastore||null!=this.connection)return t=parser.load(a,this.redisStoreDefaults,{}),new RedisDatastore(this,d,t);if("local"===this.datastore)return t=parser.load(a,this.localStoreDefaults,{}),new LocalDatastore(this,d,t);throw new e.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",(()=>{var e;return null!=(e=this._store.heartbeat)&&"function"==typeof e.ref?e.ref():void 0})),this._queues.on("zero",(()=>{var e;return null!=(e=this._store.heartbeat)&&"function"==typeof e.unref?e.unref():void 0}))}_validateOptions(a,p){if(null==a||"object"!=typeof a||0!==p.length)throw new e.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(e){return this._store.__publish__(e)}disconnect(e=!0){return this._store.__disconnect__(e)}chain(e){return this._limiter=e,this}queued(e){return this._queues.queued(e)}clusterQueued(){return this._store.__queued__()}empty(){return 0===this.queued()&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(e){return this._states.jobStatus(e)}jobs(e){return this._states.statusJobs(e)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(e=1){return this._store.__check__(e)}_clearGlobalState(e){return null!=this._scheduled[e]&&(clearTimeout(this._scheduled[e].expiration),delete this._scheduled[e],!0)}_free(e,a,p,t){var d=this;return _asyncToGenerator((function*(){var a,i;try{if(i=(yield d._store.__free__(e,p.weight)).running,d.Events.trigger("debug",`Freed ${p.id}`,t),0===i&&d.empty())return d.Events.trigger("idle")}catch(e){return a=e,d.Events.trigger("error",a)}}))()}_run(e,a,p){var t,d,i;return a.doRun(),t=this._clearGlobalState.bind(this,e),i=this._run.bind(this,e,a),d=this._free.bind(this,e,a),this._scheduled[e]={timeout:setTimeout((()=>a.doExecute(this._limiter,t,i,d)),p),expiration:null!=a.options.expiration?setTimeout((function(){return a.doExpire(t,i,d)}),p+a.options.expiration):void 0,job:a}}_drainOne(e){return this._registerLock.schedule((()=>{var a,p,t,d,i;if(0===this.queued())return this.Promise.resolve(null);i=this._queues.getFirst();var r=t=i.first();return d=r.options,a=r.args,null!=e&&d.weight>e?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${d.id}`,{args:a,options:d}),p=this._randomIndex(),this._store.__register__(p,d.weight,d.expiration).then((({success:e,wait:r,reservoir:n})=>{var s;return this.Events.trigger("debug",`Drained ${d.id}`,{success:e,args:a,options:d}),e?(i.shift(),(s=this.empty())&&this.Events.trigger("empty"),0===n&&this.Events.trigger("depleted",s),this._run(p,t,r),this.Promise.resolve(d.weight)):this.Promise.resolve(null)})))}))}_drainAll(e,a=0){return this._drainOne(e).then((p=>{var t;return null!=p?(t=null!=e?e-p:e,this._drainAll(t,a+p)):this.Promise.resolve(a)})).catch((e=>this.Events.trigger("error",e)))}_dropAllQueued(e){return this._queues.shiftAll((function(a){return a.doDrop({message:e})}))}stop(a={}){var p,t;return a=parser.load(a,this.stopDefaults),t=e=>{var a;return a=()=>{var a;return(a=this._states.counts)[0]+a[1]+a[2]+a[3]===e},new this.Promise(((e,p)=>a()?e():this.on("done",(()=>{if(a())return this.removeAllListeners("done"),e()}))))},p=a.dropWaitingJobs?(this._run=function(e,p){return p.doDrop({message:a.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule((()=>this._submitLock.schedule((()=>{var e,p,d;for(e in p=this._scheduled)d=p[e],"RUNNING"===this.jobStatus(d.job.options.id)&&(clearTimeout(d.timeout),clearTimeout(d.expiration),d.job.doDrop({message:a.dropErrorMessage}));return this._dropAllQueued(a.dropErrorMessage),t(0)}))))):this.schedule({priority:NUM_PRIORITIES-1,weight:0},(()=>t(1))),this._receive=function(p){return p._reject(new e.prototype.BottleneckError(a.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new e.prototype.BottleneckError("stop() has already been called")),p}_addToQueue(a){var p=this;return _asyncToGenerator((function*(){var t,d,i,r,n,s,o;t=a.args,r=a.options;try{var l=yield p._store.__submit__(p.queued(),r.weight);n=l.reachedHWM,d=l.blocked,o=l.strategy}catch(e){return i=e,p.Events.trigger("debug",`Could not queue ${r.id}`,{args:t,options:r,error:i}),a.doDrop({error:i}),!1}return d?(a.doDrop(),!0):n&&(null!=(s=o===e.prototype.strategy.LEAK?p._queues.shiftLastFrom(r.priority):o===e.prototype.strategy.OVERFLOW_PRIORITY?p._queues.shiftLastFrom(r.priority+1):o===e.prototype.strategy.OVERFLOW?a:void 0)&&s.doDrop(),null==s||o===e.prototype.strategy.OVERFLOW)?(null==s&&a.doDrop(),n):(a.doQueue(n,d),p._queues.push(a),yield p._drainAll(),n)}))()}_receive(a){return null!=this._states.jobStatus(a.options.id)?(a._reject(new e.prototype.BottleneckError(`A job with the same id already exists (id=${a.options.id})`)),!1):(a.doReceive(),this._submitLock.schedule(this._addToQueue,a))}submit(...e){var a,p,t,d,i,r,n,s;"function"==typeof e[0]?(i=_toArray(e),p=i[0],e=i.slice(1),r=_slicedToArray(splice.call(e,-1),1),a=r[0],d=parser.load({},this.jobDefaults)):(d=(n=_toArray(e))[0],p=n[1],e=n.slice(2),s=_slicedToArray(splice.call(e,-1),1),a=s[0],d=parser.load(d,this.jobDefaults));return(t=new Job(((...e)=>new this.Promise((function(a,t){return p(...e,(function(...e){return(null!=e[0]?t:a)(e)}))}))),e,d,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise)).promise.then((function(e){return"function"==typeof a?a(...e):void 0})).catch((function(e){return Array.isArray(e)?"function"==typeof a?a(...e):void 0:"function"==typeof a?a(e):void 0})),this._receive(t)}schedule(...e){var a,p,t;if("function"==typeof e[0]){var d=_toArray(e);t=d[0],e=d.slice(1),p={}}else{var i=_toArray(e);p=i[0],t=i[1],e=i.slice(2)}return a=new Job(t,e,p,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(a),a.promise}wrap(e){var a,p;return a=this.schedule.bind(this),(p=function(...p){return a(e.bind(this),...p)}).withOptions=function(p,...t){return a(p,e,...t)},p}updateSettings(e={}){var a=this;return _asyncToGenerator((function*(){return yield a._store.__updateSettings__(parser.overwrite(e,a.storeDefaults)),parser.overwrite(e,a.instanceDefaults,a),a}))()}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(e=0){return this._store.__incrementReservoir__(e)}}return e.default=e,e.Events=Events,e.version=e.prototype.version=require$$8.version,e.strategy=e.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},e.BottleneckError=e.prototype.BottleneckError=BottleneckError_1,e.Group=e.prototype.Group=Group_1,e.RedisConnection=e.prototype.RedisConnection=RedisConnection_1,e.IORedisConnection=e.prototype.IORedisConnection=IORedisConnection_1,e.Batcher=e.prototype.Batcher=Batcher_1,e.prototype.jobDefaults={priority:DEFAULT_PRIORITY,weight:1,expiration:null,id:""},e.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:e.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},e.prototype.localStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:250},e.prototype.redisStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},e.prototype.instanceDefaults={datastore:"local",connection:null,id:"",rejectOnDrop:!0,trackDoneStatus:!1,Promise:Promise},e.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},e}.call(void 0);var Bottleneck_1=Bottleneck,lib$3=require$$0$1,shams=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},a=Symbol("test"),p=Object(a);if("string"==typeof a)return!1;if("[object Symbol]"!==Object.prototype.toString.call(a))return!1;if("[object Symbol]"!==Object.prototype.toString.call(p))return!1;for(a in e[a]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var t=Object.getOwnPropertySymbols(e);if(1!==t.length||t[0]!==a)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,a))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var d=Object.getOwnPropertyDescriptor(e,a);if(42!==d.value||!0!==d.enumerable)return!1}return!0},origSymbol="undefined"!=typeof Symbol&&Symbol,hasSymbols$1=function(){return"function"==typeof origSymbol&&("function"==typeof Symbol&&("symbol"==typeof origSymbol("foo")&&("symbol"==typeof Symbol("bar")&&shams())))},ERROR_MESSAGE="Function.prototype.bind called on incompatible ",slice=Array.prototype.slice,toStr$1=Object.prototype.toString,funcType="[object Function]",implementation$1=function(e){var a=this;if("function"!=typeof a||toStr$1.call(a)!==funcType)throw new TypeError(ERROR_MESSAGE+a);for(var p,t=slice.call(arguments,1),d=function(){if(this instanceof p){var d=a.apply(this,t.concat(slice.call(arguments)));return Object(d)===d?d:this}return a.apply(e,t.concat(slice.call(arguments)))},i=Math.max(0,a.length-t.length),r=[],n=0;n1&&"boolean"!=typeof a)throw new $TypeError$1('"allowMissing" argument must be a boolean');var p=stringToPath(e),t=p.length>0?p[0]:"",d=getBaseIntrinsic("%"+t+"%",a),i=d.name,r=d.value,n=!1,s=d.alias;s&&(t=s[0],$spliceApply(p,$concat([0,1],s)));for(var o=1,l=!0;o=p.length){var h=$gOPD(r,m);r=(l=!!h)&&"get"in h&&!("originalValue"in h.get)?h.get:r[m]}else l=src(r,m),r=r[m];l&&!n&&(INTRINSICS[i]=r)}}return r},callBind=createCommonjsModule((function(e){var a=getIntrinsic("%Function.prototype.apply%"),p=getIntrinsic("%Function.prototype.call%"),t=getIntrinsic("%Reflect.apply%",!0)||functionBind.call(p,a),d=getIntrinsic("%Object.getOwnPropertyDescriptor%",!0),i=getIntrinsic("%Object.defineProperty%",!0),r=getIntrinsic("%Math.max%");if(i)try{i({},"a",{value:1})}catch(e){i=null}e.exports=function(e){var a=t(functionBind,p,arguments);if(d&&i){var n=d(a,"length");n.configurable&&i(a,"length",{value:1+r(0,e.length-(arguments.length-1))})}return a};var n=function(){return t(functionBind,a,arguments)};i?i(e.exports,"apply",{value:n}):e.exports.apply=n})),$indexOf=callBind(getIntrinsic("String.prototype.indexOf")),callBound=function(e,a){var p=getIntrinsic(e,!!a);return"function"==typeof p&&$indexOf(e,".prototype.")>-1?callBind(p):p},util_inspect=require$$0$3.inspect,hasMap="function"==typeof Map&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize=hasMap&&mapSizeDescriptor&&"function"==typeof mapSizeDescriptor.get?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet="function"==typeof Set&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&"function"==typeof setSizeDescriptor.get?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap="function"==typeof WeakMap&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet="function"==typeof WeakSet&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef="function"==typeof WeakRef&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString=Object.prototype.toString,functionToString=Function.prototype.toString,match=String.prototype.match,bigIntValueOf="function"==typeof BigInt?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,hasShammedSymbols="function"==typeof Symbol&&"object"==typeof Symbol.iterator,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null),inspectCustom=util_inspect.custom,inspectSymbol=inspectCustom&&isSymbol(inspectCustom)?inspectCustom:null,toStringTag="function"==typeof Symbol&&void 0!==Symbol.toStringTag?Symbol.toStringTag:null,objectInspect=function e(a,p,t,d){var i=p||{};if(has$3(i,"quoteStyle")&&"single"!==i.quoteStyle&&"double"!==i.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has$3(i,"maxStringLength")&&("number"==typeof i.maxStringLength?i.maxStringLength<0&&i.maxStringLength!==1/0:null!==i.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var r=!has$3(i,"customInspect")||i.customInspect;if("boolean"!=typeof r&&"symbol"!==r)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has$3(i,"indent")&&null!==i.indent&&"\t"!==i.indent&&!(parseInt(i.indent,10)===i.indent&&i.indent>0))throw new TypeError('options "indent" must be "\\t", an integer > 0, or `null`');if(void 0===a)return"undefined";if(null===a)return"null";if("boolean"==typeof a)return a?"true":"false";if("string"==typeof a)return inspectString(a,i);if("number"==typeof a)return 0===a?1/0/a>0?"0":"-0":String(a);if("bigint"==typeof a)return String(a)+"n";var n=void 0===i.depth?5:i.depth;if(void 0===t&&(t=0),t>=n&&n>0&&"object"==typeof a)return isArray$3(a)?"[Array]":"[Object]";var s=getIndent(i,t);if(void 0===d)d=[];else if(indexOf(d,a)>=0)return"[Circular]";function o(a,p,r){if(p&&(d=d.slice()).push(p),r){var n={depth:i.depth};return has$3(i,"quoteStyle")&&(n.quoteStyle=i.quoteStyle),e(a,n,t+1,d)}return e(a,i,t+1,d)}if("function"==typeof a){var l=nameOf(a),m=arrObjKeys(a,o);return"[Function"+(l?": "+l:" (anonymous)")+"]"+(m.length>0?" { "+m.join(", ")+" }":"")}if(isSymbol(a)){var u=hasShammedSymbols?String(a).replace(/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(a);return"object"!=typeof a||hasShammedSymbols?u:markBoxed(u)}if(isElement(a)){for(var c="<"+String(a.nodeName).toLowerCase(),h=a.attributes||[],v=0;v"}if(isArray$3(a)){if(0===a.length)return"[]";var f=arrObjKeys(a,o);return s&&!singleLineValues(f)?"["+indentedJoin(f,s)+"]":"[ "+f.join(", ")+" ]"}if(isError(a)){var _=arrObjKeys(a,o);return 0===_.length?"["+String(a)+"]":"{ ["+String(a)+"] "+_.join(", ")+" }"}if("object"==typeof a&&r){if(inspectSymbol&&"function"==typeof a[inspectSymbol])return a[inspectSymbol]();if("symbol"!==r&&"function"==typeof a.inspect)return a.inspect()}if(isMap(a)){var y=[];return mapForEach.call(a,(function(e,p){y.push(o(p,a,!0)+" => "+o(e,a))})),collectionOf("Map",mapSize.call(a),y,s)}if(isSet(a)){var w=[];return setForEach.call(a,(function(e){w.push(o(e,a))})),collectionOf("Set",setSize.call(a),w,s)}if(isWeakMap(a))return weakCollectionOf("WeakMap");if(isWeakSet(a))return weakCollectionOf("WeakSet");if(isWeakRef(a))return weakCollectionOf("WeakRef");if(isNumber(a))return markBoxed(o(Number(a)));if(isBigInt(a))return markBoxed(o(bigIntValueOf.call(a)));if(isBoolean(a))return markBoxed(booleanValueOf.call(a));if(isString(a))return markBoxed(o(String(a)));if(!isDate(a)&&!isRegExp$1(a)){var g=arrObjKeys(a,o),b=gPO?gPO(a)===Object.prototype:a instanceof Object||a.constructor===Object,S=a instanceof Object?"":"null prototype",N=!b&&toStringTag&&Object(a)===a&&toStringTag in a?toStr(a).slice(8,-1):S?"Object":"",T=(b||"function"!=typeof a.constructor?"":a.constructor.name?a.constructor.name+" ":"")+(N||S?"["+[].concat(N||[],S||[]).join(": ")+"] ":"");return 0===g.length?T+"{}":s?T+"{"+indentedJoin(g,s)+"}":T+"{ "+g.join(", ")+" }"}return String(a)};function wrapQuotes(e,a,p){var t="double"===(p.quoteStyle||a)?'"':"'";return t+e+t}function quote(e){return String(e).replace(/"/g,""")}function isArray$3(e){return!("[object Array]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isDate(e){return!("[object Date]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isRegExp$1(e){return!("[object RegExp]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isError(e){return!("[object Error]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isString(e){return!("[object String]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isNumber(e){return!("[object Number]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isBoolean(e){return!("[object Boolean]"!==toStr(e)||toStringTag&&"object"==typeof e&&toStringTag in e)}function isSymbol(e){if(hasShammedSymbols)return e&&"object"==typeof e&&e instanceof Symbol;if("symbol"==typeof e)return!0;if(!e||"object"!=typeof e||!symToString)return!1;try{return symToString.call(e),!0}catch(e){}return!1}function isBigInt(e){if(!e||"object"!=typeof e||!bigIntValueOf)return!1;try{return bigIntValueOf.call(e),!0}catch(e){}return!1}var hasOwn=Object.prototype.hasOwnProperty||function(e){return e in this};function has$3(e,a){return hasOwn.call(e,a)}function toStr(e){return objectToString.call(e)}function nameOf(e){if(e.name)return e.name;var a=match.call(functionToString.call(e),/^function\s*([\w$]+)/);return a?a[1]:null}function indexOf(e,a){if(e.indexOf)return e.indexOf(a);for(var p=0,t=e.length;pa.maxStringLength){var p=e.length-a.maxStringLength,t="... "+p+" more character"+(p>1?"s":"");return inspectString(e.slice(0,a.maxStringLength),a)+t}return wrapQuotes(e.replace(/(['\\])/g,"\\$1").replace(/[\x00-\x1f]/g,lowbyte),"single",a)}function lowbyte(e){var a=e.charCodeAt(0),p={8:"b",9:"t",10:"n",12:"f",13:"r"}[a];return p?"\\"+p:"\\x"+(a<16?"0":"")+a.toString(16).toUpperCase()}function markBoxed(e){return"Object("+e+")"}function weakCollectionOf(e){return e+" { ? }"}function collectionOf(e,a,p,t){return e+" ("+a+") {"+(t?indentedJoin(p,t):p.join(", "))+"}"}function singleLineValues(e){for(var a=0;a=0)return!1;return!0}function getIndent(e,a){var p;if("\t"===e.indent)p="\t";else{if(!("number"==typeof e.indent&&e.indent>0))return null;p=Array(e.indent+1).join(" ")}return{base:p,prev:Array(a+1).join(p)}}function indentedJoin(e,a){if(0===e.length)return"";var p="\n"+a.prev+a.base;return p+e.join(","+p)+"\n"+a.prev}function arrObjKeys(e,a){var p=isArray$3(e),t=[];if(p){t.length=e.length;for(var d=0;d1;){var a=e.pop(),p=a.obj[a.prop];if(isArray$2(p)){for(var t=[],d=0;d=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122||d===formats.RFC1738&&(40===s||41===s)?r+=i.charAt(n):s<128?r+=hexTable[s]:s<2048?r+=hexTable[192|s>>6]+hexTable[128|63&s]:s<55296||s>=57344?r+=hexTable[224|s>>12]+hexTable[128|s>>6&63]+hexTable[128|63&s]:(n+=1,s=65536+((1023&s)<<10|1023&i.charCodeAt(n)),r+=hexTable[240|s>>18]+hexTable[128|s>>12&63]+hexTable[128|s>>6&63]+hexTable[128|63&s])}return r},compact=function(e){for(var a=[{obj:{o:e},prop:"o"}],p=[],t=0;t0?f.join(",")||null:void 0}];else if(isArray$1(n))_=n;else{var w=Object.keys(f);_=s?w.sort(s):w}for(var g=0;g<_.length;++g){var b=_[g],S="object"==typeof b&&void 0!==b.value?b.value:f[b];if(!i||null!==S){var N=isArray$1(f)?"function"==typeof t?t(p,b):p:p+(o?"."+b:"["+b+"]");v.set(a,!0);var T=sideChannel();pushToArray(y,e(S,N,t,d,i,r,n,s,o,l,m,u,c,h,T))}}return y},normalizeStringifyOptions=function(e){if(!e)return defaults$1;if(null!==e.encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");var a=e.charset||defaults$1.charset;if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var p=formats.default;if(void 0!==e.format){if(!has$1.call(formats.formatters,e.format))throw new TypeError("Unknown format option provided.");p=e.format}var t=formats.formatters[p],d=defaults$1.filter;return("function"==typeof e.filter||isArray$1(e.filter))&&(d=e.filter),{addQueryPrefix:"boolean"==typeof e.addQueryPrefix?e.addQueryPrefix:defaults$1.addQueryPrefix,allowDots:void 0===e.allowDots?defaults$1.allowDots:!!e.allowDots,charset:a,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:defaults$1.charsetSentinel,delimiter:void 0===e.delimiter?defaults$1.delimiter:e.delimiter,encode:"boolean"==typeof e.encode?e.encode:defaults$1.encode,encoder:"function"==typeof e.encoder?e.encoder:defaults$1.encoder,encodeValuesOnly:"boolean"==typeof e.encodeValuesOnly?e.encodeValuesOnly:defaults$1.encodeValuesOnly,filter:d,format:p,formatter:t,serializeDate:"function"==typeof e.serializeDate?e.serializeDate:defaults$1.serializeDate,skipNulls:"boolean"==typeof e.skipNulls?e.skipNulls:defaults$1.skipNulls,sort:"function"==typeof e.sort?e.sort:null,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:defaults$1.strictNullHandling}},stringify_1=function(e,a){var p,t=e,d=normalizeStringifyOptions(a);"function"==typeof d.filter?t=(0,d.filter)("",t):isArray$1(d.filter)&&(p=d.filter);var i,r=[];if("object"!=typeof t||null===t)return"";i=a&&a.arrayFormat in arrayPrefixGenerators?a.arrayFormat:a&&"indices"in a?a.indices?"indices":"repeat":"indices";var n=arrayPrefixGenerators[i];p||(p=Object.keys(t)),d.sort&&p.sort(d.sort);for(var s=sideChannel(),o=0;o0?u+m:""},has=Object.prototype.hasOwnProperty,isArray=Array.isArray,defaults={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:utils$1.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},interpretNumericEntities=function(e){return e.replace(/&#(\d+);/g,(function(e,a){return String.fromCharCode(parseInt(a,10))}))},parseArrayValue=function(e,a){return e&&"string"==typeof e&&a.comma&&e.indexOf(",")>-1?e.split(","):e},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function(e,a){var p,t={},d=a.ignoreQueryPrefix?e.replace(/^\?/,""):e,i=a.parameterLimit===1/0?void 0:a.parameterLimit,r=d.split(a.delimiter,i),n=-1,s=a.charset;if(a.charsetSentinel)for(p=0;p-1&&(l=isArray(l)?[l]:l),has.call(t,o)?t[o]=utils$1.combine(t[o],l):t[o]=l}return t},parseObject=function(e,a,p,t){for(var d=t?a:parseArrayValue(a,p),i=e.length-1;i>=0;--i){var r,n=e[i];if("[]"===n&&p.parseArrays)r=[].concat(d);else{r=p.plainObjects?Object.create(null):{};var s="["===n.charAt(0)&&"]"===n.charAt(n.length-1)?n.slice(1,-1):n,o=parseInt(s,10);p.parseArrays||""!==s?!isNaN(o)&&n!==s&&String(o)===s&&o>=0&&p.parseArrays&&o<=p.arrayLimit?(r=[])[o]=d:r[s]=d:r={0:d}}d=r}return d},parseKeys=function(e,a,p,t){if(e){var d=p.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,i=/(\[[^[\]]*])/g,r=p.depth>0&&/(\[[^[\]]*])/.exec(d),n=r?d.slice(0,r.index):d,s=[];if(n){if(!p.plainObjects&&has.call(Object.prototype,n)&&!p.allowPrototypes)return;s.push(n)}for(var o=0;p.depth>0&&null!==(r=i.exec(d))&&ot)throw new TypeError("Argument is not in byte range");return n}if(!isNaN(n)&&r.clamp)return n=evenRound(n),nt&&(n=t),n;if(!Number.isFinite(n)||0===n)return 0;if(n=sign(n)*Math.floor(Math.abs(n)),n%=d,!a.unsigned&&n>=i)return n-d;if(a.unsigned)if(n<0)n+=d;else if(-0===n)return 0;return n}}conversions.void=function(){},conversions.boolean=function(e){return!!e},conversions.byte=createNumberConversion(8,{unsigned:!1}),conversions.octet=createNumberConversion(8,{unsigned:!0}),conversions.short=createNumberConversion(16,{unsigned:!1}),conversions["unsigned short"]=createNumberConversion(16,{unsigned:!0}),conversions.long=createNumberConversion(32,{unsigned:!1}),conversions["unsigned long"]=createNumberConversion(32,{unsigned:!0}),conversions["long long"]=createNumberConversion(32,{unsigned:!1,moduloBitLength:64}),conversions["unsigned long long"]=createNumberConversion(32,{unsigned:!0,moduloBitLength:64}),conversions.double=function(e){const a=+e;if(!Number.isFinite(a))throw new TypeError("Argument is not a finite floating-point value");return a},conversions["unrestricted double"]=function(e){const a=+e;if(isNaN(a))throw new TypeError("Argument is NaN");return a},conversions.float=conversions.double,conversions["unrestricted float"]=conversions["unrestricted double"],conversions.DOMString=function(e,a){return a||(a={}),a.treatNullAsEmptyString&&null===e?"":String(e)},conversions.ByteString=function(e,a){const p=String(e);let t;for(let e=0;void 0!==(t=p.codePointAt(e));++e)if(t>255)throw new TypeError("Argument is not a valid bytestring");return p},conversions.USVString=function(e){const a=String(e),p=a.length,t=[];for(let e=0;e57343)t.push(String.fromCodePoint(d));else if(56320<=d&&d<=57343)t.push(String.fromCodePoint(65533));else if(e===p-1)t.push(String.fromCodePoint(65533));else{const p=a.charCodeAt(e+1);if(56320<=p&&p<=57343){const a=1023&d,i=1023&p;t.push(String.fromCodePoint(65536+1024*a+i)),++e}else t.push(String.fromCodePoint(65533))}}return t.join("")},conversions.Date=function(e,a){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e},conversions.RegExp=function(e,a){return e instanceof RegExp||(e=new RegExp(e)),e};var utils=createCommonjsModule((function(e){e.exports.mixin=function(e,a){const p=Object.getOwnPropertyNames(a);for(let t=0;t= 0x80 (not a basic code point)","invalid-input":"Invalid input"},baseMinusTMin=base-tMin,floor=Math.floor,stringFromCharCode=String.fromCharCode;function error$1(e){throw new RangeError(errors[e])}function map(e,a){const p=[];let t=e.length;for(;t--;)p[t]=a(e[t]);return p}function mapDomain(e,a){const p=e.split("@");let t="";p.length>1&&(t=p[0]+"@",e=p[1]);return t+map((e=e.replace(regexSeparators,".")).split("."),a).join(".")}function ucs2decode(e){const a=[];let p=0;const t=e.length;for(;p=55296&&d<=56319&&pString.fromCodePoint(...e),basicToDigit=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:base},digitToBasic=function(e,a){return e+22+75*(e<26)-((0!=a)<<5)},adapt=function(e,a,p){let t=0;for(e=p?floor(e/damp):e>>1,e+=floor(e/a);e>baseMinusTMin*tMax>>1;t+=base)e=floor(e/baseMinusTMin);return floor(t+(baseMinusTMin+1)*e/(e+skew))},decode=function(e){const a=[],p=e.length;let t=0,d=initialN,i=initialBias,r=e.lastIndexOf(delimiter);r<0&&(r=0);for(let p=0;p=128&&error$1("not-basic"),a.push(e.charCodeAt(p));for(let n=r>0?r+1:0;n=p&&error$1("invalid-input");const r=basicToDigit(e.charCodeAt(n++));(r>=base||r>floor((maxInt-t)/a))&&error$1("overflow"),t+=r*a;const s=d<=i?tMin:d>=i+tMax?tMax:d-i;if(rfloor(maxInt/o)&&error$1("overflow"),a*=o}const s=a.length+1;i=adapt(t-r,s,0==r),floor(t/s)>maxInt-d&&error$1("overflow"),d+=floor(t/s),t%=s,a.splice(t++,0,d)}return String.fromCodePoint(...a)},encode=function(e){const a=[];let p=(e=ucs2decode(e)).length,t=initialN,d=0,i=initialBias;for(const p of e)p<128&&a.push(stringFromCharCode(p));let r=a.length,n=r;for(r&&a.push(delimiter);n=t&&afloor((maxInt-d)/s)&&error$1("overflow"),d+=(p-t)*s,t=p;for(const p of e)if(pmaxInt&&error$1("overflow"),p==t){let e=d;for(let p=base;;p+=base){const t=p<=i?tMin:p>=i+tMax?tMax:p-i;if(e=e)return d;d[0][0]>e?p=t-1:a=t+1}return null}var regexAstralSymbols=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function countSymbols(e){return e.replace(regexAstralSymbols,"_").length}function mapChars(e,a,p){for(var t=!1,d="",i=countSymbols(e),r=0;r253||0===r.length)&&(d.error=!0);for(var n=0;n63||0===i.length){d.error=!0;break}}return d.error?null:i.join(".")},toUnicode=function(e,a){var p=processing(e,a,PROCESSING_OPTIONS.NONTRANSITIONAL);return{domain:p.string,error:p.error}},PROCESSING_OPTIONS_1=PROCESSING_OPTIONS,tr46={toASCII:toASCII,toUnicode:toUnicode,PROCESSING_OPTIONS:PROCESSING_OPTIONS_1},urlStateMachine=createCommonjsModule((function(e){const a={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},p=Symbol("failure");function t(e){return punycode_1.ucs2.decode(e).length}function d(e,a){const p=e[a];return isNaN(p)?void 0:String.fromCodePoint(p)}function i(e){return e>=48&&e<=57}function r(e){return e>=65&&e<=90||e>=97&&e<=122}function n(e){return i(e)||e>=65&&e<=70||e>=97&&e<=102}function s(e){return"."===e||"%2e"===e.toLowerCase()}function o(e){return 2===e.length&&r(e.codePointAt(0))&&(":"===e[1]||"|"===e[1])}function l(e){return void 0!==a[e]}function m(e){return l(e.scheme)}function u(e){let a=e.toString(16).toUpperCase();return 1===a.length&&(a="0"+a),"%"+a}function c(e){return e<=31||e>126}const h=new Set([32,34,35,60,62,63,96,123,125]);function v(e){return c(e)||h.has(e)}const f=new Set([47,58,59,61,64,91,92,93,94,124]);function _(e){return v(e)||f.has(e)}function y(e,a){const p=String.fromCodePoint(e);return a(e)?function(e){const a=new Buffer(e);let p="";for(let e=0;e=2&&"0"===e.charAt(0)&&"x"===e.charAt(1).toLowerCase()?(e=e.substring(2),a=16):e.length>=2&&"0"===e.charAt(0)&&(e=e.substring(1),a=8),""===e)return 0;return(10===a?/[^0-9]/:16===a?/[^0-9A-Fa-f]/:/[^0-7]/).test(e)?p:parseInt(e,a)}function g(e,a){if("["===e[0])return"]"!==e[e.length-1]?p:function(e){const a=[0,0,0,0,0,0,0,0];let t=0,r=null,s=0;if(58===(e=punycode_1.ucs2.decode(e))[s]){if(58!==e[s+1])return p;s+=2,++t,r=t}for(;s6)return p;let r=0;for(;void 0!==e[s];){let n=null;if(r>0){if(!(46===e[s]&&r<4))return p;++s}if(!i(e[s]))return p;for(;i(e[s]);){const a=parseInt(d(e,s));if(null===n)n=a;else{if(0===n)return p;n=10*n+a}if(n>255)return p;++s}a[t]=256*a[t]+n,++r,2!==r&&4!==r||++t}if(4!==r)return p;break}if(58===e[s]){if(++s,void 0===e[s])return p}else if(void 0!==e[s])return p;a[t]=o,++t}if(null!==r){let e=t-r;for(t=7;0!==t&&e>0;){const p=a[r+e-1];a[r+e-1]=a[t],a[t]=p,--t,--e}}else if(null===r&&8!==t)return p;return a}(e.substring(1,e.length-1));if(!a)return function(e){if(a=e,-1!==a.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/))return p;var a;let t="";const d=punycode_1.ucs2.decode(e);for(let e=0;e1&&a.pop(),a.length>4)return e;const t=[];for(const d of a){if(""===d)return e;const a=w(d);if(a===p)return e;t.push(a)}for(let e=0;e255)return p;if(t[t.length-1]>=Math.pow(256,5-t.length))return p;let d=t.pop(),i=0;for(const e of t)d+=e*Math.pow(256,3-i),++i;return d}(r);return"number"==typeof s||s===p?s:r}function b(e){return"number"==typeof e?function(e){let a="",p=e;for(let e=1;e<=4;++e)a=String(p%256)+a,4!==e&&(a="."+a),p=Math.floor(p/256);return a}(e):e instanceof Array?"["+function(e){let a="";const p=function(e){let a=null,p=1,t=null,d=0;for(let i=0;ip&&(a=t,p=d),t=null,d=0):(null===t&&(t=i),++d);return d>p&&(a=t,p=d),{idx:a,len:p}}(e).idx;let t=!1;for(let d=0;d<=7;++d)t&&0===e[d]||(t&&(t=!1),p!==d?(a+=e[d].toString(16),7!==d&&(a+=":")):(a+=0===d?"::":":",t=!0));return a}(e)+"]":e}function S(e){const a=e.path;var p;0!==a.length&&("file"===e.scheme&&1===a.length&&(p=a[0],/^[A-Za-z]:$/.test(p))||a.pop())}function N(e){return""!==e.username||""!==e.password}function T(e,a,t,d,i){if(this.pointer=0,this.input=e,this.base=a||null,this.encodingOverride=t||"utf-8",this.stateOverride=i,this.url=d,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};const e=function(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}(this.input);e!==this.input&&(this.parseError=!0),this.input=e}const r=function(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}(this.input);for(r!==this.input&&(this.parseError=!0),this.input=r,this.state=i||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=punycode_1.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){const e=this.input[this.pointer],a=isNaN(e)?void 0:String.fromCodePoint(e),t=this["parse "+this.state](e,a);if(!t)break;if(t===p){this.failure=!0;break}}}T.prototype["parse scheme start"]=function(e,a){if(r(e))this.buffer+=a.toLowerCase(),this.state="scheme";else{if(this.stateOverride)return this.parseError=!0,p;this.state="no scheme",--this.pointer}return!0},T.prototype["parse scheme"]=function(e,a){if(function(e){return r(e)||i(e)}(e)||43===e||45===e||46===e)this.buffer+=a.toLowerCase();else if(58===e){if(this.stateOverride){if(m(this.url)&&!l(this.buffer))return!1;if(!m(this.url)&&l(this.buffer))return!1;if((N(this.url)||null!==this.url.port)&&"file"===this.buffer)return!1;if("file"===this.url.scheme&&(""===this.url.host||null===this.url.host))return!1}if(this.url.scheme=this.buffer,this.buffer="",this.stateOverride)return!1;"file"===this.url.scheme?(47===this.input[this.pointer+1]&&47===this.input[this.pointer+2]||(this.parseError=!0),this.state="file"):m(this.url)&&null!==this.base&&this.base.scheme===this.url.scheme?this.state="special relative or authority":m(this.url)?this.state="special authority slashes":47===this.input[this.pointer+1]?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else{if(this.stateOverride)return this.parseError=!0,p;this.buffer="",this.state="no scheme",this.pointer=-1}return!0},T.prototype["parse no scheme"]=function(e){return null===this.base||this.base.cannotBeABaseURL&&35!==e?p:(this.base.cannotBeABaseURL&&35===e?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):"file"===this.base.scheme?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)},T.prototype["parse special relative or authority"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0},T.prototype["parse path or authority"]=function(e){return 47===e?this.state="authority":(this.state="path",--this.pointer),!0},T.prototype["parse relative"]=function(e){return this.url.scheme=this.base.scheme,isNaN(e)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):47===e?this.state="relative slash":63===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):m(this.url)&&92===e?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0},T.prototype["parse relative slash"]=function(e){return!m(this.url)||47!==e&&92!==e?47===e?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer):(92===e&&(this.parseError=!0),this.state="special authority ignore slashes"),!0},T.prototype["parse special authority slashes"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0},T.prototype["parse special authority ignore slashes"]=function(e){return 47!==e&&92!==e?(this.state="authority",--this.pointer):this.parseError=!0,!0},T.prototype["parse authority"]=function(e,a){if(64===e){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;const e=t(this.buffer);for(let a=0;aMath.pow(2,16)-1)return this.parseError=!0,p;this.url.port=e===(d=this.url.scheme,a[d])?null:e,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}var d;return!0};const E=new Set([47,92,63,35]);T.prototype["parse file"]=function(e){var a,p;return this.url.scheme="file",47===e||92===e?(92===e&&(this.parseError=!0),this.state="file slash"):null!==this.base&&"file"===this.base.scheme?isNaN(e)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):63===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1==0||(a=e,p=this.input[this.pointer+1],!r(a)||58!==p&&124!==p)||this.input.length-this.pointer-1>=2&&!E.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),S(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0},T.prototype["parse file slash"]=function(e){var a;return 47===e||92===e?(92===e&&(this.parseError=!0),this.state="file host"):(null!==this.base&&"file"===this.base.scheme&&(2===(a=this.base.path[0]).length&&r(a.codePointAt(0))&&":"===a[1]?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0},T.prototype["parse file host"]=function(e,a){if(isNaN(e)||47===e||92===e||63===e||35===e)if(--this.pointer,!this.stateOverride&&o(this.buffer))this.parseError=!0,this.state="path";else if(""===this.buffer){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let e=g(this.buffer,m(this.url));if(e===p)return p;if("localhost"===e&&(e=""),this.url.host=e,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=a;return!0},T.prototype["parse path start"]=function(e){return m(this.url)?(92===e&&(this.parseError=!0),this.state="path",47!==e&&92!==e&&--this.pointer):this.stateOverride||63!==e?this.stateOverride||35!==e?void 0!==e&&(this.state="path",47!==e&&--this.pointer):(this.url.fragment="",this.state="fragment"):(this.url.query="",this.state="query"),!0},T.prototype["parse path"]=function(e){if(isNaN(e)||47===e||m(this.url)&&92===e||!this.stateOverride&&(63===e||35===e)){if(m(this.url)&&92===e&&(this.parseError=!0),".."===(a=(a=this.buffer).toLowerCase())||"%2e."===a||".%2e"===a||"%2e%2e"===a?(S(this.url),47===e||m(this.url)&&92===e||this.url.path.push("")):!s(this.buffer)||47===e||m(this.url)&&92===e?s(this.buffer)||("file"===this.url.scheme&&0===this.url.path.length&&o(this.buffer)&&(""!==this.url.host&&null!==this.url.host&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)):this.url.path.push(""),this.buffer="","file"===this.url.scheme&&(void 0===e||63===e||35===e))for(;this.url.path.length>1&&""===this.url.path[0];)this.parseError=!0,this.url.path.shift();63===e&&(this.url.query="",this.state="query"),35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||n(this.input[this.pointer+1])&&n(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=y(e,v);var a;return!0},T.prototype["parse cannot-be-a-base-URL path"]=function(e){return 63===e?(this.url.query="",this.state="query"):35===e?(this.url.fragment="",this.state="fragment"):(isNaN(e)||37===e||(this.parseError=!0),37!==e||n(this.input[this.pointer+1])&&n(this.input[this.pointer+2])||(this.parseError=!0),isNaN(e)||(this.url.path[0]=this.url.path[0]+y(e,c))),!0},T.prototype["parse query"]=function(e,a){if(isNaN(e)||!this.stateOverride&&35===e){m(this.url)&&"ws"!==this.url.scheme&&"wss"!==this.url.scheme||(this.encodingOverride="utf-8");const a=new Buffer(this.buffer);for(let e=0;e126||34===a[e]||35===a[e]||60===a[e]||62===a[e]?this.url.query+=u(a[e]):this.url.query+=String.fromCodePoint(a[e]);this.buffer="",35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||n(this.input[this.pointer+1])&&n(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=a;return!0},T.prototype["parse fragment"]=function(e){return isNaN(e)||(0===e?this.parseError=!0:(37!==e||n(this.input[this.pointer+1])&&n(this.input[this.pointer+2])||(this.parseError=!0),this.url.fragment+=y(e,c))),!0},e.exports.serializeURL=function(e,a){let p=e.scheme+":";if(null!==e.host?(p+="//",""===e.username&&""===e.password||(p+=e.username,""!==e.password&&(p+=":"+e.password),p+="@"),p+=b(e.host),null!==e.port&&(p+=":"+e.port)):null===e.host&&"file"===e.scheme&&(p+="//"),e.cannotBeABaseURL)p+=e.path[0];else for(const a of e.path)p+="/"+a;return null!==e.query&&(p+="?"+e.query),a||null===e.fragment||(p+="#"+e.fragment),p},e.exports.serializeURLOrigin=function(a){switch(a.scheme){case"blob":try{return e.exports.serializeURLOrigin(e.exports.parseURL(a.path[0]))}catch(e){return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return function(e){let a=e.scheme+"://";return a+=b(e.host),null!==e.port&&(a+=":"+e.port),a}({scheme:a.scheme,host:a.host,port:a.port});case"file":return"file://";default:return"null"}},e.exports.basicURLParse=function(e,a){void 0===a&&(a={});const p=new T(e,a.baseURL,a.encodingOverride,a.url,a.stateOverride);return p.failure?"failure":p.url},e.exports.setTheUsername=function(e,a){e.username="";const p=punycode_1.ucs2.decode(a);for(let a=0;a!!e&&e[a]instanceof URLImpl_1.implementation,create(e,a){let t=Object.create(p.prototype);return this.setup(t,e,a),t},setup(e,p,t){t||(t={}),t.wrapper=e,e[a]=new URLImpl_1.implementation(p,t),e[a][utils.wrapperSymbol]=e},interface:p,expose:{Window:{URL:p},Worker:{URL:p}}}})),URL$2=URL_1.interface,serializeURL=urlStateMachine.serializeURL,serializeURLOrigin=urlStateMachine.serializeURLOrigin,basicURLParse=urlStateMachine.basicURLParse,setTheUsername=urlStateMachine.setTheUsername,setThePassword=urlStateMachine.setThePassword,serializeHost=urlStateMachine.serializeHost,serializeInteger=urlStateMachine.serializeInteger,parseURL$1=urlStateMachine.parseURL,publicApi={URL:URL$2,serializeURL:serializeURL,serializeURLOrigin:serializeURLOrigin,basicURLParse:basicURLParse,setTheUsername:setTheUsername,setThePassword:setThePassword,serializeHost:serializeHost,serializeInteger:serializeInteger,parseURL:parseURL$1};const Readable=Stream.Readable,BUFFER=Symbol("buffer"),TYPE=Symbol("type");class Blob$1{constructor(){this[TYPE]="";const e=arguments[0],a=arguments[1],p=[];let t=0;if(e){const a=e,d=Number(a.length);for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:{},t=p.size;let d=void 0===t?0:t;var i=p.timeout;let r=void 0===i?0:i;null==e?e=null:isURLSearchParams(e)?e=Buffer.from(e.toString()):isBlob$1(e)||Buffer.isBuffer(e)||("[object ArrayBuffer]"===Object.prototype.toString.call(e)?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof Stream||(e=Buffer.from(String(e)))),this[INTERNALS]={body:e,disturbed:!1,error:null},this.size=d,this.timeout=r,e instanceof Stream&&e.on("error",(function(e){const p="AbortError"===e.name?e:new FetchError(`Invalid response body while trying to fetch ${a.url}: ${e.message}`,"system",e);a[INTERNALS].error=p}))}function consumeBody(){var e=this;if(this[INTERNALS].disturbed)return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[INTERNALS].disturbed=!0,this[INTERNALS].error)return Body.Promise.reject(this[INTERNALS].error);let a=this.body;if(null===a)return Body.Promise.resolve(Buffer.alloc(0));if(isBlob$1(a)&&(a=a.stream()),Buffer.isBuffer(a))return Body.Promise.resolve(a);if(!(a instanceof Stream))return Body.Promise.resolve(Buffer.alloc(0));let p=[],t=0,d=!1;return new Body.Promise((function(i,r){let n;e.timeout&&(n=setTimeout((function(){d=!0,r(new FetchError(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))}),e.timeout)),a.on("error",(function(a){"AbortError"===a.name?(d=!0,r(a)):r(new FetchError(`Invalid response body while trying to fetch ${e.url}: ${a.message}`,"system",a))})),a.on("data",(function(a){if(!d&&null!==a){if(e.size&&t+a.length>e.size)return d=!0,void r(new FetchError(`content size at ${e.url} over limit: ${e.size}`,"max-size"));t+=a.length,p.push(a)}})),a.on("end",(function(){if(!d){clearTimeout(n);try{i(Buffer.concat(p,t))}catch(a){r(new FetchError(`Could not create Buffer from response body for ${e.url}: ${a.message}`,"system",a))}}}))}))}function convertBody(e,a){if("function"!=typeof convert)throw new Error("The package `encoding` must be installed to use the textConverted() function");const p=a.get("content-type");let t,d,i="utf-8";return p&&(t=/charset=([^;]*)/i.exec(p)),d=e.slice(0,1024).toString(),!t&&d&&(t=/0&&void 0!==arguments[0]?arguments[0]:void 0;if(this[MAP]=Object.create(null),e instanceof Headers){const a=e.raw(),p=Object.keys(a);for(const e of p)for(const p of a[e])this.append(e,p)}else if(null==e);else{if("object"!=typeof e)throw new TypeError("Provided initializer must be an object");{const a=e[Symbol.iterator];if(null!=a){if("function"!=typeof a)throw new TypeError("Header pairs must be iterable");const p=[];for(const a of e){if("object"!=typeof a||"function"!=typeof a[Symbol.iterator])throw new TypeError("Each header pair must be iterable");p.push(Array.from(a))}for(const e of p){if(2!==e.length)throw new TypeError("Each header pair must be a name/value tuple");this.append(e[0],e[1])}}else for(const a of Object.keys(e)){const p=e[a];this.append(a,p)}}}}get(e){validateName(e=`${e}`);const a=find(this[MAP],e);return void 0===a?null:this[MAP][a].join(", ")}forEach(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,p=getHeaders(this),t=0;for(;t1&&void 0!==arguments[1]?arguments[1]:"key+value";const p=Object.keys(e[MAP]).sort();return p.map("key"===a?function(e){return e.toLowerCase()}:"value"===a?function(a){return e[MAP][a].join(", ")}:function(a){return[a.toLowerCase(),e[MAP][a].join(", ")]})}Headers.prototype.entries=Headers.prototype[Symbol.iterator],Object.defineProperty(Headers.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(Headers.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});const INTERNAL=Symbol("internal");function createHeadersIterator(e,a){const p=Object.create(HeadersIteratorPrototype);return p[INTERNAL]={target:e,kind:a,index:0},p}const HeadersIteratorPrototype=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==HeadersIteratorPrototype)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[INTERNAL];const a=e.target,p=e.kind,t=e.index,d=getHeaders(a,p);return t>=d.length?{value:void 0,done:!0}:(this[INTERNAL].index=t+1,{value:d[t],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));function exportNodeCompatibleHeaders(e){const a=Object.assign({__proto__:null},e[MAP]),p=find(e[MAP],"Host");return void 0!==p&&(a[p]=a[p][0]),a}function createHeadersLenient(e){const a=new Headers;for(const p of Object.keys(e))if(!invalidTokenRegex.test(p))if(Array.isArray(e[p]))for(const t of e[p])invalidHeaderCharRegex.test(t)||(void 0===a[MAP][p]?a[MAP][p]=[t]:a[MAP][p].push(t));else invalidHeaderCharRegex.test(e[p])||(a[MAP][p]=[e[p]]);return a}Object.defineProperty(HeadersIteratorPrototype,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});const INTERNALS$1=Symbol("Response internals"),STATUS_CODES=http.STATUS_CODES;class Response{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Body.call(this,e,a);const p=a.status||200,t=new Headers(a.headers);if(null!=e&&!t.has("Content-Type")){const a=extractContentType(e);a&&t.append("Content-Type",a)}this[INTERNALS$1]={url:a.url,status:p,statusText:a.statusText||STATUS_CODES[p],headers:t,counter:a.counter}}get url(){return this[INTERNALS$1].url||""}get status(){return this[INTERNALS$1].status}get ok(){return this[INTERNALS$1].status>=200&&this[INTERNALS$1].status<300}get redirected(){return this[INTERNALS$1].counter>0}get statusText(){return this[INTERNALS$1].statusText}get headers(){return this[INTERNALS$1].headers}clone(){return new Response(clone(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}}Body.mixIn(Response.prototype),Object.defineProperties(Response.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}}),Object.defineProperty(Response.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});const INTERNALS$2=Symbol("Request internals"),URL$1=Url.URL||publicApi.URL,parse_url=Url.parse,format_url=Url.format;function parseURL(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new URL$1(e).toString()),parse_url(e)}const streamDestructionSupported="destroy"in Stream.Readable.prototype;function isRequest(e){return"object"==typeof e&&"object"==typeof e[INTERNALS$2]}function isAbortSignal(e){const a=e&&"object"==typeof e&&Object.getPrototypeOf(e);return!(!a||"AbortSignal"!==a.constructor.name)}class Request{constructor(e){let a,p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};isRequest(e)?a=parseURL(e.url):(a=e&&e.href?parseURL(e.href):parseURL(`${e}`),e={});let t=p.method||e.method||"GET";if(t=t.toUpperCase(),(null!=p.body||isRequest(e)&&null!==e.body)&&("GET"===t||"HEAD"===t))throw new TypeError("Request with GET/HEAD method cannot have body");let d=null!=p.body?p.body:isRequest(e)&&null!==e.body?clone(e):null;Body.call(this,d,{timeout:p.timeout||e.timeout||0,size:p.size||e.size||0});const i=new Headers(p.headers||e.headers||{});if(null!=d&&!i.has("Content-Type")){const e=extractContentType(d);e&&i.append("Content-Type",e)}let r=isRequest(e)?e.signal:null;if("signal"in p&&(r=p.signal),null!=r&&!isAbortSignal(r))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[INTERNALS$2]={method:t,redirect:p.redirect||e.redirect||"follow",headers:i,parsedURL:a,signal:r},this.follow=void 0!==p.follow?p.follow:void 0!==e.follow?e.follow:20,this.compress=void 0!==p.compress?p.compress:void 0===e.compress||e.compress,this.counter=p.counter||e.counter||0,this.agent=p.agent||e.agent}get method(){return this[INTERNALS$2].method}get url(){return format_url(this[INTERNALS$2].parsedURL)}get headers(){return this[INTERNALS$2].headers}get redirect(){return this[INTERNALS$2].redirect}get signal(){return this[INTERNALS$2].signal}clone(){return new Request(this)}}function getNodeRequestOptions(e){const a=e[INTERNALS$2].parsedURL,p=new Headers(e[INTERNALS$2].headers);if(p.has("Accept")||p.set("Accept","*/*"),!a.protocol||!a.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(a.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof Stream.Readable&&!streamDestructionSupported)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let t=null;if(null==e.body&&/^(POST|PUT)$/i.test(e.method)&&(t="0"),null!=e.body){const a=getTotalBytes(e);"number"==typeof a&&(t=String(a))}t&&p.set("Content-Length",t),p.has("User-Agent")||p.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!p.has("Accept-Encoding")&&p.set("Accept-Encoding","gzip,deflate");let d=e.agent;return"function"==typeof d&&(d=d(a)),p.has("Connection")||d||p.set("Connection","close"),Object.assign({},a,{method:e.method,headers:exportNodeCompatibleHeaders(p),agent:d})}function AbortError(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}Body.mixIn(Request.prototype),Object.defineProperty(Request.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(Request.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}}),AbortError.prototype=Object.create(Error.prototype),AbortError.prototype.constructor=AbortError,AbortError.prototype.name="AbortError";const URL$1$1=Url.URL||publicApi.URL,PassThrough$1=Stream.PassThrough,isDomainOrSubdomain=function(e,a){const p=new URL$1$1(a).hostname,t=new URL$1$1(e).hostname;return p===t||"."===p[p.length-t.length-1]&&p.endsWith(t)};function fetch$1(e,a){if(!fetch$1.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return Body.Promise=fetch$1.Promise,new fetch$1.Promise((function(p,t){const d=new Request(e,a),i=getNodeRequestOptions(d),r=("https:"===i.protocol?https:http).request,n=d.signal;let s=null;const o=function(){let e=new AbortError("The user aborted a request.");t(e),d.body&&d.body instanceof Stream.Readable&&d.body.destroy(e),s&&s.body&&s.body.emit("error",e)};if(n&&n.aborted)return void o();const l=function(){o(),c()},m=r(i);let u;function c(){m.abort(),n&&n.removeEventListener("abort",l),clearTimeout(u)}n&&n.addEventListener("abort",l),d.timeout&&m.once("socket",(function(e){u=setTimeout((function(){t(new FetchError(`network timeout at: ${d.url}`,"request-timeout")),c()}),d.timeout)})),m.on("error",(function(e){t(new FetchError(`request to ${d.url} failed, reason: ${e.message}`,"system",e)),c()})),m.on("response",(function(e){clearTimeout(u);const a=createHeadersLenient(e.headers);if(fetch$1.isRedirect(e.statusCode)){const i=a.get("Location");let r=null;try{r=null===i?null:new URL$1$1(i,d.url).toString()}catch(e){if("manual"!==d.redirect)return t(new FetchError(`uri requested responds with an invalid redirect URL: ${i}`,"invalid-redirect")),void c()}switch(d.redirect){case"error":return t(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${d.url}`,"no-redirect")),void c();case"manual":if(null!==r)try{a.set("Location",r)}catch(e){t(e)}break;case"follow":if(null===r)break;if(d.counter>=d.follow)return t(new FetchError(`maximum redirect reached at: ${d.url}`,"max-redirect")),void c();const i={headers:new Headers(d.headers),follow:d.follow,counter:d.counter+1,agent:d.agent,compress:d.compress,method:d.method,body:d.body,signal:d.signal,timeout:d.timeout,size:d.size};if(!isDomainOrSubdomain(d.url,r))for(const e of["authorization","www-authenticate","cookie","cookie2"])i.headers.delete(e);return 303!==e.statusCode&&d.body&&null===getTotalBytes(d)?(t(new FetchError("Cannot follow redirect with body being a readable stream","unsupported-redirect")),void c()):(303!==e.statusCode&&(301!==e.statusCode&&302!==e.statusCode||"POST"!==d.method)||(i.method="GET",i.body=void 0,i.headers.delete("content-length")),p(fetch$1(new Request(r,i))),void c())}}e.once("end",(function(){n&&n.removeEventListener("abort",l)}));let i=e.pipe(new PassThrough$1);const r={url:d.url,status:e.statusCode,statusText:e.statusMessage,headers:a,size:d.size,timeout:d.timeout,counter:d.counter},o=a.get("Content-Encoding");if(!d.compress||"HEAD"===d.method||null===o||204===e.statusCode||304===e.statusCode)return s=new Response(i,r),void p(s);const m={flush:zlib.Z_SYNC_FLUSH,finishFlush:zlib.Z_SYNC_FLUSH};if("gzip"==o||"x-gzip"==o)return i=i.pipe(zlib.createGunzip(m)),s=new Response(i,r),void p(s);if("deflate"!=o&&"x-deflate"!=o){if("br"==o&&"function"==typeof zlib.createBrotliDecompress)return i=i.pipe(zlib.createBrotliDecompress()),s=new Response(i,r),void p(s);s=new Response(i,r),p(s)}else{e.pipe(new PassThrough$1).once("data",(function(e){i=8==(15&e[0])?i.pipe(zlib.createInflate()):i.pipe(zlib.createInflateRaw()),s=new Response(i,r),p(s)}))}})),writeToStream(m,d)}))}fetch$1.isRedirect=function(e){return 301===e||302===e||303===e||307===e||308===e},fetch$1.Promise=global.Promise;var lib=Object.freeze({__proto__:null,default:fetch$1,Headers:Headers,Request:Request,Response:Response,FetchError:FetchError}),require$$0=getAugmentedNamespace(unfetch_module$1),require$$1=getAugmentedNamespace(lib);function r(e){return e&&e.default||e}var isomorphicUnfetch=commonjsGlobal.fetch=commonjsGlobal.fetch||("undefined"==typeof process?r(require$$0):function(e,a){return r(require$$1)(String(e).replace(/^\/\//g,"https://"),a)}),urls={rest:{beta:"https://data.alpaca.markets/v1beta1",account:"https://api.alpaca.markets/v2",market_data_v2:"https://data.alpaca.markets/v2",market_data_v1:"https://data.alpaca.markets/v1"},websocket:{account:"wss://api.alpaca.markets/stream",market_data:(e="iex")=>`wss://stream.data.alpaca.markets/v2/${e}`}};function account(e){if(e)try{return Object.assign(Object.assign({},e),{raw:()=>e,buying_power:number(e.buying_power),regt_buying_power:number(e.regt_buying_power),daytrading_buying_power:number(e.daytrading_buying_power),cash:number(e.cash),created_at:new Date(e.created_at),portfolio_value:number(e.portfolio_value),multiplier:number(e.multiplier),equity:number(e.equity),last_equity:number(e.last_equity),long_market_value:number(e.long_market_value),short_market_value:number(e.short_market_value),initial_margin:number(e.initial_margin),maintenance_margin:number(e.maintenance_margin),last_maintenance_margin:number(e.last_maintenance_margin),sma:number(e.sma),status:e.status})}catch(e){throw new Error(`Account parsing failed. ${e.message}`)}}function clock(e){if(e)try{return{raw:()=>e,timestamp:new Date(e.timestamp),is_open:e.is_open,next_open:new Date(e.next_open),next_close:new Date(e.next_close)}}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function order(e){if(e)try{return Object.assign(Object.assign({},e),{raw:()=>e,created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),submitted_at:new Date(e.submitted_at),filled_at:new Date(e.filled_at),expired_at:new Date(e.expired_at),canceled_at:new Date(e.canceled_at),failed_at:new Date(e.failed_at),replaced_at:new Date(e.replaced_at),qty:number(e.qty),filled_qty:number(e.filled_qty),type:e.type,side:e.side,time_in_force:e.time_in_force,limit_price:number(e.limit_price),stop_price:number(e.stop_price),filled_avg_price:number(e.filled_avg_price),status:e.status,legs:orders(e.legs),trail_price:number(e.trail_price),trail_percent:number(e.trail_percent),hwm:number(e.hwm),order_class:e.order_class})}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function orders(e){return e?e.map((e=>order(e))):void 0}function canceled_order(e){if(!e)return;let a=e.body;delete e.body;try{return Object.assign(Object.assign({},e),{order:Object.assign(Object.assign({},a),{raw:()=>a,created_at:new Date(a.created_at),updated_at:new Date(a.updated_at),submitted_at:new Date(a.submitted_at),filled_at:new Date(a.filled_at),expired_at:new Date(a.expired_at),canceled_at:new Date(a.canceled_at),failed_at:new Date(a.failed_at),replaced_at:new Date(a.replaced_at),qty:number(a.qty),filled_qty:number(a.filled_qty),type:a.type,side:a.side,time_in_force:a.time_in_force,limit_price:number(a.limit_price),stop_price:number(a.stop_price),filled_avg_price:number(a.filled_avg_price),status:a.status,legs:orders(a.legs),trail_price:number(a.trail_price),trail_percent:number(a.trail_percent),hwm:number(a.hwm),order_class:a.order_class})})}catch(e){throw new Error(`Order parsing failed. ${e.message}`)}}function canceled_orders(e){return e?e.map((e=>canceled_order(e))):void 0}function position(e){if(e)try{return Object.assign(Object.assign({},e),{raw:()=>e,avg_entry_price:number(e.avg_entry_price),qty:number(e.qty),side:e.side,market_value:number(e.market_value),cost_basis:number(e.cost_basis),unrealized_pl:number(e.unrealized_pl),unrealized_plpc:number(e.unrealized_plpc),unrealized_intraday_pl:number(e.unrealized_intraday_pl),unrealized_intraday_plpc:number(e.unrealized_intraday_plpc),current_price:number(e.current_price),lastday_price:number(e.lastday_price),change_today:number(e.change_today)})}catch(e){throw new Error(`Position parsing failed. ${e.message}`)}}function positions(e){return e?e.map((e=>position(e))):void 0}function tradeActivity(e){if(e)try{return Object.assign(Object.assign({},e),{raw:()=>e,cum_qty:number(e.cum_qty),leaves_qty:number(e.leaves_qty),price:number(e.price),qty:number(e.qty),side:e.side,type:e.type})}catch(e){throw new Error(`TradeActivity parsing failed. ${e.message}`)}}function nonTradeActivity(e){if(e)try{return Object.assign(Object.assign({},e),{raw:()=>e,net_amount:number(e.net_amount),qty:number(e.qty),per_share_amount:number(e.per_share_amount)})}catch(e){throw new Error(`NonTradeActivity parsing failed. ${e.message}`)}}function activities(e){if(e)try{return e.map((e=>"FILL"===e.activity_type?tradeActivity(e):nonTradeActivity(e)))}catch(e){throw new Error(`Activity parsing failed. ${e.message}`)}}function pageOfTrades(e){if(e)try{return{raw:()=>e,trades:(null==e.trades?[]:e.trades).map((e=>Object.assign(Object.assign({raw:()=>e},e),{t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function pageOfQuotes(e){if(e)try{return{raw:()=>e,quotes:(null==e.quotes?[]:e.quotes).map((e=>Object.assign(Object.assign({raw:()=>e},e),{t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function pageOfBars(e){if(e)try{return{raw:()=>e,bars:(null==e.bars?[]:e.bars).map((e=>Object.assign(Object.assign({raw:()=>e},e),{t:new Date(e.t)}))),symbol:e.symbol,next_page_token:e.next_page_token}}catch(e){throw new Error(`PageOfTrades parsing failed "${e.message}"`)}}function snapshot(e){if(e)try{return Object.assign(Object.assign({},e),{raw:()=>e,latestTrade:e.latestTrade?Object.assign(Object.assign({},e.latestTrade),{t:new Date(e.latestTrade.t)}):null,latestQuote:e.latestQuote?Object.assign(Object.assign({},e.latestQuote),{t:new Date(e.latestQuote.t)}):null,minuteBar:e.minuteBar?Object.assign(Object.assign({},e.minuteBar),{t:new Date(e.minuteBar.t)}):null,dailyBar:e.dailyBar?Object.assign(Object.assign({},e.dailyBar),{t:new Date(e.dailyBar.t)}):null,prevDailyBar:e.prevDailyBar?Object.assign(Object.assign({},e.prevDailyBar),{t:new Date(e.prevDailyBar.t)}):null})}catch(e){throw new Error(`Snapshot parsing failed "${e.message}"`)}}function snapshots(e){let a={};for(let[p,t]of Object.entries(e))a[p]=snapshot(t);return a}function number(e){if(void 0===e||null==e)return e;const a=parseFloat(e);return Number.isNaN(a)?null:a}function trade_update(e){if(e)return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({raw:()=>e,event:e.event,execution_id:e.execution_id,order:order(e.order)},e.event_id&&{event_id:number(e.event_id)}),e.at&&{at:new Date(e.at)}),e.timestamp&&{timestamp:new Date(e.timestamp)}),e.position_qty&&{position_qty:number(e.position_qty)}),e.price&&{price:number(e.price)}),e.qty&&{qty:number(e.qty)})}var parse$3={account:account,activities:activities,clock:clock,nonTradeActivity:nonTradeActivity,order:order,orders:orders,canceled_orders:canceled_orders,position:position,positions:positions,tradeActivity:tradeActivity,pageOfTrades:pageOfTrades,pageOfQuotes:pageOfQuotes,pageOfBars:pageOfBars,snapshot:snapshot,snapshots:snapshots,trade_update:trade_update};const unifetch="undefined"!=typeof fetch?fetch:isomorphicUnfetch;class AlpacaClient{constructor(e){if(this.params=e,this.limiter=new lib$3({reservoir:200,reservoirRefreshAmount:200,reservoirRefreshInterval:6e4,maxConcurrent:1,minTime:200}),"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),"access_token"in e.credentials&&("key"in e.credentials||"secret"in e.credentials))throw new Error("can't create client with both default and oauth credentials")}isAuthenticated(){return __awaiter(this,void 0,void 0,(function*(){try{return yield this.getAccount(),!0}catch(e){return!1}}))}getAccount(){return __awaiter(this,void 0,void 0,(function*(){return parse$3.account(yield this.request({method:"GET",url:`${urls.rest.account}/account`}))}))}getOrder(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.order(yield this.request({method:"GET",url:`${urls.rest.account}/orders/${e.order_id||e.client_order_id}`,data:{nested:e.nested}}))}))}getOrders(e={}){return __awaiter(this,void 0,void 0,(function*(){return parse$3.orders(yield this.request({method:"GET",url:`${urls.rest.account}/orders`,data:Object.assign(Object.assign({},e),{symbols:e.symbols?e.symbols.join(","):void 0})}))}))}placeOrder(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.order(yield this.request({method:"POST",url:`${urls.rest.account}/orders`,data:e}))}))}replaceOrder(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.order(yield this.request({method:"PATCH",url:`${urls.rest.account}/orders/${e.order_id}`,data:e}))}))}cancelOrder(e){return this.request({method:"DELETE",url:`${urls.rest.account}/orders/${e.order_id}`,isJSON:!1})}cancelOrders(){return __awaiter(this,void 0,void 0,(function*(){return parse$3.canceled_orders(yield this.request({method:"DELETE",url:`${urls.rest.account}/orders`}))}))}getPosition(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.position(yield this.request({method:"GET",url:`${urls.rest.account}/positions/${e.symbol}`}))}))}getPositions(){return __awaiter(this,void 0,void 0,(function*(){return parse$3.positions(yield this.request({method:"GET",url:`${urls.rest.account}/positions`}))}))}closePosition(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.order(yield this.request({method:"DELETE",url:`${urls.rest.account}/positions/${e.symbol}`,data:e}))}))}closePositions(e){var a;return __awaiter(this,void 0,void 0,(function*(){return parse$3.orders(yield this.request({method:"DELETE",url:`${urls.rest.account}/positions?cancel_orders=${JSON.stringify(null!==(a=e.cancel_orders)&&void 0!==a&&a)}`}))}))}getAsset(e){return this.request({method:"GET",url:`${urls.rest.account}/assets/${e.asset_id_or_symbol}`})}getAssets(e){return this.request({method:"GET",url:`${urls.rest.account}/assets`,data:e})}getWatchlist(e){return this.request({method:"GET",url:`${urls.rest.account}/watchlists/${e.uuid}`})}getWatchlists(){return this.request({method:"GET",url:`${urls.rest.account}/watchlists`})}createWatchlist(e){return this.request({method:"POST",url:`${urls.rest.account}/watchlists`,data:e})}updateWatchlist(e){return this.request({method:"PUT",url:`${urls.rest.account}/watchlists/${e.uuid}`,data:e})}addToWatchlist(e){return this.request({method:"POST",url:`${urls.rest.account}/watchlists/${e.uuid}`,data:e})}removeFromWatchlist(e){return this.request({method:"DELETE",url:`${urls.rest.account}/watchlists/${e.uuid}/${e.symbol}`})}deleteWatchlist(e){return this.request({method:"DELETE",url:`${urls.rest.account}/watchlists/${e.uuid}`})}getCalendar(e){return this.request({method:"GET",url:`${urls.rest.account}/calendar`,data:e})}getNews(e){return"symbols"in e&&Array.isArray(e.symbols)&&(e.symbols=e.symbols.join(",")),this.request({method:"GET",url:`${urls.rest.beta}/news`,data:e})}getClock(){return __awaiter(this,void 0,void 0,(function*(){return parse$3.clock(yield this.request({method:"GET",url:`${urls.rest.account}/clock`}))}))}getAccountConfigurations(){return this.request({method:"GET",url:`${urls.rest.account}/account/configurations`})}updateAccountConfigurations(e){return this.request({method:"PATCH",url:`${urls.rest.account}/account/configurations`,data:e})}getAccountActivities(e){return __awaiter(this,void 0,void 0,(function*(){return e.activity_types&&Array.isArray(e.activity_types)&&(e.activity_types=e.activity_types.join(",")),parse$3.activities(yield this.request({method:"GET",url:`${urls.rest.account}/account/activities${e.activity_type?"/".concat(e.activity_type):""}`,data:Object.assign(Object.assign({},e),{activity_type:void 0})}))}))}getPortfolioHistory(e){return this.request({method:"GET",url:`${urls.rest.account}/account/portfolio/history`,data:e})}getBars_v1(e){return __awaiter(this,void 0,void 0,(function*(){const a=Object.assign(Object.assign({},e),{symbols:e.symbols.join(",")});return yield this.request({method:"GET",url:`${urls.rest.market_data_v1}/bars/${e.timeframe}`,data:a})}))}getLastTrade_v1(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.request({method:"GET",url:`${urls.rest.market_data_v1}/last/stocks/${e.symbol}`})}))}getLastQuote_v1(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.request({method:"GET",url:`${urls.rest.market_data_v1}/last_quote/stocks/${e.symbol}`})}))}getTrades(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.pageOfTrades(yield this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/trades`,data:Object.assign(Object.assign({},e),{symbol:void 0})}))}))}getQuotes(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.pageOfQuotes(yield this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/quotes`,data:Object.assign(Object.assign({},e),{symbol:void 0})}))}))}getBars(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.pageOfBars(yield this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/bars`,data:Object.assign(Object.assign({},e),{symbol:void 0})}))}))}getSnapshot(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.snapshot(yield this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/${e.symbol}/snapshot`}))}))}getSnapshots(e){return __awaiter(this,void 0,void 0,(function*(){return parse$3.snapshots(yield this.request({method:"GET",url:`${urls.rest.market_data_v2}/stocks/snapshots?symbols=${e.symbols.join(",")}`}))}))}request(e){return __awaiter(this,void 0,void 0,(function*(){let a={};"access_token"in this.params.credentials?a.Authorization=`Bearer ${this.params.credentials.access_token}`:(a["APCA-API-KEY-ID"]=this.params.credentials.key,a["APCA-API-SECRET-KEY"]=this.params.credentials.secret),this.params.credentials.paper&&(e.url=e.url.replace("api.","paper-api."));let p="";if(e.data){for(let[a,p]of Object.entries(e.data))p instanceof Date&&(e.data[a]=p.toISOString());["POST","PATCH","PUT"].includes(e.method)||(p="?".concat(lib$2.stringify(e.data)),e.data=void 0)}const t=()=>unifetch(e.url.concat(p),{method:e.method,headers:a,body:JSON.stringify(e.data)}),d=this.params.rate_limit?()=>this.limiter.schedule(t):t;let i,r={};try{if(i=yield d(),null!=e.isJSON&&!e.isJSON)return i.ok;r=yield i.json()}catch(e){throw console.error(e),r}if("code"in r||"message"in r)throw r;return r}))}}var constants={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),EMPTY_BUFFER:Buffer.alloc(0),NOOP:()=>{}},runtimeRequire="function"==typeof __webpack_require__?__non_webpack_require__:commonjsRequire,vars=process.config&&process.config.variables||{},prebuildsOnly=!!process.env.PREBUILDS_ONLY,abi=process.versions.modules,runtime=isElectron()?"electron":"node",arch=os.arch(),platform=os.platform(),libc=process.env.LIBC||(isAlpine(platform)?"musl":"glibc"),armv=process.env.ARM_VERSION||("arm64"===arch?"8":vars.arm_version)||"",uv=(process.versions.uv||"").split(".")[0],nodeGypBuild=load;function load(e){return runtimeRequire(load.path(e))}function readdirSync(e){try{return fs.readdirSync(e)}catch(e){return[]}}function getFirst(e,a){var p=readdirSync(e).filter(a);return p[0]&&path.join(e,p[0])}function matchBuild(e){return/\.node$/.test(e)}function parseTags(e){var a=e.split("."),p={file:e,specificity:0};if("node"===a.pop()){for(var t=0;tp.specificity?-1:1:0}}function isElectron(){return!(!process.versions||!process.versions.electron)||(!!process.env.ELECTRON_RUN_AS_NODE||"undefined"!=typeof window&&window.process&&"renderer"===window.process.type)}function isAlpine(e){return"linux"===e&&fs.existsSync("/etc/alpine-release")}load.path=function(e){e=path.resolve(e||".");try{var a=runtimeRequire(path.join(e,"package.json")).name.toUpperCase().replace(/-/g,"_");process.env[a+"_PREBUILD"]&&(e=process.env[a+"_PREBUILD"])}catch(e){}if(!prebuildsOnly){var p=getFirst(path.join(e,"build/Release"),matchBuild);if(p)return p;var t=getFirst(path.join(e,"build/Debug"),matchBuild);if(t)return t}var d=n(e);if(d)return d;var i=n(path.dirname(process.execPath));if(i)return i;var r=["platform="+platform,"arch="+arch,"runtime="+runtime,"abi="+abi,"uv="+uv,armv?"armv="+armv:"","libc="+libc,"node="+process.versions.node,process.versions&&process.versions.electron?"electron="+process.versions.electron:"","function"==typeof __webpack_require__?"webpack=true":""].filter(Boolean).join(" ");throw new Error("No native build was found for "+r+"\n loaded from: "+e+"\n");function n(e){var a=path.join(e,"prebuilds",platform+"-"+arch),p=readdirSync(a).map(parseTags).filter(matchTags(runtime,abi)).sort(compareTags(runtime))[0];if(p)return path.join(a,p.file)}},load.parseTags=parseTags,load.matchTags=matchTags,load.compareTags=compareTags;const mask$1=(e,a,p,t,d)=>{for(var i=0;i{const p=e.length;for(var t=0;t{this.pending--,this[kRun]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[kRun]()}[kRun](){if(this.pending!==this.concurrency&&this.jobs.length){const e=this.jobs.shift();this.pending++,e(this[kDone])}}}var limiter=Limiter;const{kStatusCode:kStatusCode$2,NOOP:NOOP$1}=constants,TRAILER=Buffer.from([0,0,255,255]),kPerMessageDeflate=Symbol("permessage-deflate"),kTotalLength=Symbol("total-length"),kCallback=Symbol("callback"),kBuffers=Symbol("buffers"),kError=Symbol("error");let zlibLimiter;class PerMessageDeflate{constructor(e,a,p){if(this._maxPayload=0|p,this._options=e||{},this._threshold=void 0!==this._options.threshold?this._options.threshold:1024,this._isServer=!!a,this._deflate=null,this._inflate=null,this.params=null,!zlibLimiter){const e=void 0!==this._options.concurrencyLimit?this._options.concurrencyLimit:10;zlibLimiter=new limiter(e)}}static get extensionName(){return"permessage-deflate"}offer(){const e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:null==this._options.clientMaxWindowBits&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){const e=this._deflate[kCallback];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){const a=this._options,p=e.find((e=>!(!1===a.serverNoContextTakeover&&e.server_no_context_takeover||e.server_max_window_bits&&(!1===a.serverMaxWindowBits||"number"==typeof a.serverMaxWindowBits&&a.serverMaxWindowBits>e.server_max_window_bits)||"number"==typeof a.clientMaxWindowBits&&!e.client_max_window_bits)));if(!p)throw new Error("None of the extension offers can be accepted");return a.serverNoContextTakeover&&(p.server_no_context_takeover=!0),a.clientNoContextTakeover&&(p.client_no_context_takeover=!0),"number"==typeof a.serverMaxWindowBits&&(p.server_max_window_bits=a.serverMaxWindowBits),"number"==typeof a.clientMaxWindowBits?p.client_max_window_bits=a.clientMaxWindowBits:!0!==p.client_max_window_bits&&!1!==a.clientMaxWindowBits||delete p.client_max_window_bits,p}acceptAsClient(e){const a=e[0];if(!1===this._options.clientNoContextTakeover&&a.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(a.client_max_window_bits){if(!1===this._options.clientMaxWindowBits||"number"==typeof this._options.clientMaxWindowBits&&a.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"')}else"number"==typeof this._options.clientMaxWindowBits&&(a.client_max_window_bits=this._options.clientMaxWindowBits);return a}normalizeParams(e){return e.forEach((e=>{Object.keys(e).forEach((a=>{let p=e[a];if(p.length>1)throw new Error(`Parameter "${a}" must have only a single value`);if(p=p[0],"client_max_window_bits"===a){if(!0!==p){const e=+p;if(!Number.isInteger(e)||e<8||e>15)throw new TypeError(`Invalid value for parameter "${a}": ${p}`);p=e}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${a}": ${p}`)}else if("server_max_window_bits"===a){const e=+p;if(!Number.isInteger(e)||e<8||e>15)throw new TypeError(`Invalid value for parameter "${a}": ${p}`);p=e}else{if("client_no_context_takeover"!==a&&"server_no_context_takeover"!==a)throw new Error(`Unknown parameter "${a}"`);if(!0!==p)throw new TypeError(`Invalid value for parameter "${a}": ${p}`)}e[a]=p}))})),e}decompress(e,a,p){zlibLimiter.add((t=>{this._decompress(e,a,((e,a)=>{t(),p(e,a)}))}))}compress(e,a,p){zlibLimiter.add((t=>{this._compress(e,a,((e,a)=>{t(),p(e,a)}))}))}_decompress(e,a,p){const t=this._isServer?"client":"server";if(!this._inflate){const e=`${t}_max_window_bits`,a="number"!=typeof this.params[e]?zlib.Z_DEFAULT_WINDOWBITS:this.params[e];this._inflate=zlib.createInflateRaw({...this._options.zlibInflateOptions,windowBits:a}),this._inflate[kPerMessageDeflate]=this,this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],this._inflate.on("error",inflateOnError),this._inflate.on("data",inflateOnData)}this._inflate[kCallback]=p,this._inflate.write(e),a&&this._inflate.write(TRAILER),this._inflate.flush((()=>{const e=this._inflate[kError];if(e)return this._inflate.close(),this._inflate=null,void p(e);const d=bufferUtil.concat(this._inflate[kBuffers],this._inflate[kTotalLength]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],a&&this.params[`${t}_no_context_takeover`]&&this._inflate.reset()),p(null,d)}))}_compress(e,a,p){const t=this._isServer?"server":"client";if(!this._deflate){const e=`${t}_max_window_bits`,a="number"!=typeof this.params[e]?zlib.Z_DEFAULT_WINDOWBITS:this.params[e];this._deflate=zlib.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:a}),this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],this._deflate.on("error",NOOP$1),this._deflate.on("data",deflateOnData)}this._deflate[kCallback]=p,this._deflate.write(e),this._deflate.flush(zlib.Z_SYNC_FLUSH,(()=>{if(!this._deflate)return;let e=bufferUtil.concat(this._deflate[kBuffers],this._deflate[kTotalLength]);a&&(e=e.slice(0,e.length-4)),this._deflate[kCallback]=null,this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],a&&this.params[`${t}_no_context_takeover`]&&this._deflate.reset(),p(null,e)}))}}var permessageDeflate=PerMessageDeflate;function deflateOnData(e){this[kBuffers].push(e),this[kTotalLength]+=e.length}function inflateOnData(e){this[kTotalLength]+=e.length,this[kPerMessageDeflate]._maxPayload<1||this[kTotalLength]<=this[kPerMessageDeflate]._maxPayload?this[kBuffers].push(e):(this[kError]=new RangeError("Max payload size exceeded"),this[kError].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[kError][kStatusCode$2]=1009,this.removeListener("data",inflateOnData),this.reset())}function inflateOnError(e){this[kPerMessageDeflate]._inflate=null,e[kStatusCode$2]=1007,this[kCallback](e)}function isValidUTF8$1(e){const a=e.length;let p=0;for(;p=a||128!=(192&e[p+1])||128!=(192&e[p+2])||224===e[p]&&128==(224&e[p+1])||237===e[p]&&160==(224&e[p+1]))return!1;p+=3}else{if(240!=(248&e[p]))return!1;if(p+3>=a||128!=(192&e[p+1])||128!=(192&e[p+2])||128!=(192&e[p+3])||240===e[p]&&128==(240&e[p+1])||244===e[p]&&e[p+1]>143||e[p]>244)return!1;p+=4}return!0}var fallback=isValidUTF8$1,utf8Validate=createCommonjsModule((function(e){try{e.exports=nodeGypBuild(__dirname)}catch(a){e.exports=fallback}})),validation=createCommonjsModule((function(e){function a(e){return e>=1e3&&e<=1014&&1004!==e&&1005!==e&&1006!==e||e>=3e3&&e<=4999}function p(e){const a=e.length;let p=0;for(;p=a||128!=(192&e[p+1])||128!=(192&e[p+2])||224===e[p]&&128==(224&e[p+1])||237===e[p]&&160==(224&e[p+1]))return!1;p+=3}else{if(240!=(248&e[p]))return!1;if(p+3>=a||128!=(192&e[p+1])||128!=(192&e[p+2])||128!=(192&e[p+3])||240===e[p]&&128==(240&e[p+1])||244===e[p]&&e[p+1]>143||e[p]>244)return!1;p+=4}return!0}try{let t=utf8Validate;"object"==typeof t&&(t=t.Validation.isValidUTF8),e.exports={isValidStatusCode:a,isValidUTF8:e=>e.length<150?p(e):t(e)}}catch(t){e.exports={isValidStatusCode:a,isValidUTF8:p}}}));const{Writable:Writable}=Stream,{BINARY_TYPES:BINARY_TYPES$1,EMPTY_BUFFER:EMPTY_BUFFER$2,kStatusCode:kStatusCode$1,kWebSocket:kWebSocket$2}=constants,{concat:concat,toArrayBuffer:toArrayBuffer,unmask:unmask}=bufferUtil,{isValidStatusCode:isValidStatusCode$1,isValidUTF8:isValidUTF8}=validation,GET_INFO=0,GET_PAYLOAD_LENGTH_16=1,GET_PAYLOAD_LENGTH_64=2,GET_MASK=3,GET_DATA=4,INFLATING=5;class Receiver extends Writable{constructor(e,a,p,t){super(),this._binaryType=e||BINARY_TYPES$1[0],this[kWebSocket$2]=void 0,this._extensions=a||{},this._isServer=!!p,this._maxPayload=0|t,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=GET_INFO,this._loop=!1}_write(e,a,p){if(8===this._opcode&&this._state==GET_INFO)return p();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(p)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e=p.length?a.set(this._buffers.shift(),t):(a.set(new Uint8Array(p.buffer,p.byteOffset,e),t),this._buffers[0]=p.slice(e)),e-=p.length}while(e>0);return a}startLoop(e){let a;this._loop=!0;do{switch(this._state){case GET_INFO:a=this.getInfo();break;case GET_PAYLOAD_LENGTH_16:a=this.getPayloadLength16();break;case GET_PAYLOAD_LENGTH_64:a=this.getPayloadLength64();break;case GET_MASK:this.getMask();break;case GET_DATA:a=this.getData(e);break;default:return void(this._loop=!1)}}while(this._loop);e(a)}getInfo(){if(this._bufferedBytes<2)return void(this._loop=!1);const e=this.consume(2);if(0!=(48&e[0]))return this._loop=!1,error(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");const a=64==(64&e[0]);if(a&&!this._extensions[permessageDeflate.extensionName])return this._loop=!1,error(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(this._fin=128==(128&e[0]),this._opcode=15&e[0],this._payloadLength=127&e[1],0===this._opcode){if(a)return this._loop=!1,error(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(!this._fragmented)return this._loop=!1,error(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented)return this._loop=!1,error(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");this._compressed=a}else{if(!(this._opcode>7&&this._opcode<11))return this._loop=!1,error(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");if(!this._fin)return this._loop=!1,error(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");if(a)return this._loop=!1,error(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(this._payloadLength>125)return this._loop=!1,error(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH")}if(this._fin||this._fragmented||(this._fragmented=this._opcode),this._masked=128==(128&e[1]),this._isServer){if(!this._masked)return this._loop=!1,error(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK")}else if(this._masked)return this._loop=!1,error(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");if(126===this._payloadLength)this._state=GET_PAYLOAD_LENGTH_16;else{if(127!==this._payloadLength)return this.haveLength();this._state=GET_PAYLOAD_LENGTH_64}}getPayloadLength16(){if(!(this._bufferedBytes<2))return this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength();this._loop=!1}getPayloadLength64(){if(this._bufferedBytes<8)return void(this._loop=!1);const e=this.consume(8),a=e.readUInt32BE(0);return a>Math.pow(2,21)-1?(this._loop=!1,error(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH")):(this._payloadLength=a*Math.pow(2,32)+e.readUInt32BE(4),this.haveLength())}haveLength(){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0))return this._loop=!1,error(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");this._masked?this._state=GET_MASK:this._state=GET_DATA}getMask(){this._bufferedBytes<4?this._loop=!1:(this._mask=this.consume(4),this._state=GET_DATA)}getData(e){let a=EMPTY_BUFFER$2;if(this._payloadLength){if(this._bufferedBytes7?this.controlMessage(a):this._compressed?(this._state=INFLATING,void this.decompress(a,e)):(a.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(a)),this.dataMessage())}decompress(e,a){this._extensions[permessageDeflate.extensionName].decompress(e,this._fin,((e,p)=>{if(e)return a(e);if(p.length){if(this._messageLength+=p.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return a(error(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"));this._fragments.push(p)}const t=this.dataMessage();if(t)return a(t);this.startLoop(a)}))}dataMessage(){if(this._fin){const e=this._messageLength,a=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],2===this._opcode){let p;p="nodebuffer"===this._binaryType?concat(a,e):"arraybuffer"===this._binaryType?toArrayBuffer(concat(a,e)):a,this.emit("message",p)}else{const p=concat(a,e);if(!isValidUTF8(p))return this._loop=!1,error(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");this.emit("message",p.toString())}}this._state=GET_INFO}controlMessage(e){if(8===this._opcode)if(this._loop=!1,0===e.length)this.emit("conclude",1005,""),this.end();else{if(1===e.length)return error(RangeError,"invalid payload length 1",!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");{const a=e.readUInt16BE(0);if(!isValidStatusCode$1(a))return error(RangeError,`invalid status code ${a}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");const p=e.slice(2);if(!isValidUTF8(p))return error(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");this.emit("conclude",a,p.toString()),this.end()}}else 9===this._opcode?this.emit("ping",e):this.emit("pong",e);this._state=GET_INFO}}var receiver=Receiver;function error(e,a,p,t,d){const i=new e(p?`Invalid WebSocket frame: ${a}`:a);return Error.captureStackTrace(i,error),i.code=d,i[kStatusCode$1]=t,i}const{randomFillSync:randomFillSync}=require$$0$4,{EMPTY_BUFFER:EMPTY_BUFFER$1}=constants,{isValidStatusCode:isValidStatusCode}=validation,{mask:applyMask,toBuffer:toBuffer$1}=bufferUtil,mask=Buffer.alloc(4);class Sender{constructor(e,a){this._extensions=a||{},this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(e,a){const p=a.mask&&a.readOnly;let t=a.mask?6:2,d=e.length;e.length>=65536?(t+=8,d=127):e.length>125&&(t+=2,d=126);const i=Buffer.allocUnsafe(p?e.length+t:t);return i[0]=a.fin?128|a.opcode:a.opcode,a.rsv1&&(i[0]|=64),i[1]=d,126===d?i.writeUInt16BE(e.length,2):127===d&&(i.writeUInt32BE(0,2),i.writeUInt32BE(e.length,6)),a.mask?(randomFillSync(mask,0,4),i[1]|=128,i[t-4]=mask[0],i[t-3]=mask[1],i[t-2]=mask[2],i[t-1]=mask[3],p?(applyMask(e,mask,i,t,e.length),[i]):(applyMask(e,mask,e,0,e.length),[i,e])):[i,e]}close(e,a,p,t){let d;if(void 0===e)d=EMPTY_BUFFER$1;else{if("number"!=typeof e||!isValidStatusCode(e))throw new TypeError("First argument must be a valid error code number");if(void 0===a||""===a)d=Buffer.allocUnsafe(2),d.writeUInt16BE(e,0);else{const p=Buffer.byteLength(a);if(p>123)throw new RangeError("The message must not be greater than 123 bytes");d=Buffer.allocUnsafe(2+p),d.writeUInt16BE(e,0),d.write(a,2)}}this._deflating?this.enqueue([this.doClose,d,p,t]):this.doClose(d,p,t)}doClose(e,a,p){this.sendFrame(Sender.frame(e,{fin:!0,rsv1:!1,opcode:8,mask:a,readOnly:!1}),p)}ping(e,a,p){const t=toBuffer$1(e);if(t.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPing,t,a,toBuffer$1.readOnly,p]):this.doPing(t,a,toBuffer$1.readOnly,p)}doPing(e,a,p,t){this.sendFrame(Sender.frame(e,{fin:!0,rsv1:!1,opcode:9,mask:a,readOnly:p}),t)}pong(e,a,p){const t=toBuffer$1(e);if(t.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPong,t,a,toBuffer$1.readOnly,p]):this.doPong(t,a,toBuffer$1.readOnly,p)}doPong(e,a,p,t){this.sendFrame(Sender.frame(e,{fin:!0,rsv1:!1,opcode:10,mask:a,readOnly:p}),t)}send(e,a,p){const t=toBuffer$1(e),d=this._extensions[permessageDeflate.extensionName];let i=a.binary?2:1,r=a.compress;if(this._firstFragment?(this._firstFragment=!1,r&&d&&(r=t.length>=d._threshold),this._compress=r):(r=!1,i=0),a.fin&&(this._firstFragment=!0),d){const e={fin:a.fin,rsv1:r,opcode:i,mask:a.mask,readOnly:toBuffer$1.readOnly};this._deflating?this.enqueue([this.dispatch,t,this._compress,e,p]):this.dispatch(t,this._compress,e,p)}else this.sendFrame(Sender.frame(t,{fin:a.fin,rsv1:!1,opcode:i,mask:a.mask,readOnly:toBuffer$1.readOnly}),p)}dispatch(e,a,p,t){if(!a)return void this.sendFrame(Sender.frame(e,p),t);const d=this._extensions[permessageDeflate.extensionName];this._bufferedBytes+=e.length,this._deflating=!0,d.compress(e,p.fin,((a,d)=>{if(this._socket.destroyed){const e=new Error("The socket was closed while data was being compressed");"function"==typeof t&&t(e);for(let a=0;a{let p=e[a];return Array.isArray(p)||(p=[p]),p.map((e=>[a].concat(Object.keys(e).map((a=>{let p=e[a];return Array.isArray(p)||(p=[p]),p.map((e=>!0===e?a:`${a}=${e}`)).join("; ")}))).join("; "))).join(", ")})).join(", ")}var extension={format:format$2,parse:parse$2};const{randomBytes:randomBytes,createHash:createHash$1}=require$$0$4,{URL:URL}=Url,{BINARY_TYPES:BINARY_TYPES,EMPTY_BUFFER:EMPTY_BUFFER,GUID:GUID$1,kStatusCode:kStatusCode,kWebSocket:kWebSocket$1,NOOP:NOOP}=constants,{addEventListener:addEventListener,removeEventListener:removeEventListener}=eventTarget,{format:format$1,parse:parse$1}=extension,{toBuffer:toBuffer}=bufferUtil,readyStates=["CONNECTING","OPEN","CLOSING","CLOSED"],protocolVersions=[8,13],closeTimeout=3e4;class WebSocket extends EventEmitter{constructor(e,a,p){super(),this._binaryType=BINARY_TYPES[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._extensions={},this._protocol="",this._readyState=WebSocket.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,null!==e?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,Array.isArray(a)?a=a.join(", "):"object"==typeof a&&null!==a&&(p=a,a=void 0),initAsClient(this,e,a,p)):this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(e){BINARY_TYPES.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get onclose(){}set onclose(e){}get onerror(){}set onerror(e){}get onopen(){}set onopen(e){}get onmessage(){}set onmessage(e){}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,a,p){const t=new receiver(this.binaryType,this._extensions,this._isServer,p);this._sender=new sender(e,this._extensions),this._receiver=t,this._socket=e,t[kWebSocket$1]=this,e[kWebSocket$1]=this,t.on("conclude",receiverOnConclude),t.on("drain",receiverOnDrain),t.on("error",receiverOnError),t.on("message",receiverOnMessage),t.on("ping",receiverOnPing),t.on("pong",receiverOnPong),e.setTimeout(0),e.setNoDelay(),a.length>0&&e.unshift(a),e.on("close",socketOnClose),e.on("data",socketOnData),e.on("end",socketOnEnd),e.on("error",socketOnError$1),this._readyState=WebSocket.OPEN,this.emit("open")}emitClose(){if(!this._socket)return this._readyState=WebSocket.CLOSED,void this.emit("close",this._closeCode,this._closeMessage);this._extensions[permessageDeflate.extensionName]&&this._extensions[permessageDeflate.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=WebSocket.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,a){if(this.readyState!==WebSocket.CLOSED){if(this.readyState===WebSocket.CONNECTING){const e="WebSocket was closed before the connection was established";return abortHandshake$1(this,this._req,e)}this.readyState!==WebSocket.CLOSING?(this._readyState=WebSocket.CLOSING,this._sender.close(e,a,!this._isServer,(e=>{e||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())})),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),closeTimeout)):this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end()}}ping(e,a,p){if(this.readyState===WebSocket.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof e?(p=e,e=a=void 0):"function"==typeof a&&(p=a,a=void 0),"number"==typeof e&&(e=e.toString()),this.readyState===WebSocket.OPEN?(void 0===a&&(a=!this._isServer),this._sender.ping(e||EMPTY_BUFFER,a,p)):sendAfterClose(this,e,p)}pong(e,a,p){if(this.readyState===WebSocket.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof e?(p=e,e=a=void 0):"function"==typeof a&&(p=a,a=void 0),"number"==typeof e&&(e=e.toString()),this.readyState===WebSocket.OPEN?(void 0===a&&(a=!this._isServer),this._sender.pong(e||EMPTY_BUFFER,a,p)):sendAfterClose(this,e,p)}send(e,a,p){if(this.readyState===WebSocket.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof a&&(p=a,a={}),"number"==typeof e&&(e=e.toString()),this.readyState!==WebSocket.OPEN)return void sendAfterClose(this,e,p);const t={binary:"string"!=typeof e,mask:!this._isServer,compress:!0,fin:!0,...a};this._extensions[permessageDeflate.extensionName]||(t.compress=!1),this._sender.send(e||EMPTY_BUFFER,t,p)}terminate(){if(this.readyState!==WebSocket.CLOSED){if(this.readyState===WebSocket.CONNECTING){const e="WebSocket was closed before the connection was established";return abortHandshake$1(this,this._req,e)}this._socket&&(this._readyState=WebSocket.CLOSING,this._socket.destroy())}}}Object.defineProperty(WebSocket,"CONNECTING",{enumerable:!0,value:readyStates.indexOf("CONNECTING")}),Object.defineProperty(WebSocket.prototype,"CONNECTING",{enumerable:!0,value:readyStates.indexOf("CONNECTING")}),Object.defineProperty(WebSocket,"OPEN",{enumerable:!0,value:readyStates.indexOf("OPEN")}),Object.defineProperty(WebSocket.prototype,"OPEN",{enumerable:!0,value:readyStates.indexOf("OPEN")}),Object.defineProperty(WebSocket,"CLOSING",{enumerable:!0,value:readyStates.indexOf("CLOSING")}),Object.defineProperty(WebSocket.prototype,"CLOSING",{enumerable:!0,value:readyStates.indexOf("CLOSING")}),Object.defineProperty(WebSocket,"CLOSED",{enumerable:!0,value:readyStates.indexOf("CLOSED")}),Object.defineProperty(WebSocket.prototype,"CLOSED",{enumerable:!0,value:readyStates.indexOf("CLOSED")}),["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach((e=>{Object.defineProperty(WebSocket.prototype,e,{enumerable:!0})})),["open","error","close","message"].forEach((e=>{Object.defineProperty(WebSocket.prototype,`on${e}`,{enumerable:!0,get(){const a=this.listeners(e);for(let e=0;e{abortHandshake$1(e,u,"Opening handshake has timed out")})),u.on("error",(a=>{null===u||u.aborted||(u=e._req=null,e._readyState=WebSocket.CLOSING,e.emit("error",a),e.emitClose())})),u.on("response",(i=>{const r=i.headers.location,n=i.statusCode;if(r&&d.followRedirects&&n>=300&&n<400){if(++e._redirects>d.maxRedirects)return void abortHandshake$1(e,u,"Maximum redirects exceeded");u.abort();const i=new URL(r,a);initAsClient(e,i,p,t)}else e.emit("unexpected-response",u,i)||abortHandshake$1(e,u,`Unexpected server response: ${i.statusCode}`)})),u.on("upgrade",((a,t,i)=>{if(e.emit("upgrade",a),e.readyState!==WebSocket.CONNECTING)return;u=e._req=null;const r=createHash$1("sha1").update(o+GUID$1).digest("base64");if(a.headers["sec-websocket-accept"]!==r)return void abortHandshake$1(e,t,"Invalid Sec-WebSocket-Accept header");const n=a.headers["sec-websocket-protocol"],s=(p||"").split(/, */);let l;if(!p&&n?l="Server sent a subprotocol but none was requested":p&&!n?l="Server sent no subprotocol":n&&!s.includes(n)&&(l="Server sent an invalid subprotocol"),l)return void abortHandshake$1(e,t,l);n&&(e._protocol=n);const c=a.headers["sec-websocket-extensions"];if(void 0!==c){if(!m){return void abortHandshake$1(e,t,"Server sent a Sec-WebSocket-Extensions header but no extension was requested")}let a;try{a=parse$1(c)}catch(a){return void abortHandshake$1(e,t,"Invalid Sec-WebSocket-Extensions header")}const p=Object.keys(a);if(p.length){if(1!==p.length||p[0]!==permessageDeflate.extensionName){return void abortHandshake$1(e,t,"Server indicated an extension that was not requested")}try{m.accept(a[permessageDeflate.extensionName])}catch(a){return void abortHandshake$1(e,t,"Invalid Sec-WebSocket-Extensions header")}e._extensions[permessageDeflate.extensionName]=m}}e.setSocket(t,i,d.maxPayload)}))}function netConnect(e){return e.path=e.socketPath,net.connect(e)}function tlsConnect(e){return e.path=void 0,e.servername||""===e.servername||(e.servername=net.isIP(e.host)?"":e.host),tls.connect(e)}function abortHandshake$1(e,a,p){e._readyState=WebSocket.CLOSING;const t=new Error(p);Error.captureStackTrace(t,abortHandshake$1),a.setHeader?(a.abort(),a.socket&&!a.socket.destroyed&&a.socket.destroy(),a.once("abort",e.emitClose.bind(e)),e.emit("error",t)):(a.destroy(t),a.once("error",e.emit.bind(e,"error")),a.once("close",e.emitClose.bind(e)))}function sendAfterClose(e,a,p){if(a){const p=toBuffer(a).length;e._socket?e._sender._bufferedBytes+=p:e._bufferedAmount+=p}if(p){p(new Error(`WebSocket is not open: readyState ${e.readyState} (${readyStates[e.readyState]})`))}}function receiverOnConclude(e,a){const p=this[kWebSocket$1];p._socket.removeListener("data",socketOnData),p._socket.resume(),p._closeFrameReceived=!0,p._closeMessage=a,p._closeCode=e,1005===e?p.close():p.close(e,a)}function receiverOnDrain(){this[kWebSocket$1]._socket.resume()}function receiverOnError(e){const a=this[kWebSocket$1];a._socket.removeListener("data",socketOnData),a._socket.resume(),a.close(e[kStatusCode]),a.emit("error",e)}function receiverOnFinish(){this[kWebSocket$1].emitClose()}function receiverOnMessage(e){this[kWebSocket$1].emit("message",e)}function receiverOnPing(e){const a=this[kWebSocket$1];a.pong(e,!a._isServer,NOOP),a.emit("ping",e)}function receiverOnPong(e){this[kWebSocket$1].emit("pong",e)}function socketOnClose(){const e=this[kWebSocket$1];this.removeListener("close",socketOnClose),this.removeListener("end",socketOnEnd),e._readyState=WebSocket.CLOSING,e._socket.read(),e._receiver.end(),this.removeListener("data",socketOnData),this[kWebSocket$1]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",receiverOnFinish),e._receiver.on("finish",receiverOnFinish))}function socketOnData(e){this[kWebSocket$1]._receiver.write(e)||this.pause()}function socketOnEnd(){const e=this[kWebSocket$1];e._readyState=WebSocket.CLOSING,e._receiver.end(),this.end()}function socketOnError$1(){const e=this[kWebSocket$1];this.removeListener("error",socketOnError$1),this.on("error",NOOP),e&&(e._readyState=WebSocket.CLOSING,this.destroy())}const{Duplex:Duplex}=Stream;function emitClose$1(e){e.emit("close")}function duplexOnEnd(){!this.destroyed&&this._writableState.finished&&this.destroy()}function duplexOnError(e){this.removeListener("error",duplexOnError),this.destroy(),0===this.listenerCount("error")&&this.emit("error",e)}function createWebSocketStream(e,a){let p=!0,t=!0;function d(){p&&e._socket.resume()}e.readyState===e.CONNECTING?e.once("open",(function(){e._receiver.removeAllListeners("drain"),e._receiver.on("drain",d)})):(e._receiver.removeAllListeners("drain"),e._receiver.on("drain",d));const i=new Duplex({...a,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",(function(a){i.push(a)||(p=!1,e._socket.pause())})),e.once("error",(function(e){i.destroyed||(t=!1,i.destroy(e))})),e.once("close",(function(){i.destroyed||i.push(null)})),i._destroy=function(a,p){if(e.readyState===e.CLOSED)return p(a),void process.nextTick(emitClose$1,i);let d=!1;e.once("error",(function(e){d=!0,p(e)})),e.once("close",(function(){d||p(a),process.nextTick(emitClose$1,i)})),t&&e.terminate()},i._final=function(a){e.readyState!==e.CONNECTING?null!==e._socket&&(e._socket._writableState.finished?(a(),i._readableState.endEmitted&&i.destroy()):(e._socket.once("finish",(function(){a()})),e.close())):e.once("open",(function(){i._final(a)}))},i._read=function(){e.readyState!==e.OPEN||p||(p=!0,e._receiver._writableState.needDrain||e._socket.resume())},i._write=function(a,p,t){e.readyState!==e.CONNECTING?e.send(a,t):e.once("open",(function(){i._write(a,p,t)}))},i.on("end",duplexOnEnd),i.on("error",duplexOnError),i}var stream=createWebSocketStream;const{createHash:createHash}=require$$0$4,{format:format,parse:parse}=extension,{GUID:GUID,kWebSocket:kWebSocket}=constants,keyRegex=/^[+/0-9A-Za-z]{22}==$/,RUNNING=0,CLOSING=1,CLOSED=2;class WebSocketServer extends EventEmitter{constructor(e,a){if(super(),null==(e={maxPayload:104857600,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,...e}).port&&!e.server&&!e.noServer||null!=e.port&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(null!=e.port?(this._server=http.createServer(((e,a)=>{const p=http.STATUS_CODES[426];a.writeHead(426,{"Content-Length":p.length,"Content-Type":"text/plain"}),a.end(p)})),this._server.listen(e.port,e.host,e.backlog,a)):e.server&&(this._server=e.server),this._server){const e=this.emit.bind(this,"connection");this._removeListeners=addListeners(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(a,p,t)=>{this.handleUpgrade(a,p,t,e)}})}!0===e.perMessageDeflate&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set),this.options=e,this._state=RUNNING}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(e&&this.once("close",e),this._state===CLOSED)return void process.nextTick(emitClose,this);if(this._state===CLOSING)return;if(this._state=CLOSING,this.clients)for(const e of this.clients)e.terminate();const a=this._server;a&&(this._removeListeners(),this._removeListeners=this._server=null,null!=this.options.port)?a.close(emitClose.bind(void 0,this)):process.nextTick(emitClose,this)}shouldHandle(e){if(this.options.path){const a=e.url.indexOf("?");if((-1!==a?e.url.slice(0,a):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,a,p,t){a.on("error",socketOnError);const d=void 0!==e.headers["sec-websocket-key"]&&e.headers["sec-websocket-key"].trim(),i=+e.headers["sec-websocket-version"],r={};if("GET"!==e.method||"websocket"!==e.headers.upgrade.toLowerCase()||!d||!keyRegex.test(d)||8!==i&&13!==i||!this.shouldHandle(e))return abortHandshake(a,400);if(this.options.perMessageDeflate){const p=new permessageDeflate(this.options.perMessageDeflate,!0,this.options.maxPayload);try{const a=parse(e.headers["sec-websocket-extensions"]);a[permessageDeflate.extensionName]&&(p.accept(a[permessageDeflate.extensionName]),r[permessageDeflate.extensionName]=p)}catch(e){return abortHandshake(a,400)}}if(this.options.verifyClient){const n={origin:e.headers[""+(8===i?"sec-websocket-origin":"origin")],secure:!(!e.socket.authorized&&!e.socket.encrypted),req:e};if(2===this.options.verifyClient.length)return void this.options.verifyClient(n,((i,n,s,o)=>{if(!i)return abortHandshake(a,n||401,s,o);this.completeUpgrade(d,r,e,a,p,t)}));if(!this.options.verifyClient(n))return abortHandshake(a,401)}this.completeUpgrade(d,r,e,a,p,t)}completeUpgrade(e,a,p,t,d,i){if(!t.readable||!t.writable)return t.destroy();if(t[kWebSocket])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>RUNNING)return abortHandshake(t,503);const r=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${createHash("sha1").update(e+GUID).digest("base64")}`],n=new websocket(null);let s=p.headers["sec-websocket-protocol"];if(s&&(s=s.split(",").map(trim),s=this.options.handleProtocols?this.options.handleProtocols(s,p):s[0],s&&(r.push(`Sec-WebSocket-Protocol: ${s}`),n._protocol=s)),a[permessageDeflate.extensionName]){const e=a[permessageDeflate.extensionName].params,p=format({[permessageDeflate.extensionName]:[e]});r.push(`Sec-WebSocket-Extensions: ${p}`),n._extensions=a}this.emit("headers",r,p),t.write(r.concat("\r\n").join("\r\n")),t.removeListener("error",socketOnError),n.setSocket(t,d,this.options.maxPayload),this.clients&&(this.clients.add(n),n.on("close",(()=>this.clients.delete(n)))),i(n,p)}}var websocketServer=WebSocketServer;function addListeners(e,a){for(const p of Object.keys(a))e.on(p,a[p]);return function(){for(const p of Object.keys(a))e.removeListener(p,a[p])}}function emitClose(e){e._state=CLOSED,e.emit("close")}function socketOnError(){this.destroy()}function abortHandshake(e,a,p,t){e.writable&&(p=p||http.STATUS_CODES[a],t={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(p),...t},e.write(`HTTP/1.1 ${a} ${http.STATUS_CODES[a]}\r\n`+Object.keys(t).map((e=>`${e}: ${t[e]}`)).join("\r\n")+"\r\n\r\n"+p)),e.removeListener("error",socketOnError),e.destroy()}function trim(e){return e.trim()}websocket.createWebSocketStream=stream,websocket.Server=websocketServer,websocket.Receiver=receiver,websocket.Sender=sender;var ws=websocket,node=ws,eventemitter3=createCommonjsModule((function(e){var a=Object.prototype.hasOwnProperty,p="~";function t(){}function d(e,a,p){this.fn=e,this.context=a,this.once=p||!1}function i(e,a,t,i,r){if("function"!=typeof t)throw new TypeError("The listener must be a function");var n=new d(t,i||e,r),s=p?p+a:a;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],n]:e._events[s].push(n):(e._events[s]=n,e._eventsCount++),e}function r(e,a){0==--e._eventsCount?e._events=new t:delete e._events[a]}function n(){this._events=new t,this._eventsCount=0}Object.create&&(t.prototype=Object.create(null),(new t).__proto__||(p=!1)),n.prototype.eventNames=function(){var e,t,d=[];if(0===this._eventsCount)return d;for(t in e=this._events)a.call(e,t)&&d.push(p?t.slice(1):t);return Object.getOwnPropertySymbols?d.concat(Object.getOwnPropertySymbols(e)):d},n.prototype.listeners=function(e){var a=p?p+e:e,t=this._events[a];if(!t)return[];if(t.fn)return[t.fn];for(var d=0,i=t.length,r=new Array(i);d"undefined"!=typeof Blob&&(e instanceof Blob||"[object Blob]"===Object.prototype.toString.call(e));class AlpacaStream extends eventemitter3{constructor(e){switch(super(),this.params=e,"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),e.type){case"account":this.host=e.credentials.paper?urls.websocket.account.replace("api.","paper-api."):urls.websocket.account;break;case"market_data":this.host=urls.websocket.market_data(this.params.source);break;default:this.host="unknown"}this.connection=new node(this.host),this.connection.onopen=()=>{let a={};switch(this.params.type){case"account":a={action:"authenticate",data:{key_id:e.credentials.key,secret_key:e.credentials.secret}};break;case"market_data":a=Object.assign({action:"auth"},e.credentials)}this.connection.send(JSON.stringify(a)),this.emit("open",this)},this.connection.onclose=()=>this.emit("close",this),this.connection.onmessage=e=>__awaiter(this,void 0,void 0,(function*(){let a=e.data;isBlob(a)?a=yield e.data.text():a instanceof ArrayBuffer&&(a=String.fromCharCode(...new Uint8Array(e.data)));let p=JSON.parse(a);("account"==this.params.type?[p]:p).forEach((e=>{this.emit("message",e),("T"in e&&"authenticated"==e.msg||"stream"in e&&"authorization"==e.stream&&"authorized"==e.data.status)&&(this.authenticated=!0,this.emit("authenticated",this)),"stream"in e&&"trade_updates"==e.stream&&this.emit("trade_updates",parse$3.trade_update(e.data));const a={success:"success",subscription:"subscription",error:"error",t:"trade",q:"quote",b:"bar"};"T"in e&&this.emit(a[e.T.split(".")[0]],e)}))})),this.connection.onerror=e=>{this.emit("error",e)}}getConnection(){return this.connection}subscribe(e,a=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"listen",data:{streams:[e]}}));break;case"market_data":let p={action:"subscribe"};p[e]=a,this.send(JSON.stringify(p))}return this}unsubscribe(e,a=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"unlisten",data:{streams:[e]}}));break;case"market_data":let p={action:"unsubscribe"};p[e]=a,this.send(JSON.stringify(p))}return this}send(e){if(!this.authenticated)throw new Error("not authenticated");return"object"==typeof e&&(e=JSON.stringify(e)),this.connection.send(e),this}}var index={AlpacaClient:AlpacaClient,AlpacaStream:AlpacaStream};export{AlpacaClient,AlpacaStream,index as default}; diff --git a/dist/alpaca.js b/dist/alpaca.js index 0ba50be..c2c7ae6 100644 --- a/dist/alpaca.js +++ b/dist/alpaca.js @@ -241,7 +241,13 @@ function number(numStr) { function trade_update(rawTradeUpdate) { if (!rawTradeUpdate) return undefined; - return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ raw: () => rawTradeUpdate, event: rawTradeUpdate.event, execution_id: rawTradeUpdate.execution_id, order: order(rawTradeUpdate.order) }, rawTradeUpdate.event_id && { event_id: number(rawTradeUpdate.event_id) }), rawTradeUpdate.at && { at: new Date(rawTradeUpdate.at) }), rawTradeUpdate.timestamp && { timestamp: new Date(rawTradeUpdate.timestamp) }), rawTradeUpdate.position_qty && { position_qty: number(rawTradeUpdate.position_qty) }), rawTradeUpdate.price && { price: number(rawTradeUpdate.price) }), rawTradeUpdate.qty && { qty: number(rawTradeUpdate.qty) }); + return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ raw: () => rawTradeUpdate, event: rawTradeUpdate.event, execution_id: rawTradeUpdate.execution_id, order: order(rawTradeUpdate.order) }, (rawTradeUpdate.event_id && { + event_id: number(rawTradeUpdate.event_id), + })), (rawTradeUpdate.at && { at: new Date(rawTradeUpdate.at) })), (rawTradeUpdate.timestamp && { + timestamp: new Date(rawTradeUpdate.timestamp), + })), (rawTradeUpdate.position_qty && { + position_qty: number(rawTradeUpdate.position_qty), + })), (rawTradeUpdate.price && { price: number(rawTradeUpdate.price) })), (rawTradeUpdate.qty && { qty: number(rawTradeUpdate.qty) })); } var parse = { account, @@ -259,7 +265,7 @@ var parse = { pageOfBars, snapshot, snapshots, - trade_update + trade_update, }; const unifetch = typeof fetch !== 'undefined' ? fetch : isofetch; @@ -452,6 +458,9 @@ class AlpacaClient { }); } getNews(params) { + if ('symbols' in params && Array.isArray(params.symbols)) { + params.symbols = params.symbols.join(','); + } return this.request({ method: 'GET', url: `${urls.rest.beta}/news`, diff --git a/dist/alpaca.js.map b/dist/alpaca.js.map index 3283e66..55a7f8b 100644 --- a/dist/alpaca.js.map +++ b/dist/alpaca.js.map @@ -1 +1 @@ -{"version":3,"file":"alpaca.js","sources":["../node_modules/tslib/tslib.es6.js","../src/urls.ts","../src/parse.ts","../src/client.ts","../src/stream.ts","../src/index.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n",null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"alpaca.js","sources":["../node_modules/tslib/tslib.es6.js","../src/urls.ts","../src/parse.ts","../src/client.ts","../src/stream.ts","../src/index.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n",null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/alpaca.min.js b/dist/alpaca.min.js index c10a073..3c176eb 100644 --- a/dist/alpaca.min.js +++ b/dist/alpaca.min.js @@ -1 +1 @@ -import t from"bottleneck";import e from"qs";import r from"isomorphic-unfetch";import a from"isomorphic-ws";import s from"eventemitter3";import i from"is-blob";function n(t,e,r,a){return new(r||(r=Promise))((function(s,i){function n(t){try{c(a.next(t))}catch(t){i(t)}}function o(t){try{c(a.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?s(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(n,o)}c((a=a.apply(t,e||[])).next())}))}var o={rest:{beta:"https://data.alpaca.markets/v1beta1",account:"https://api.alpaca.markets/v2",market_data_v2:"https://data.alpaca.markets/v2",market_data_v1:"https://data.alpaca.markets/v1"},websocket:{account:"wss://api.alpaca.markets/stream",market_data:(t="iex")=>`wss://stream.data.alpaca.markets/v2/${t}`}};function c(t){if(t)try{return Object.assign(Object.assign({},t),{raw:()=>t,created_at:new Date(t.created_at),updated_at:new Date(t.updated_at),submitted_at:new Date(t.submitted_at),filled_at:new Date(t.filled_at),expired_at:new Date(t.expired_at),canceled_at:new Date(t.canceled_at),failed_at:new Date(t.failed_at),replaced_at:new Date(t.replaced_at),qty:_(t.qty),filled_qty:_(t.filled_qty),type:t.type,side:t.side,time_in_force:t.time_in_force,limit_price:_(t.limit_price),stop_price:_(t.stop_price),filled_avg_price:_(t.filled_avg_price),status:t.status,legs:d(t.legs),trail_price:_(t.trail_price),trail_percent:_(t.trail_percent),hwm:_(t.hwm),order_class:t.order_class})}catch(t){throw new Error(`Order parsing failed. ${t.message}`)}}function d(t){return t?t.map((t=>c(t))):void 0}function u(t){if(t)try{return Object.assign(Object.assign({},t),{raw:()=>t,avg_entry_price:_(t.avg_entry_price),qty:_(t.qty),side:t.side,market_value:_(t.market_value),cost_basis:_(t.cost_basis),unrealized_pl:_(t.unrealized_pl),unrealized_plpc:_(t.unrealized_plpc),unrealized_intraday_pl:_(t.unrealized_intraday_pl),unrealized_intraday_plpc:_(t.unrealized_intraday_plpc),current_price:_(t.current_price),lastday_price:_(t.lastday_price),change_today:_(t.change_today)})}catch(t){throw new Error(`Position parsing failed. ${t.message}`)}}function l(t){if(t)try{return Object.assign(Object.assign({},t),{raw:()=>t,cum_qty:_(t.cum_qty),leaves_qty:_(t.leaves_qty),price:_(t.price),qty:_(t.qty),side:t.side,type:t.type})}catch(t){throw new Error(`TradeActivity parsing failed. ${t.message}`)}}function h(t){if(t)try{return Object.assign(Object.assign({},t),{raw:()=>t,net_amount:_(t.net_amount),qty:_(t.qty),per_share_amount:_(t.per_share_amount)})}catch(t){throw new Error(`NonTradeActivity parsing failed. ${t.message}`)}}function p(t){if(t)try{return Object.assign(Object.assign({},t),{raw:()=>t,latestTrade:t.latestTrade?Object.assign(Object.assign({},t.latestTrade),{t:new Date(t.latestTrade.t)}):null,latestQuote:t.latestQuote?Object.assign(Object.assign({},t.latestQuote),{t:new Date(t.latestQuote.t)}):null,minuteBar:t.minuteBar?Object.assign(Object.assign({},t.minuteBar),{t:new Date(t.minuteBar.t)}):null,dailyBar:t.dailyBar?Object.assign(Object.assign({},t.dailyBar),{t:new Date(t.dailyBar.t)}):null,prevDailyBar:t.prevDailyBar?Object.assign(Object.assign({},t.prevDailyBar),{t:new Date(t.prevDailyBar.t)}):null})}catch(t){throw new Error(`Snapshot parsing failed "${t.message}"`)}}function _(t){if(void 0===t||null==t)return t;const e=parseFloat(t);return Number.isNaN(e)?null:e}var m={account:function(t){if(t)try{return Object.assign(Object.assign({},t),{raw:()=>t,buying_power:_(t.buying_power),regt_buying_power:_(t.regt_buying_power),daytrading_buying_power:_(t.daytrading_buying_power),cash:_(t.cash),created_at:new Date(t.created_at),portfolio_value:_(t.portfolio_value),multiplier:_(t.multiplier),equity:_(t.equity),last_equity:_(t.last_equity),long_market_value:_(t.long_market_value),short_market_value:_(t.short_market_value),initial_margin:_(t.initial_margin),maintenance_margin:_(t.maintenance_margin),last_maintenance_margin:_(t.last_maintenance_margin),sma:_(t.sma),status:t.status})}catch(t){throw new Error(`Account parsing failed. ${t.message}`)}},activities:function(t){if(t)try{return t.map((t=>"FILL"===t.activity_type?l(t):h(t)))}catch(t){throw new Error(`Activity parsing failed. ${t.message}`)}},clock:function(t){if(t)try{return{raw:()=>t,timestamp:new Date(t.timestamp),is_open:t.is_open,next_open:new Date(t.next_open),next_close:new Date(t.next_close)}}catch(t){throw new Error(`Order parsing failed. ${t.message}`)}},nonTradeActivity:h,order:c,orders:d,canceled_orders:function(t){return t?t.map((t=>function(t){if(!t)return;let e=t.body;delete t.body;try{return Object.assign(Object.assign({},t),{order:Object.assign(Object.assign({},e),{raw:()=>e,created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),submitted_at:new Date(e.submitted_at),filled_at:new Date(e.filled_at),expired_at:new Date(e.expired_at),canceled_at:new Date(e.canceled_at),failed_at:new Date(e.failed_at),replaced_at:new Date(e.replaced_at),qty:_(e.qty),filled_qty:_(e.filled_qty),type:e.type,side:e.side,time_in_force:e.time_in_force,limit_price:_(e.limit_price),stop_price:_(e.stop_price),filled_avg_price:_(e.filled_avg_price),status:e.status,legs:d(e.legs),trail_price:_(e.trail_price),trail_percent:_(e.trail_percent),hwm:_(e.hwm),order_class:e.order_class})})}catch(t){throw new Error(`Order parsing failed. ${t.message}`)}}(t))):void 0},position:u,positions:function(t){return t?t.map((t=>u(t))):void 0},tradeActivity:l,pageOfTrades:function(t){if(t)try{return{raw:()=>t,trades:(null==t.trades?[]:t.trades).map((t=>Object.assign(Object.assign({raw:()=>t},t),{t:new Date(t.t)}))),symbol:t.symbol,next_page_token:t.next_page_token}}catch(t){throw new Error(`PageOfTrades parsing failed "${t.message}"`)}},pageOfQuotes:function(t){if(t)try{return{raw:()=>t,quotes:(null==t.quotes?[]:t.quotes).map((t=>Object.assign(Object.assign({raw:()=>t},t),{t:new Date(t.t)}))),symbol:t.symbol,next_page_token:t.next_page_token}}catch(t){throw new Error(`PageOfTrades parsing failed "${t.message}"`)}},pageOfBars:function(t){if(t)try{return{raw:()=>t,bars:(null==t.bars?[]:t.bars).map((t=>Object.assign(Object.assign({raw:()=>t},t),{t:new Date(t.t)}))),symbol:t.symbol,next_page_token:t.next_page_token}}catch(t){throw new Error(`PageOfTrades parsing failed "${t.message}"`)}},snapshot:p,snapshots:function(t){let e={};for(let[r,a]of Object.entries(t))e[r]=p(a);return e},trade_update:function(t){if(t)return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({raw:()=>t,event:t.event,execution_id:t.execution_id,order:c(t.order)},t.event_id&&{event_id:_(t.event_id)}),t.at&&{at:new Date(t.at)}),t.timestamp&&{timestamp:new Date(t.timestamp)}),t.position_qty&&{position_qty:_(t.position_qty)}),t.price&&{price:_(t.price)}),t.qty&&{qty:_(t.qty)})}};const y="undefined"!=typeof fetch?fetch:r;class g{constructor(e){if(this.params=e,this.limiter=new t({reservoir:200,reservoirRefreshAmount:200,reservoirRefreshInterval:6e4,maxConcurrent:1,minTime:200}),"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),"access_token"in e.credentials&&("key"in e.credentials||"secret"in e.credentials))throw new Error("can't create client with both default and oauth credentials")}isAuthenticated(){return n(this,void 0,void 0,(function*(){try{return yield this.getAccount(),!0}catch(t){return!1}}))}getAccount(){return n(this,void 0,void 0,(function*(){return m.account(yield this.request({method:"GET",url:`${o.rest.account}/account`}))}))}getOrder(t){return n(this,void 0,void 0,(function*(){return m.order(yield this.request({method:"GET",url:`${o.rest.account}/orders/${t.order_id||t.client_order_id}`,data:{nested:t.nested}}))}))}getOrders(t={}){return n(this,void 0,void 0,(function*(){return m.orders(yield this.request({method:"GET",url:`${o.rest.account}/orders`,data:Object.assign(Object.assign({},t),{symbols:t.symbols?t.symbols.join(","):void 0})}))}))}placeOrder(t){return n(this,void 0,void 0,(function*(){return m.order(yield this.request({method:"POST",url:`${o.rest.account}/orders`,data:t}))}))}replaceOrder(t){return n(this,void 0,void 0,(function*(){return m.order(yield this.request({method:"PATCH",url:`${o.rest.account}/orders/${t.order_id}`,data:t}))}))}cancelOrder(t){return this.request({method:"DELETE",url:`${o.rest.account}/orders/${t.order_id}`,isJSON:!1})}cancelOrders(){return n(this,void 0,void 0,(function*(){return m.canceled_orders(yield this.request({method:"DELETE",url:`${o.rest.account}/orders`}))}))}getPosition(t){return n(this,void 0,void 0,(function*(){return m.position(yield this.request({method:"GET",url:`${o.rest.account}/positions/${t.symbol}`}))}))}getPositions(){return n(this,void 0,void 0,(function*(){return m.positions(yield this.request({method:"GET",url:`${o.rest.account}/positions`}))}))}closePosition(t){return n(this,void 0,void 0,(function*(){return m.order(yield this.request({method:"DELETE",url:`${o.rest.account}/positions/${t.symbol}`,data:t}))}))}closePositions(t){var e;return n(this,void 0,void 0,(function*(){return m.orders(yield this.request({method:"DELETE",url:`${o.rest.account}/positions?cancel_orders=${JSON.stringify(null!==(e=t.cancel_orders)&&void 0!==e&&e)}`}))}))}getAsset(t){return this.request({method:"GET",url:`${o.rest.account}/assets/${t.asset_id_or_symbol}`})}getAssets(t){return this.request({method:"GET",url:`${o.rest.account}/assets`,data:t})}getWatchlist(t){return this.request({method:"GET",url:`${o.rest.account}/watchlists/${t.uuid}`})}getWatchlists(){return this.request({method:"GET",url:`${o.rest.account}/watchlists`})}createWatchlist(t){return this.request({method:"POST",url:`${o.rest.account}/watchlists`,data:t})}updateWatchlist(t){return this.request({method:"PUT",url:`${o.rest.account}/watchlists/${t.uuid}`,data:t})}addToWatchlist(t){return this.request({method:"POST",url:`${o.rest.account}/watchlists/${t.uuid}`,data:t})}removeFromWatchlist(t){return this.request({method:"DELETE",url:`${o.rest.account}/watchlists/${t.uuid}/${t.symbol}`})}deleteWatchlist(t){return this.request({method:"DELETE",url:`${o.rest.account}/watchlists/${t.uuid}`})}getCalendar(t){return this.request({method:"GET",url:`${o.rest.account}/calendar`,data:t})}getNews(t){return this.request({method:"GET",url:`${o.rest.beta}/news`,data:t})}getClock(){return n(this,void 0,void 0,(function*(){return m.clock(yield this.request({method:"GET",url:`${o.rest.account}/clock`}))}))}getAccountConfigurations(){return this.request({method:"GET",url:`${o.rest.account}/account/configurations`})}updateAccountConfigurations(t){return this.request({method:"PATCH",url:`${o.rest.account}/account/configurations`,data:t})}getAccountActivities(t){return n(this,void 0,void 0,(function*(){return t.activity_types&&Array.isArray(t.activity_types)&&(t.activity_types=t.activity_types.join(",")),m.activities(yield this.request({method:"GET",url:`${o.rest.account}/account/activities${t.activity_type?"/".concat(t.activity_type):""}`,data:Object.assign(Object.assign({},t),{activity_type:void 0})}))}))}getPortfolioHistory(t){return this.request({method:"GET",url:`${o.rest.account}/account/portfolio/history`,data:t})}getBars_v1(t){return n(this,void 0,void 0,(function*(){const e=Object.assign(Object.assign({},t),{symbols:t.symbols.join(",")});return yield this.request({method:"GET",url:`${o.rest.market_data_v1}/bars/${t.timeframe}`,data:e})}))}getLastTrade_v1(t){return n(this,void 0,void 0,(function*(){return yield this.request({method:"GET",url:`${o.rest.market_data_v1}/last/stocks/${t.symbol}`})}))}getLastQuote_v1(t){return n(this,void 0,void 0,(function*(){return yield this.request({method:"GET",url:`${o.rest.market_data_v1}/last_quote/stocks/${t.symbol}`})}))}getTrades(t){return n(this,void 0,void 0,(function*(){return m.pageOfTrades(yield this.request({method:"GET",url:`${o.rest.market_data_v2}/stocks/${t.symbol}/trades`,data:Object.assign(Object.assign({},t),{symbol:void 0})}))}))}getQuotes(t){return n(this,void 0,void 0,(function*(){return m.pageOfQuotes(yield this.request({method:"GET",url:`${o.rest.market_data_v2}/stocks/${t.symbol}/quotes`,data:Object.assign(Object.assign({},t),{symbol:void 0})}))}))}getBars(t){return n(this,void 0,void 0,(function*(){return m.pageOfBars(yield this.request({method:"GET",url:`${o.rest.market_data_v2}/stocks/${t.symbol}/bars`,data:Object.assign(Object.assign({},t),{symbol:void 0})}))}))}getSnapshot(t){return n(this,void 0,void 0,(function*(){return m.snapshot(yield this.request({method:"GET",url:`${o.rest.market_data_v2}/stocks/${t.symbol}/snapshot`}))}))}getSnapshots(t){return n(this,void 0,void 0,(function*(){return m.snapshots(yield this.request({method:"GET",url:`${o.rest.market_data_v2}/stocks/snapshots?symbols=${t.symbols.join(",")}`}))}))}request(t){return n(this,void 0,void 0,(function*(){let r={};"access_token"in this.params.credentials?r.Authorization=`Bearer ${this.params.credentials.access_token}`:(r["APCA-API-KEY-ID"]=this.params.credentials.key,r["APCA-API-SECRET-KEY"]=this.params.credentials.secret),this.params.credentials.paper&&(t.url=t.url.replace("api.","paper-api."));let a="";if(t.data){for(let[e,r]of Object.entries(t.data))r instanceof Date&&(t.data[e]=r.toISOString());["POST","PATCH","PUT"].includes(t.method)||(a="?".concat(e.stringify(t.data)),t.data=void 0)}const s=()=>y(t.url.concat(a),{method:t.method,headers:r,body:JSON.stringify(t.data)}),i=this.params.rate_limit?()=>this.limiter.schedule(s):s;let n,o={};try{if(n=yield i(),null!=t.isJSON&&!t.isJSON)return n.ok;o=yield n.json()}catch(t){throw console.error(t),o}if("code"in o||"message"in o)throw o;return o}))}}class f extends s{constructor(t){switch(super(),this.params=t,"paper"in t.credentials||"key"in t.credentials&&t.credentials.key.startsWith("A")||(t.credentials.paper=!0),t.type){case"account":this.host=t.credentials.paper?o.websocket.account.replace("api.","paper-api."):o.websocket.account;break;case"market_data":this.host=o.websocket.market_data(this.params.source);break;default:this.host="unknown"}this.connection=new a(this.host),this.connection.onopen=()=>{let e={};switch(this.params.type){case"account":e={action:"authenticate",data:{key_id:t.credentials.key,secret_key:t.credentials.secret}};break;case"market_data":e=Object.assign({action:"auth"},t.credentials)}this.connection.send(JSON.stringify(e)),this.emit("open",this)},this.connection.onclose=()=>this.emit("close",this),this.connection.onmessage=t=>n(this,void 0,void 0,(function*(){let e=t.data;i(e)?e=yield t.data.text():e instanceof ArrayBuffer&&(e=String.fromCharCode(...new Uint8Array(t.data)));let r=JSON.parse(e);("account"==this.params.type?[r]:r).forEach((t=>{this.emit("message",t),("T"in t&&"authenticated"==t.msg||"stream"in t&&"authorization"==t.stream&&"authorized"==t.data.status)&&(this.authenticated=!0,this.emit("authenticated",this)),"stream"in t&&"trade_updates"==t.stream&&this.emit("trade_updates",m.trade_update(t.data));const e={success:"success",subscription:"subscription",error:"error",t:"trade",q:"quote",b:"bar"};"T"in t&&this.emit(e[t.T.split(".")[0]],t)}))})),this.connection.onerror=t=>{this.emit("error",t)}}getConnection(){return this.connection}subscribe(t,e=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"listen",data:{streams:[t]}}));break;case"market_data":let r={action:"subscribe"};r[t]=e,this.send(JSON.stringify(r))}return this}unsubscribe(t,e=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"unlisten",data:{streams:[t]}}));break;case"market_data":let r={action:"unsubscribe"};r[t]=e,this.send(JSON.stringify(r))}return this}send(t){if(!this.authenticated)throw new Error("not authenticated");return"object"==typeof t&&(t=JSON.stringify(t)),this.connection.send(t),this}}var v={AlpacaClient:g,AlpacaStream:f};export{g as AlpacaClient,f as AlpacaStream,v as default}; +import t from"bottleneck";import e from"qs";import r from"isomorphic-unfetch";import a from"isomorphic-ws";import s from"eventemitter3";import i from"is-blob";function n(t,e,r,a){return new(r||(r=Promise))((function(s,i){function n(t){try{c(a.next(t))}catch(t){i(t)}}function o(t){try{c(a.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?s(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(n,o)}c((a=a.apply(t,e||[])).next())}))}var o={rest:{beta:"https://data.alpaca.markets/v1beta1",account:"https://api.alpaca.markets/v2",market_data_v2:"https://data.alpaca.markets/v2",market_data_v1:"https://data.alpaca.markets/v1"},websocket:{account:"wss://api.alpaca.markets/stream",market_data:(t="iex")=>`wss://stream.data.alpaca.markets/v2/${t}`}};function c(t){if(t)try{return Object.assign(Object.assign({},t),{raw:()=>t,created_at:new Date(t.created_at),updated_at:new Date(t.updated_at),submitted_at:new Date(t.submitted_at),filled_at:new Date(t.filled_at),expired_at:new Date(t.expired_at),canceled_at:new Date(t.canceled_at),failed_at:new Date(t.failed_at),replaced_at:new Date(t.replaced_at),qty:m(t.qty),filled_qty:m(t.filled_qty),type:t.type,side:t.side,time_in_force:t.time_in_force,limit_price:m(t.limit_price),stop_price:m(t.stop_price),filled_avg_price:m(t.filled_avg_price),status:t.status,legs:d(t.legs),trail_price:m(t.trail_price),trail_percent:m(t.trail_percent),hwm:m(t.hwm),order_class:t.order_class})}catch(t){throw new Error(`Order parsing failed. ${t.message}`)}}function d(t){return t?t.map((t=>c(t))):void 0}function u(t){if(t)try{return Object.assign(Object.assign({},t),{raw:()=>t,avg_entry_price:m(t.avg_entry_price),qty:m(t.qty),side:t.side,market_value:m(t.market_value),cost_basis:m(t.cost_basis),unrealized_pl:m(t.unrealized_pl),unrealized_plpc:m(t.unrealized_plpc),unrealized_intraday_pl:m(t.unrealized_intraday_pl),unrealized_intraday_plpc:m(t.unrealized_intraday_plpc),current_price:m(t.current_price),lastday_price:m(t.lastday_price),change_today:m(t.change_today)})}catch(t){throw new Error(`Position parsing failed. ${t.message}`)}}function l(t){if(t)try{return Object.assign(Object.assign({},t),{raw:()=>t,cum_qty:m(t.cum_qty),leaves_qty:m(t.leaves_qty),price:m(t.price),qty:m(t.qty),side:t.side,type:t.type})}catch(t){throw new Error(`TradeActivity parsing failed. ${t.message}`)}}function h(t){if(t)try{return Object.assign(Object.assign({},t),{raw:()=>t,net_amount:m(t.net_amount),qty:m(t.qty),per_share_amount:m(t.per_share_amount)})}catch(t){throw new Error(`NonTradeActivity parsing failed. ${t.message}`)}}function p(t){if(t)try{return Object.assign(Object.assign({},t),{raw:()=>t,latestTrade:t.latestTrade?Object.assign(Object.assign({},t.latestTrade),{t:new Date(t.latestTrade.t)}):null,latestQuote:t.latestQuote?Object.assign(Object.assign({},t.latestQuote),{t:new Date(t.latestQuote.t)}):null,minuteBar:t.minuteBar?Object.assign(Object.assign({},t.minuteBar),{t:new Date(t.minuteBar.t)}):null,dailyBar:t.dailyBar?Object.assign(Object.assign({},t.dailyBar),{t:new Date(t.dailyBar.t)}):null,prevDailyBar:t.prevDailyBar?Object.assign(Object.assign({},t.prevDailyBar),{t:new Date(t.prevDailyBar.t)}):null})}catch(t){throw new Error(`Snapshot parsing failed "${t.message}"`)}}function m(t){if(void 0===t||null==t)return t;const e=parseFloat(t);return Number.isNaN(e)?null:e}var _={account:function(t){if(t)try{return Object.assign(Object.assign({},t),{raw:()=>t,buying_power:m(t.buying_power),regt_buying_power:m(t.regt_buying_power),daytrading_buying_power:m(t.daytrading_buying_power),cash:m(t.cash),created_at:new Date(t.created_at),portfolio_value:m(t.portfolio_value),multiplier:m(t.multiplier),equity:m(t.equity),last_equity:m(t.last_equity),long_market_value:m(t.long_market_value),short_market_value:m(t.short_market_value),initial_margin:m(t.initial_margin),maintenance_margin:m(t.maintenance_margin),last_maintenance_margin:m(t.last_maintenance_margin),sma:m(t.sma),status:t.status})}catch(t){throw new Error(`Account parsing failed. ${t.message}`)}},activities:function(t){if(t)try{return t.map((t=>"FILL"===t.activity_type?l(t):h(t)))}catch(t){throw new Error(`Activity parsing failed. ${t.message}`)}},clock:function(t){if(t)try{return{raw:()=>t,timestamp:new Date(t.timestamp),is_open:t.is_open,next_open:new Date(t.next_open),next_close:new Date(t.next_close)}}catch(t){throw new Error(`Order parsing failed. ${t.message}`)}},nonTradeActivity:h,order:c,orders:d,canceled_orders:function(t){return t?t.map((t=>function(t){if(!t)return;let e=t.body;delete t.body;try{return Object.assign(Object.assign({},t),{order:Object.assign(Object.assign({},e),{raw:()=>e,created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),submitted_at:new Date(e.submitted_at),filled_at:new Date(e.filled_at),expired_at:new Date(e.expired_at),canceled_at:new Date(e.canceled_at),failed_at:new Date(e.failed_at),replaced_at:new Date(e.replaced_at),qty:m(e.qty),filled_qty:m(e.filled_qty),type:e.type,side:e.side,time_in_force:e.time_in_force,limit_price:m(e.limit_price),stop_price:m(e.stop_price),filled_avg_price:m(e.filled_avg_price),status:e.status,legs:d(e.legs),trail_price:m(e.trail_price),trail_percent:m(e.trail_percent),hwm:m(e.hwm),order_class:e.order_class})})}catch(t){throw new Error(`Order parsing failed. ${t.message}`)}}(t))):void 0},position:u,positions:function(t){return t?t.map((t=>u(t))):void 0},tradeActivity:l,pageOfTrades:function(t){if(t)try{return{raw:()=>t,trades:(null==t.trades?[]:t.trades).map((t=>Object.assign(Object.assign({raw:()=>t},t),{t:new Date(t.t)}))),symbol:t.symbol,next_page_token:t.next_page_token}}catch(t){throw new Error(`PageOfTrades parsing failed "${t.message}"`)}},pageOfQuotes:function(t){if(t)try{return{raw:()=>t,quotes:(null==t.quotes?[]:t.quotes).map((t=>Object.assign(Object.assign({raw:()=>t},t),{t:new Date(t.t)}))),symbol:t.symbol,next_page_token:t.next_page_token}}catch(t){throw new Error(`PageOfTrades parsing failed "${t.message}"`)}},pageOfBars:function(t){if(t)try{return{raw:()=>t,bars:(null==t.bars?[]:t.bars).map((t=>Object.assign(Object.assign({raw:()=>t},t),{t:new Date(t.t)}))),symbol:t.symbol,next_page_token:t.next_page_token}}catch(t){throw new Error(`PageOfTrades parsing failed "${t.message}"`)}},snapshot:p,snapshots:function(t){let e={};for(let[r,a]of Object.entries(t))e[r]=p(a);return e},trade_update:function(t){if(t)return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({raw:()=>t,event:t.event,execution_id:t.execution_id,order:c(t.order)},t.event_id&&{event_id:m(t.event_id)}),t.at&&{at:new Date(t.at)}),t.timestamp&&{timestamp:new Date(t.timestamp)}),t.position_qty&&{position_qty:m(t.position_qty)}),t.price&&{price:m(t.price)}),t.qty&&{qty:m(t.qty)})}};const y="undefined"!=typeof fetch?fetch:r;class g{constructor(e){if(this.params=e,this.limiter=new t({reservoir:200,reservoirRefreshAmount:200,reservoirRefreshInterval:6e4,maxConcurrent:1,minTime:200}),"paper"in e.credentials||"key"in e.credentials&&e.credentials.key.startsWith("A")||(e.credentials.paper=!0),"access_token"in e.credentials&&("key"in e.credentials||"secret"in e.credentials))throw new Error("can't create client with both default and oauth credentials")}isAuthenticated(){return n(this,void 0,void 0,(function*(){try{return yield this.getAccount(),!0}catch(t){return!1}}))}getAccount(){return n(this,void 0,void 0,(function*(){return _.account(yield this.request({method:"GET",url:`${o.rest.account}/account`}))}))}getOrder(t){return n(this,void 0,void 0,(function*(){return _.order(yield this.request({method:"GET",url:`${o.rest.account}/orders/${t.order_id||t.client_order_id}`,data:{nested:t.nested}}))}))}getOrders(t={}){return n(this,void 0,void 0,(function*(){return _.orders(yield this.request({method:"GET",url:`${o.rest.account}/orders`,data:Object.assign(Object.assign({},t),{symbols:t.symbols?t.symbols.join(","):void 0})}))}))}placeOrder(t){return n(this,void 0,void 0,(function*(){return _.order(yield this.request({method:"POST",url:`${o.rest.account}/orders`,data:t}))}))}replaceOrder(t){return n(this,void 0,void 0,(function*(){return _.order(yield this.request({method:"PATCH",url:`${o.rest.account}/orders/${t.order_id}`,data:t}))}))}cancelOrder(t){return this.request({method:"DELETE",url:`${o.rest.account}/orders/${t.order_id}`,isJSON:!1})}cancelOrders(){return n(this,void 0,void 0,(function*(){return _.canceled_orders(yield this.request({method:"DELETE",url:`${o.rest.account}/orders`}))}))}getPosition(t){return n(this,void 0,void 0,(function*(){return _.position(yield this.request({method:"GET",url:`${o.rest.account}/positions/${t.symbol}`}))}))}getPositions(){return n(this,void 0,void 0,(function*(){return _.positions(yield this.request({method:"GET",url:`${o.rest.account}/positions`}))}))}closePosition(t){return n(this,void 0,void 0,(function*(){return _.order(yield this.request({method:"DELETE",url:`${o.rest.account}/positions/${t.symbol}`,data:t}))}))}closePositions(t){var e;return n(this,void 0,void 0,(function*(){return _.orders(yield this.request({method:"DELETE",url:`${o.rest.account}/positions?cancel_orders=${JSON.stringify(null!==(e=t.cancel_orders)&&void 0!==e&&e)}`}))}))}getAsset(t){return this.request({method:"GET",url:`${o.rest.account}/assets/${t.asset_id_or_symbol}`})}getAssets(t){return this.request({method:"GET",url:`${o.rest.account}/assets`,data:t})}getWatchlist(t){return this.request({method:"GET",url:`${o.rest.account}/watchlists/${t.uuid}`})}getWatchlists(){return this.request({method:"GET",url:`${o.rest.account}/watchlists`})}createWatchlist(t){return this.request({method:"POST",url:`${o.rest.account}/watchlists`,data:t})}updateWatchlist(t){return this.request({method:"PUT",url:`${o.rest.account}/watchlists/${t.uuid}`,data:t})}addToWatchlist(t){return this.request({method:"POST",url:`${o.rest.account}/watchlists/${t.uuid}`,data:t})}removeFromWatchlist(t){return this.request({method:"DELETE",url:`${o.rest.account}/watchlists/${t.uuid}/${t.symbol}`})}deleteWatchlist(t){return this.request({method:"DELETE",url:`${o.rest.account}/watchlists/${t.uuid}`})}getCalendar(t){return this.request({method:"GET",url:`${o.rest.account}/calendar`,data:t})}getNews(t){return"symbols"in t&&Array.isArray(t.symbols)&&(t.symbols=t.symbols.join(",")),this.request({method:"GET",url:`${o.rest.beta}/news`,data:t})}getClock(){return n(this,void 0,void 0,(function*(){return _.clock(yield this.request({method:"GET",url:`${o.rest.account}/clock`}))}))}getAccountConfigurations(){return this.request({method:"GET",url:`${o.rest.account}/account/configurations`})}updateAccountConfigurations(t){return this.request({method:"PATCH",url:`${o.rest.account}/account/configurations`,data:t})}getAccountActivities(t){return n(this,void 0,void 0,(function*(){return t.activity_types&&Array.isArray(t.activity_types)&&(t.activity_types=t.activity_types.join(",")),_.activities(yield this.request({method:"GET",url:`${o.rest.account}/account/activities${t.activity_type?"/".concat(t.activity_type):""}`,data:Object.assign(Object.assign({},t),{activity_type:void 0})}))}))}getPortfolioHistory(t){return this.request({method:"GET",url:`${o.rest.account}/account/portfolio/history`,data:t})}getBars_v1(t){return n(this,void 0,void 0,(function*(){const e=Object.assign(Object.assign({},t),{symbols:t.symbols.join(",")});return yield this.request({method:"GET",url:`${o.rest.market_data_v1}/bars/${t.timeframe}`,data:e})}))}getLastTrade_v1(t){return n(this,void 0,void 0,(function*(){return yield this.request({method:"GET",url:`${o.rest.market_data_v1}/last/stocks/${t.symbol}`})}))}getLastQuote_v1(t){return n(this,void 0,void 0,(function*(){return yield this.request({method:"GET",url:`${o.rest.market_data_v1}/last_quote/stocks/${t.symbol}`})}))}getTrades(t){return n(this,void 0,void 0,(function*(){return _.pageOfTrades(yield this.request({method:"GET",url:`${o.rest.market_data_v2}/stocks/${t.symbol}/trades`,data:Object.assign(Object.assign({},t),{symbol:void 0})}))}))}getQuotes(t){return n(this,void 0,void 0,(function*(){return _.pageOfQuotes(yield this.request({method:"GET",url:`${o.rest.market_data_v2}/stocks/${t.symbol}/quotes`,data:Object.assign(Object.assign({},t),{symbol:void 0})}))}))}getBars(t){return n(this,void 0,void 0,(function*(){return _.pageOfBars(yield this.request({method:"GET",url:`${o.rest.market_data_v2}/stocks/${t.symbol}/bars`,data:Object.assign(Object.assign({},t),{symbol:void 0})}))}))}getSnapshot(t){return n(this,void 0,void 0,(function*(){return _.snapshot(yield this.request({method:"GET",url:`${o.rest.market_data_v2}/stocks/${t.symbol}/snapshot`}))}))}getSnapshots(t){return n(this,void 0,void 0,(function*(){return _.snapshots(yield this.request({method:"GET",url:`${o.rest.market_data_v2}/stocks/snapshots?symbols=${t.symbols.join(",")}`}))}))}request(t){return n(this,void 0,void 0,(function*(){let r={};"access_token"in this.params.credentials?r.Authorization=`Bearer ${this.params.credentials.access_token}`:(r["APCA-API-KEY-ID"]=this.params.credentials.key,r["APCA-API-SECRET-KEY"]=this.params.credentials.secret),this.params.credentials.paper&&(t.url=t.url.replace("api.","paper-api."));let a="";if(t.data){for(let[e,r]of Object.entries(t.data))r instanceof Date&&(t.data[e]=r.toISOString());["POST","PATCH","PUT"].includes(t.method)||(a="?".concat(e.stringify(t.data)),t.data=void 0)}const s=()=>y(t.url.concat(a),{method:t.method,headers:r,body:JSON.stringify(t.data)}),i=this.params.rate_limit?()=>this.limiter.schedule(s):s;let n,o={};try{if(n=yield i(),null!=t.isJSON&&!t.isJSON)return n.ok;o=yield n.json()}catch(t){throw console.error(t),o}if("code"in o||"message"in o)throw o;return o}))}}class f extends s{constructor(t){switch(super(),this.params=t,"paper"in t.credentials||"key"in t.credentials&&t.credentials.key.startsWith("A")||(t.credentials.paper=!0),t.type){case"account":this.host=t.credentials.paper?o.websocket.account.replace("api.","paper-api."):o.websocket.account;break;case"market_data":this.host=o.websocket.market_data(this.params.source);break;default:this.host="unknown"}this.connection=new a(this.host),this.connection.onopen=()=>{let e={};switch(this.params.type){case"account":e={action:"authenticate",data:{key_id:t.credentials.key,secret_key:t.credentials.secret}};break;case"market_data":e=Object.assign({action:"auth"},t.credentials)}this.connection.send(JSON.stringify(e)),this.emit("open",this)},this.connection.onclose=()=>this.emit("close",this),this.connection.onmessage=t=>n(this,void 0,void 0,(function*(){let e=t.data;i(e)?e=yield t.data.text():e instanceof ArrayBuffer&&(e=String.fromCharCode(...new Uint8Array(t.data)));let r=JSON.parse(e);("account"==this.params.type?[r]:r).forEach((t=>{this.emit("message",t),("T"in t&&"authenticated"==t.msg||"stream"in t&&"authorization"==t.stream&&"authorized"==t.data.status)&&(this.authenticated=!0,this.emit("authenticated",this)),"stream"in t&&"trade_updates"==t.stream&&this.emit("trade_updates",_.trade_update(t.data));const e={success:"success",subscription:"subscription",error:"error",t:"trade",q:"quote",b:"bar"};"T"in t&&this.emit(e[t.T.split(".")[0]],t)}))})),this.connection.onerror=t=>{this.emit("error",t)}}getConnection(){return this.connection}subscribe(t,e=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"listen",data:{streams:[t]}}));break;case"market_data":let r={action:"subscribe"};r[t]=e,this.send(JSON.stringify(r))}return this}unsubscribe(t,e=[]){switch(this.params.type){case"account":this.send(JSON.stringify({action:"unlisten",data:{streams:[t]}}));break;case"market_data":let r={action:"unsubscribe"};r[t]=e,this.send(JSON.stringify(r))}return this}send(t){if(!this.authenticated)throw new Error("not authenticated");return"object"==typeof t&&(t=JSON.stringify(t)),this.connection.send(t),this}}var b={AlpacaClient:g,AlpacaStream:f};export{g as AlpacaClient,f as AlpacaStream,b as default}; diff --git a/dist/cjs/client.cjs b/dist/cjs/client.cjs index 6b93ec5..dad5d46 100644 --- a/dist/cjs/client.cjs +++ b/dist/cjs/client.cjs @@ -212,6 +212,10 @@ class AlpacaClient { }); } getNews(params) { + // transform symbols if necessary + if ('symbols' in params && Array.isArray(params.symbols)) { + params.symbols = params.symbols.join(','); + } return this.request({ method: 'GET', url: `${urls_js_1.default.rest.beta}/news`, diff --git a/dist/cjs/parse.cjs b/dist/cjs/parse.cjs index 5bd179b..a11348f 100644 --- a/dist/cjs/parse.cjs +++ b/dist/cjs/parse.cjs @@ -194,7 +194,13 @@ function number(numStr) { function trade_update(rawTradeUpdate) { if (!rawTradeUpdate) return undefined; - return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ raw: () => rawTradeUpdate, event: rawTradeUpdate.event, execution_id: rawTradeUpdate.execution_id, order: order(rawTradeUpdate.order) }, rawTradeUpdate.event_id && { event_id: number(rawTradeUpdate.event_id) }), rawTradeUpdate.at && { at: new Date(rawTradeUpdate.at) }), rawTradeUpdate.timestamp && { timestamp: new Date(rawTradeUpdate.timestamp) }), rawTradeUpdate.position_qty && { position_qty: number(rawTradeUpdate.position_qty) }), rawTradeUpdate.price && { price: number(rawTradeUpdate.price) }), rawTradeUpdate.qty && { qty: number(rawTradeUpdate.qty) }); + return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ raw: () => rawTradeUpdate, event: rawTradeUpdate.event, execution_id: rawTradeUpdate.execution_id, order: order(rawTradeUpdate.order) }, (rawTradeUpdate.event_id && { + event_id: number(rawTradeUpdate.event_id), + })), (rawTradeUpdate.at && { at: new Date(rawTradeUpdate.at) })), (rawTradeUpdate.timestamp && { + timestamp: new Date(rawTradeUpdate.timestamp), + })), (rawTradeUpdate.position_qty && { + position_qty: number(rawTradeUpdate.position_qty), + })), (rawTradeUpdate.price && { price: number(rawTradeUpdate.price) })), (rawTradeUpdate.qty && { qty: number(rawTradeUpdate.qty) })); } exports.default = { account, @@ -212,5 +218,5 @@ exports.default = { pageOfBars, snapshot, snapshots, - trade_update + trade_update, }; diff --git a/dist/mjs/client.js b/dist/mjs/client.js index 5d887c1..da7a3c1 100644 --- a/dist/mjs/client.js +++ b/dist/mjs/client.js @@ -178,6 +178,10 @@ export class AlpacaClient { }); } getNews(params) { + // transform symbols if necessary + if ('symbols' in params && Array.isArray(params.symbols)) { + params.symbols = params.symbols.join(','); + } return this.request({ method: 'GET', url: `${urls.rest.beta}/news`, diff --git a/dist/mjs/parse.js b/dist/mjs/parse.js index 6eee955..e075e0c 100644 --- a/dist/mjs/parse.js +++ b/dist/mjs/parse.js @@ -74,7 +74,7 @@ function order(rawOrder) { trail_price: number(rawOrder.trail_price), trail_percent: number(rawOrder.trail_percent), hwm: number(rawOrder.hwm), - order_class: rawOrder.order_class + order_class: rawOrder.order_class, }; } catch (err) { @@ -118,7 +118,7 @@ function canceled_order(input) { trail_price: number(order.trail_price), trail_percent: number(order.trail_percent), hwm: number(order.hwm), - order_class: order.order_class + order_class: order.order_class, }, }; } @@ -340,12 +340,18 @@ function trade_update(rawTradeUpdate) { execution_id: rawTradeUpdate.execution_id, order: order(rawTradeUpdate.order), /* Only include the non-obligatory fields if they exist */ - ...rawTradeUpdate.event_id && { event_id: number(rawTradeUpdate.event_id) }, - ...rawTradeUpdate.at && { at: new Date(rawTradeUpdate.at) }, - ...rawTradeUpdate.timestamp && { timestamp: new Date(rawTradeUpdate.timestamp) }, - ...rawTradeUpdate.position_qty && { position_qty: number(rawTradeUpdate.position_qty) }, - ...rawTradeUpdate.price && { price: number(rawTradeUpdate.price) }, - ...rawTradeUpdate.qty && { qty: number(rawTradeUpdate.qty) } + ...(rawTradeUpdate.event_id && { + event_id: number(rawTradeUpdate.event_id), + }), + ...(rawTradeUpdate.at && { at: new Date(rawTradeUpdate.at) }), + ...(rawTradeUpdate.timestamp && { + timestamp: new Date(rawTradeUpdate.timestamp), + }), + ...(rawTradeUpdate.position_qty && { + position_qty: number(rawTradeUpdate.position_qty), + }), + ...(rawTradeUpdate.price && { price: number(rawTradeUpdate.price) }), + ...(rawTradeUpdate.qty && { qty: number(rawTradeUpdate.qty) }), }; } export default { @@ -364,5 +370,5 @@ export default { pageOfBars, snapshot, snapshots, - trade_update + trade_update, };