@stackone/transport 1.17.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +111 -79
- package/dist/index.d.ts +111 -79
- package/dist/index.js +51 -76
- package/dist/index.mjs +49 -74
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const l=c(require(`@stackone/utils`)),u=c(require(`redis`)),d=c(require(`axios`)),f=c(require(`node:https`)),p=c(require(`crypto`)),m=c(require(`node:timers`)),h=c(require(`jsonpath`)),g=c(require(`@stackone/redaction`)),_=c(require(`qs`)),v=c(require(`@stackone/expressions`)),y=e=>{switch(e.type){case`none`:return{};case`basic`:return b(e);case`bearer`:return x(e);case`oauth2`:return x(e);default:throw Error(`Invalid authentication type`)}},b=({username:e=``,password:t=``,encoding:n=`base64`})=>{let r=n,i=Buffer.from(`${e}:${t}`).toString(r);return{authorization:`Basic ${i}`}},x=({token:e,includeBearer:t})=>({authorization:`${t?`Bearer `:``}${e}`});var S=class{locks;constructor(){this.locks=new Map}async withLock(e,t){await this.lock(e);try{return t()}finally{this.unlock(e)}}async lock(e){let t,n=new Promise(e=>t=e),r=this.locks.has(e),i=this.locks.get(e);if(r&&i){i.push({lock:n,unlock:t});let e=i.length-2;await i[e].lock}else this.locks.set(e,[{lock:n,unlock:t}])}unlock(e){let t=this.locks.has(e),n=this.locks.get(e);if(t&&n&&n.length>0){let e=n.shift()?.unlock;e?.()}this.queueLength(e)===0&&this.locks.delete(e)}queueLength(e){return this.locks.get(e)?.length}close(){this.locks.clear()}};const ee=1e3,C=100,te=60,w=6e4,T=te,ne=w,re=w*10,ie=C,E=10;let D=function(e){return e.MemoryStorePruneError=`MemoryStorePruneError`,e}({});var ae=class{config;instantiator;dataStore;lockManager;expiryMap;evictionFrequency;staleDataThreshold;truncateThreshold;truncationPercentage;logger;typeGuard;dispose;evictionInterval;lastAccessedAt=Date.now();constructor(e={}){this.config=e,this.initialize(e)}initialize(e=this.config){this.instantiator=e?.instantiator??`Unknown`,this.logger=e?.logger,this.dataStore=e?.dataStore??new Map,this.lockManager=e?.lockManager??new S,this.expiryMap=e?.expiryMap??new Map,this.evictionFrequency=e?.evictionFrequency??ne,this.staleDataThreshold=e?.staleDataThreshold??re,this.truncateThreshold=e?.truncateThreshold??ie,this.truncationPercentage=e?.truncationPercentage??E,this.typeGuard=e?.typeGuard,this.dispose=e?.dispose,this.startEvictionTask()}async getData(e){return this.isReady()||this.initialize(),this.updateLastAccessedAt(),this.lockManager.withLock(e,async()=>this.dataStore.get(e)??null)}async setData({key:e,value:t,cacheTTL:n=T}){if(this.isReady()||this.initialize(),this.updateLastAccessedAt(),(0,l.notMissing)(this.typeGuard)&&!this.typeGuard(t))return!1;let r=n*ee,i=Date.now()+r;return await this.lockManager.withLock(e,async()=>{((0,l.notMissing)(this.typeGuard)&&this.typeGuard(t)||(0,l.isMissing)(this.typeGuard)&&this.typeGuardBypass(t))&&this.dataStore.set(e,t),this.expiryMap.set(e,i)}),!0}typeGuardBypass(e){return this.logger?.debug({category:`MemoryStore`,message:`${this.instantiator} MemoryStore setting data without type guard - you should probably configure one`}),!0}async delete(e){return this.isReady()||this.initialize(),this.updateLastAccessedAt(),this.lockManager.withLock(e,async()=>{if(this.dispose){let t=this.dataStore.get(e);await this.dispose(e,t)}return this.dataStore.delete(e)})}async pruneExpiredKeys(){let e=this.dataStore.size,t=e>=this.truncateThreshold;if(e<=0)return;let n=[],r=0;this.dataStore.forEach(async(e,i)=>{let a=Date.now(),o=this.expiryMap.get(i)??0,s=this.truncateThreshold*this.truncationPercentage/C;(o<=a||t&&r>=0&&r<=s)&&n.push(this.lockManager.withLock(i,async()=>(this.dispose&&await this.dispose(i,e),this.dataStore.delete(i)))),r++}),await Promise.all(n);let i=this.dataStore.size;return{dataStoreSize:e,prunedDataStoreSize:i}}startEvictionTask(){if((0,l.notMissing)(this.evictionInterval))return;let e=async()=>{let t;try{let n=this.lastAccessedAt+this.staleDataThreshold,r=Date.now();if(n<r){this.logger?.warning({message:`Closing the ${this.instantiator}'s MemoryStore instance - received no requests for a while.`,category:`MemoryStore`}),this.close();return}t=await this.pruneExpiredKeys(),this.evictionInterval=setTimeout(e,this.evictionFrequency)}catch(t){t instanceof Error&&this.logger?.error({message:`Error during pruning expired keys:`,category:`MemoryStore`,error:t,code:D.MemoryStorePruneError}),this.evictionInterval=setTimeout(e,this.evictionFrequency)}finally{if((0,l.notMissing)(t?.dataStoreSize)&&(0,l.notMissing)(t?.prunedDataStoreSize)){let{dataStoreSize:e,prunedDataStoreSize:n}=t,r=e-n;this.logger?.debug({message:`Pruned ${r} expired keys, ${n} remain, scheduling next prune.`,category:`MemoryStore`,context:{instantiator:this.instantiator}})}}};this.evictionInterval=setTimeout(e,this.evictionFrequency)}stopEvictionTask(){this.evictionInterval&&(clearTimeout(this.evictionInterval),this.evictionInterval=void 0)}updateLastAccessedAt(){this.lastAccessedAt=Date.now()}isReady(){return(0,l.notMissing)(this.evictionInterval)&&(0,l.notMissing)(this.dataStore)&&(0,l.notMissing)(this.expiryMap)&&(0,l.notMissing)(this.lockManager)}close(){this.stopEvictionTask(),this.dataStore.clear(),this.expiryMap.clear(),this.lockManager.close()}async listData({partialKey:e,cursor:t,limit:n}){let r=Array.from(this.dataStore.keys()),i=r.filter(t=>t.includes(e)),a=[],o=t?parseInt(t,10):0;for(let e=o;e<n+o;e++){let t=i[e];if(!t)break;let r=await this.getData(t);if(r&&a.push(r),a.length>=n)break}return{items:a,cursor:a.length<n?void 0:(o+n).toString()}}};const oe=1e3,se=6e4;let ce=function(e){return e.EventClientResolveError=`EventClientResolveError`,e}({});var le=class{executorMethodStore=null;promiseStore=null;logger;eventClientConfig=null;executorMethodStoreConfig=null;pendingPromiseStoreConfig=null;constructor(e,t,n){this.eventClientConfig=e,this.executorMethodStoreConfig=t,this.pendingPromiseStoreConfig=n;let r=e?.instantiator?`${e?.instantiator}(${this.constructor.name})`:this.constructor.name,i={logger:this.logger,dispose:this.defaultExecutorMethodDispose,typeGuard:this.defaultExecutorMethodTypeGuard,...this.executorMethodStoreConfig??{},instantiator:r},a={logger:this.logger,dispose:this.defaultPendingPromiseDispose,typeGuard:this.defaultPendingPromiseTypeGuard,...this.pendingPromiseStoreConfig??{},instantiator:r};this.executorMethodStore=new ae(i),this.promiseStore=new ae(a)}async setPendingEvent(e,t){let n={resolve:void 0,reject:void 0},r=new Promise((e,t)=>{n.resolve=e,n.reject=t}),i=t/oe;await this.executorMethodStore?.setData({key:e,value:n,cacheTTL:i}),await this.promiseStore?.setData({key:e,value:r,cacheTTL:i})}async waitForEvent(e,t){let n=await this.promiseStore?.getData(e);return(0,l.notMissing)(n)?n:(await this.setPendingEvent(e,t),this.getPendingEvent(e))}async getPendingEvent(e){return this.promiseStore?.getData(e)??null}async deleteEvent(e){return(await Promise.all([this.promiseStore?.delete(e),this.executorMethodStore?.delete(e)])).every(Boolean)}async resolveEvent(e,t){try{let n=await this.executorMethodStore?.getData(e);(0,l.isMissing)(n)&&(await this.setPendingEvent(e,this.eventClientConfig?.defaultTimeoutMS??se),n=await this.executorMethodStore?.getData(e)),n?.resolve?.(t)}catch(t){t instanceof Error&&this.logger.error({message:`Error handling event for key ${e}: ${t.message}`,category:this.constructor.name,context:{eventKey:e},error:t,code:ce.EventClientResolveError})}}async defaultExecutorMethodDispose(e,t){(0,l.notMissing)(t?.resolve)?t.resolve(this.eventClientConfig?.timeoutResolveValue):(0,l.notMissing)(t?.reject)&&t.reject(Error(`Event key: ${e} was not resolved or the event was disposed`))}defaultExecutorMethodTypeGuard(e){return(0,l.isObject)(e)&&e.hasOwnProperty(`resolve`)&&e.hasOwnProperty(`reject`)}async defaultPendingPromiseDispose(e,t){t instanceof Promise&&t?.finally(()=>{})}defaultPendingPromiseTypeGuard(e){return e instanceof Promise}};let O=function(e){return e.RedisClientError=`RedisClientError`,e.RedisClientCommandError=`RedisClientCommandError`,e.RedisClientDeleteError=`RedisClientDeleteError`,e.RedisClientInvalidTTL=`RedisClientInvalidTTL`,e.RedisClientListError=`RedisClientListError`,e.RedisClientNotInitialized=`RedisClientNotInitialized`,e.RedisClientPublishError=`RedisClientPublishError`,e.RedisClientReadError=`RedisClientReadError`,e.RedisClientRedisNotReady=`RedisClientRedisNotReady`,e.RedisClientScriptError=`RedisClientScriptError`,e.RedisClientScriptExecuteError=`RedisClientScriptExecuteError`,e.RedisClientScriptLoadError=`RedisClientScriptLoadError`,e.RedisClientSubscribeError=`RedisClientSubscribeError`,e.RedisClientUnsubscribeError=`RedisClientUnsubscribeError`,e.RedisClientWriteError=`RedisClientWriteError`,e}({});const ue=async(e,t)=>{try{let n=await de.build(e,t);return n??void 0}catch(e){let n=e;t?.error({message:`Error building Cache Manager`,error:n,code:O.RedisClientError,category:`buildRedisClientInstance`});return}};var de=class e{#redisClient;#logger;static async build({getRedisClient:t=u.createClient,host:n,port:r,tls:i,reconnect:a=!0,database:o},s){let c=new e;c.#logger=s;try{c.#redisClient=t({socket:{reconnectStrategy:a?e=>Math.min(e*20,5e3):!1,host:n,port:r,tls:i},database:o,disableOfflineQueue:!0});let s=pe(e.name,c.#logger);return fe(c.#redisClient,s),await c.#redisClient.connect(),c}catch(t){let n=t;return c.#logger?.error({message:`Error building Cache Manager.`,error:n,code:O.RedisClientError,category:e.name}),null}}#parseData(e){try{return JSON.parse(e)}catch{return e}}async getData(t){if(!this.#isRedisClientAvailable())return null;try{let e=await this.#redisClient.get(t);if(!e)return null;let n=this.#parseData(e);return(0,l.isString)(n)?e:n}catch(t){let n=t;return this.#logger?.error({message:`Error getting data`,error:n,code:O.RedisClientReadError,category:e.name}),null}}async setData({key:t,value:n,cacheTTL:r,groupKey:i}){if(!this.#isRedisClientAvailable())return!1;try{let e=(0,l.isString)(n)?n:JSON.stringify(n);return await this.#redisClient.set(t,e,{EX:r}),(0,l.notMissing)(i)&&await this.#redisClient.sAdd(i,[t]),!0}catch(t){let n=t;return this.#logger?.error({message:`Error setting data`,error:n,code:O.RedisClientWriteError,category:e.name}),!1}}async executeScript({sha1:t,keys:n,args:r}){if(!this.#isRedisClientAvailable())return null;try{return await this.#redisClient.evalSha(t,{keys:n,arguments:r})}catch(t){let n=t;return this.#logger?.error({message:`Error executing script`,error:n,code:O.RedisClientScriptExecuteError,category:e.name}),null}}async loadScript(t){if(!this.#isRedisClientAvailable())return null;try{return await this.#redisClient.scriptLoad(t)}catch(t){let n=t;return this.#logger?.error({message:`Error loading script`,error:n,code:O.RedisClientScriptLoadError,category:e.name}),null}}async#executeCounterCommand(t,n,r){if(!this.#isRedisClientAvailable())return null;if(!Number.isFinite(r)||r<=0)return this.#logger?.error({message:`Invalid cacheTTL parameter`,category:e.name,code:O.RedisClientInvalidTTL}),null;try{let e=[{args:[t,n]},{args:[`expire`,n,r.toString()]}],i=await this.#redisClient.multiExecutor(e),a=i?.[0];return typeof a==`number`?a:null}catch(n){let r=n;return this.#logger?.error({message:`Error executing ${t} operation`,error:r,code:O.RedisClientCommandError,category:e.name}),null}}async increment(e,t){return this.#executeCounterCommand(`incr`,e,t)}async decrement(e,t){return this.#executeCounterCommand(`decr`,e,t)}async subscribe(t,n){if(!this.#isRedisClientAvailable())return!1;try{return await this.#redisClient.pSubscribe(t,n),!0}catch(n){let r=n;return this.#logger?.error({message:`Error subscribing to ${t}`,error:r,code:O.RedisClientSubscribeError,category:e.name}),!1}}async unsubscribe(t){if(!this.#isRedisClientAvailable())return!1;try{return await this.#redisClient.pUnsubscribe(t),!0}catch(n){let r=n;return this.#logger?.error({message:`Error unsubscribing from ${t}`,error:r,code:O.RedisClientUnsubscribeError,category:e.name}),!1}}async publish(t,n){if(!this.#isRedisClientAvailable())return null;try{let r=await this.#redisClient.publish(t,n);return r===0&&this.#logger?.debug({message:`No subscribers found for channel ${t}`,category:e.name}),r}catch(n){let r=n;return this.#logger?.error({message:`Error publishing to ${t}`,error:r,code:O.RedisClientPublishError,category:e.name}),null}}getClient(){return this.#isRedisClientAvailable()?this.#redisClient:null}#isRedisClientAvailable(){let t=this.#redisClient.isReady&&this.#redisClient.isOpen;return t||this.#logger?.error({message:`Redis Client is not ready.`,category:e.name,code:O.RedisClientRedisNotReady}),t}async listData({partialKey:t,limit:n,cursor:r}){try{let e=r?parseInt(r,10):0,i=await this.#redisClient.sScan(t,e,{COUNT:n}),a=[];for(let e of i.members){let t=await this.getData(e);(0,l.notMissing)(t)&&a.push(t)}return{items:a,cursor:i.cursor>0?i.cursor.toString():void 0}}catch(t){let n=t;return this.#logger?.error({message:`Error listing data`,error:n,code:O.RedisClientListError,category:e.name}),{items:null}}}async deleteData(t){try{if(!this.#isRedisClientAvailable())return!1;let n=await this.#redisClient.del(t);return n===0&&this.#logger?.debug({message:`No keys deleted for ${t}`,category:e.name}),n>0}catch(t){let n=t;return this.#logger?.error({message:`Error deleting data`,error:n,code:O.RedisClientDeleteError,category:e.name}),!1}}};const fe=(e,t)=>{t.forEach(({eventName:t,listener:n})=>{e.on(t,n)})},pe=(e=`RedisClient`,t)=>[{eventName:`error`,listener:n=>{t?.error({message:`Redis client error ${n.message}`,error:n,code:O.RedisClientError,category:e})}},{eventName:`ready`,listener:()=>{t?.info({message:`Redis client ready`,category:e})}},{eventName:`connect`,listener:()=>{t?.info({message:`Redis client connected`,category:e})}},{eventName:`reconnecting`,listener:()=>{t?.info({message:`Redis client reconnecting`,category:e})}},{eventName:`end`,listener:()=>{t?.info({message:`Redis client disconnected`,category:e})}}];let me=function(e){return e.ScriptManagerExecutionError=`ScriptManagerExecutionError`,e.ScriptManagerLoadingError=`ScriptManagerLoadingError`,e}({});var he=class{cacheClient=null;scriptMap=new Map;logger;scripts;redisClientConfig;constructor(e){this.scripts=e}async initialize({redisClientConfig:e,logger:t,scriptMap:n},...r){this.redisClientConfig=e,this.logger=t,this.cacheClient=await ue(this.redisClientConfig,this.logger)??null,await this.loadScripts(this.scripts,n),await this.additionalInitialization(...r)}async additionalInitialization(...e){}async loadScripts(e,t){(0,l.notMissing)(t)&&(this.scriptMap=t);for(let[t,n]of Object.entries(e)){let e=await this.cacheClient?.loadScript?.(n);(0,l.notMissing)(e)?this.scriptMap?.set(t,e):this.logger?.error({message:`Error loading script ${t}`,category:this.constructor.name,code:me.ScriptManagerLoadingError})}}async executeScript(e,t,n){try{await this.isReady()||await this.initialize({redisClientConfig:this.redisClientConfig,logger:this.logger,scriptMap:this.scriptMap});let r=this.scriptMap?.get(e);if((0,l.isMissing)(r))throw Error(`Script for ${e} not found`);return await this.cacheClient?.executeScript?.({sha1:r,keys:t,args:n})??null}catch(r){throw r instanceof Error&&this.logger?.error({message:`Error executing script ${e}: ${r.message}`,category:this.constructor.name,context:{keys:t,args:n},error:r,code:me.ScriptManagerExecutionError}),r}}async isReady(){return(0,l.notMissing)(this.cacheClient)}},ge=class e{options={getCacheClient:ue};subscriptionMap=null;subscriptionClient=null;logger;constructor(e){this.options={...this.options,...e}}async initialize(t=this.options){let{config:n,getCacheClient:r,logger:i}=t;if(this.logger=i,this.subscriptionMap=new ae({instantiator:`${t?.instantiator}(${this.constructor.name})`,evictionFrequency:t?.subscriptionTTL,staleDataThreshold:t?.staleSubscriptionsThreshold,truncateThreshold:t?.truncateThreshold,truncationPercentage:t?.truncationPercentage,typeGuard:e=>typeof e==`string`,dispose:async e=>{await this.subscriptionClient?.unsubscribe?.(e)}}),(0,l.notMissing)(n))this.subscriptionClient=await r?.(n,this.logger)??null,this.logger?.info({message:`${e.name} initialized for ${t.instantiator}.`,category:e.name});else throw Error(`SubscriptionManager requires a Redis client configuration.`)}async subscribe(e,t){this.isReady()||await this.initialize(this.options);let n=await this.subscriptionMap?.getData(e),r=(0,l.getContentHash)(t.toString());return await this.subscriptionMap?.setData({key:e,value:r}),n===r?!0:await this.subscriptionClient?.subscribe?.(e,t)??!1}async unsubscribe(e){return this.isReady()||await this.initialize(this.options),this.subscriptionClient?.unsubscribe?.(e)??!1}isReady(){return(0,l.notMissing)(this.subscriptionClient)&&(0,l.notMissing)(this.subscriptionMap)}close(){this.subscriptionMap?.close(),this.subscriptionMap=null,this.subscriptionClient=null}};const _e=6e4,ve=15e3,ye=!1,be=6e4,xe=15e3,Se=1e4,Ce=1;let we=function(e){return e.QueueManagerInitializationError=`QueueManagerInitializationError`,e.QueueManagerJoinAndWaitTurnError=`QueueManagerJoinAndWaitTurnError`,e.QueueManagerLengthError=`QueueManagerLengthError`,e.QueueManagerPopError=`QueueManagerPopError`,e}({}),Te=function(e){return e.rPush=`rPush`,e.lPush=`lPush`,e.lPop=`lPop`,e.llen=`llen`,e}({});const Ee={[Te.rPush]:`
|
|
2
|
-
local queueLength = redis.call('RPUSH', KEYS[1], ARGV[1])
|
|
3
|
-
|
|
4
|
-
redis.call('PEXPIRE', KEYS[1], ARGV[2])
|
|
5
|
-
|
|
6
|
-
return queueLength
|
|
7
|
-
`,[Te.lPush]:`
|
|
8
|
-
local queueLength = redis.call('LPUSH', KEYS[1], ARGV[1])
|
|
9
|
-
|
|
10
|
-
redis.call('PEXPIRE', KEYS[1], ARGV[2])
|
|
11
|
-
|
|
12
|
-
return queueLength
|
|
13
|
-
`,[Te.lPop]:`
|
|
14
|
-
local queueKey = KEYS[1]
|
|
15
|
-
|
|
16
|
-
return redis.call("lpop", queueKey)
|
|
17
|
-
`,[Te.llen]:`return redis.call("llen", KEYS[1])`};var De=class e extends he{static instance=null;static asyncInstanceInit=null;static logger;static config;logger=void 0;subscriptionManager=null;eventClient=null;static async getInstance(t,n,r){if((0,l.notMissing)(e.instance))return e.instance;e.config=(0,l.notMissing)(t)?t:e.config;let i=e.config;if((0,l.isMissing)(i))throw Error(`Redis client configuration is required to initialize QueueManager.`);return(0,l.isMissing)(e.asyncInstanceInit)&&(e.asyncInstanceInit=(async()=>{try{let t=new e(Ee);return t.logger=n??e.logger,await t.initialize({redisClientConfig:i,logger:n,scriptMap:r}),e.instance=t,t}catch(t){throw e.logger?.error({message:`Error initializing QueueManager: ${t}`,category:e.name,code:we.QueueManagerInitializationError}),t}finally{e.asyncInstanceInit=null}})()),e.asyncInstanceInit}async additionalInitialization(){let t=this.logger??e.logger,n=e.config;if((0,l.isMissing)(n))throw Error(`Redis client configuration is required to initialize QueueManager.`);this.cacheClient=await ue(n,t)??null,this.subscriptionManager=new ge({config:n,instantiator:e.name,subscriptionTTL:be,truncateThreshold:Se,truncationPercentage:Ce}),await this.subscriptionManager?.initialize(),this.eventClient=new le({instantiator:e.name,timeoutResolveValue:ye},{instantiator:e.name,evictionFrequency:xe,truncateThreshold:Se,truncationPercentage:Ce},{instantiator:e.name,evictionFrequency:xe,truncateThreshold:Se,truncationPercentage:Ce}),this.logger?.info({category:e.name,message:`QueueManager initialized.`})}async joinAndWaitTurn(t,n,r,i,a=!0){await this.readyCheck();try{let e=`${t}:${n}`;await this.subscriptionManager?.subscribe(e,async(r,i)=>{if(i.includes(e)&&i.includes(n)){let e=`${t}:${r}`;return this.eventClient?.resolveEvent(e,!0)}});let o=await this.executeScript(r?Te.lPush:Te.rPush,[t],[n,_e.toString()]),s=o===1,c=a?!s:!0;return c&&await this.eventClient?.waitForEvent(e,ve),await this.eventClient?.deleteEvent(e),await i(t,n)}catch(r){throw r instanceof Error&&this.logger?.error({message:`Error in joinAndWaitTurn`,category:e.name,error:r,code:we.QueueManagerJoinAndWaitTurnError,context:{queueName:t,value:n}}),r}}async pop(t){await this.readyCheck();try{return await this.executeScript(Te.lPop,[t],[])}catch(n){throw n instanceof Error&&this.logger?.error({message:`Error in pop`,category:e.name,error:n,code:we.QueueManagerPopError,context:{queueName:t}}),n}}async length(t){await this.readyCheck();try{return await this.executeScript(Te.llen,[t],[])}catch(n){throw n instanceof Error&&this.logger?.error({message:`Error in length`,category:e.name,error:n,code:we.QueueManagerLengthError,context:{queueName:t}}),n}}async readyCheck(){if(!await this.isReady()){let t=e.config;if((0,l.isMissing)(t))throw Error(`Redis client configuration is required to initialize QueueManager.`);await this.initialize({redisClientConfig:t,logger:e.logger,scriptMap:this.scriptMap})}}async isReady(){return(0,l.notMissing)(e.asyncInstanceInit)&&await e.asyncInstanceInit,(0,l.notMissing)(this.subscriptionManager)&&(0,l.notMissing)(this.cacheClient)&&(0,l.notMissing)(this.scriptMap)&&this.scriptMap.size>0}close(){this.subscriptionManager?.close(),this.cacheClient=null,this.scriptMap?.clear(),e.instance=null}};const Oe=5,ke=12e4,Ae=1e4,je=1,Me=60,Ne=90,Pe=`__keyevent@0__:`,Fe=`${Pe}set`,Ie=`${Pe}expire`,Le=`${Pe}expired`,Re=`${Pe}srem`,ze=`config_check_test_key`,Be=[Fe,Ie,Le],Ve=1,He=2500,Ue={mainMaxConcurrency:30};let We=function(e){return e.ConcurrencyManagerInitializationError=`ConcurrencyManagerInitializationError`,e.ConcurrencyManagerRedisEventsEmitError=`ConcurrencyManagerRedisEventsEmitError`,e.ConcurrencyManagerRegistrationFailed=`ConcurrencyManagerRegistrationFailed`,e}({}),Ge=function(e){return e.tryConcurrency=`tryConcurrency`,e.removeFromSet=`removeFromSet`,e.publishNextItem=`publishNextItem`,e}({});const Ke={[Ge.tryConcurrency]:`
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const l=c(require(`@stackone/utils`)),u=c(require(`redis`)),d=c(require(`axios`)),f=c(require(`node:https`)),p=c(require(`crypto`)),m=c(require(`node:timers`)),h=c(require(`jsonpath`)),g=c(require(`@stackone/redaction`)),_=c(require(`qs`)),v=c(require(`@stackone/expressions`)),y=e=>{switch(e.type){case`none`:return{};case`basic`:return b(e);case`bearer`:return x(e);case`oauth2`:return x(e);default:throw Error(`Invalid authentication type`)}},b=({username:e=``,password:t=``,encoding:n=`base64`})=>{let r=n,i=Buffer.from(`${e}:${t}`).toString(r);return{authorization:`Basic ${i}`}},x=({token:e,includeBearer:t})=>({authorization:`${t?`Bearer `:``}${e}`});var S=class{locks;constructor(){this.locks=new Map}async withLock(e,t){await this.lock(e);try{return t()}finally{this.unlock(e)}}async lock(e){let t,n=new Promise(e=>t=e),r=this.locks.has(e),i=this.locks.get(e);if(r&&i){i.push({lock:n,unlock:t});let e=i.length-2;await i[e].lock}else this.locks.set(e,[{lock:n,unlock:t}])}unlock(e){let t=this.locks.has(e),n=this.locks.get(e);if(t&&n&&n.length>0){let e=n.shift()?.unlock;e?.()}this.queueLength(e)===0&&this.locks.delete(e)}queueLength(e){return this.locks.get(e)?.length}close(){this.locks.clear()}};const ee=1e3,C=100,te=60,w=6e4,T=te,ne=w,E=w*10,re=C,D=10;let O=function(e){return e.MemoryStorePruneError=`MemoryStorePruneError`,e}({});var ie=class{config;instantiator;dataStore;lockManager;expiryMap;evictionFrequency;staleDataThreshold;truncateThreshold;truncationPercentage;logger;typeGuard;dispose;evictionInterval;lastAccessedAt=Date.now();constructor(e={}){this.config=e,this.initialize(e)}initialize(e=this.config){this.instantiator=e?.instantiator??`Unknown`,this.logger=e?.logger,this.dataStore=e?.dataStore??new Map,this.lockManager=e?.lockManager??new S,this.expiryMap=e?.expiryMap??new Map,this.evictionFrequency=e?.evictionFrequency??ne,this.staleDataThreshold=e?.staleDataThreshold??E,this.truncateThreshold=e?.truncateThreshold??re,this.truncationPercentage=e?.truncationPercentage??D,this.typeGuard=e?.typeGuard,this.dispose=e?.dispose,this.startEvictionTask()}async getData(e){return this.isReady()||this.initialize(),this.updateLastAccessedAt(),this.lockManager.withLock(e,async()=>this.dataStore.get(e)??null)}async setData({key:e,value:t,cacheTTL:n=T}){if(this.isReady()||this.initialize(),this.updateLastAccessedAt(),(0,l.notMissing)(this.typeGuard)&&!this.typeGuard(t))return!1;let r=n*ee,i=Date.now()+r;return await this.lockManager.withLock(e,async()=>{((0,l.notMissing)(this.typeGuard)&&this.typeGuard(t)||(0,l.isMissing)(this.typeGuard)&&this.typeGuardBypass(t))&&this.dataStore.set(e,t),this.expiryMap.set(e,i)}),!0}typeGuardBypass(e){return this.logger?.debug({category:`MemoryStore`,message:`${this.instantiator} MemoryStore setting data without type guard - you should probably configure one`}),!0}async delete(e){return this.isReady()||this.initialize(),this.updateLastAccessedAt(),this.lockManager.withLock(e,async()=>{if(this.dispose){let t=this.dataStore.get(e);await this.dispose(e,t)}return this.dataStore.delete(e)})}async pruneExpiredKeys(){let e=this.dataStore.size,t=e>=this.truncateThreshold;if(e<=0)return;let n=[],r=0;this.dataStore.forEach(async(e,i)=>{let a=Date.now(),o=this.expiryMap.get(i)??0,s=this.truncateThreshold*this.truncationPercentage/C;(o<=a||t&&r>=0&&r<=s)&&n.push(this.lockManager.withLock(i,async()=>(this.dispose&&await this.dispose(i,e),this.dataStore.delete(i)))),r++}),await Promise.all(n);let i=this.dataStore.size;return{dataStoreSize:e,prunedDataStoreSize:i}}startEvictionTask(){if((0,l.notMissing)(this.evictionInterval))return;let e=async()=>{let t;try{let n=this.lastAccessedAt+this.staleDataThreshold,r=Date.now();if(n<r){this.logger?.warning({message:`Closing the ${this.instantiator}'s MemoryStore instance - received no requests for a while.`,category:`MemoryStore`}),this.close();return}t=await this.pruneExpiredKeys(),this.evictionInterval=setTimeout(e,this.evictionFrequency)}catch(t){t instanceof Error&&this.logger?.error({message:`Error during pruning expired keys:`,category:`MemoryStore`,error:t,code:O.MemoryStorePruneError}),this.evictionInterval=setTimeout(e,this.evictionFrequency)}finally{if((0,l.notMissing)(t?.dataStoreSize)&&(0,l.notMissing)(t?.prunedDataStoreSize)){let{dataStoreSize:e,prunedDataStoreSize:n}=t,r=e-n;this.logger?.debug({message:`Pruned ${r} expired keys, ${n} remain, scheduling next prune.`,category:`MemoryStore`,context:{instantiator:this.instantiator}})}}};this.evictionInterval=setTimeout(e,this.evictionFrequency)}stopEvictionTask(){this.evictionInterval&&(clearTimeout(this.evictionInterval),this.evictionInterval=void 0)}updateLastAccessedAt(){this.lastAccessedAt=Date.now()}isReady(){return(0,l.notMissing)(this.evictionInterval)&&(0,l.notMissing)(this.dataStore)&&(0,l.notMissing)(this.expiryMap)&&(0,l.notMissing)(this.lockManager)}close(){this.stopEvictionTask(),this.dataStore.clear(),this.expiryMap.clear(),this.lockManager.close()}async listData({partialKey:e,cursor:t,limit:n}){let r=Array.from(this.dataStore.keys()),i=r.filter(t=>t.includes(e)),a=[],o=t?parseInt(t,10):0;for(let e=o;e<n+o;e++){let t=i[e];if(!t)break;let r=await this.getData(t);if(r&&a.push(r),a.length>=n)break}return{items:a,cursor:a.length<n?void 0:(o+n).toString()}}};const ae=1e3,oe=6e4;let se=function(e){return e.EventClientResolveError=`EventClientResolveError`,e}({});var ce=class{executorMethodStore=null;promiseStore=null;logger;eventClientConfig=null;executorMethodStoreConfig=null;pendingPromiseStoreConfig=null;constructor(e,t,n){this.eventClientConfig=e,this.executorMethodStoreConfig=t,this.pendingPromiseStoreConfig=n;let r=e?.instantiator?`${e?.instantiator}(${this.constructor.name})`:this.constructor.name,i={logger:this.logger,dispose:this.defaultExecutorMethodDispose,typeGuard:this.defaultExecutorMethodTypeGuard,...this.executorMethodStoreConfig??{},instantiator:r},a={logger:this.logger,dispose:this.defaultPendingPromiseDispose,typeGuard:this.defaultPendingPromiseTypeGuard,...this.pendingPromiseStoreConfig??{},instantiator:r};this.executorMethodStore=new ie(i),this.promiseStore=new ie(a)}async setPendingEvent(e,t){let n={resolve:void 0,reject:void 0},r=new Promise((e,t)=>{n.resolve=e,n.reject=t}),i=t/ae;await this.executorMethodStore?.setData({key:e,value:n,cacheTTL:i}),await this.promiseStore?.setData({key:e,value:r,cacheTTL:i})}async waitForEvent(e,t){let n=await this.promiseStore?.getData(e);return(0,l.notMissing)(n)?n:(await this.setPendingEvent(e,t),this.getPendingEvent(e))}async getPendingEvent(e){return this.promiseStore?.getData(e)??null}async deleteEvent(e){return(await Promise.all([this.promiseStore?.delete(e),this.executorMethodStore?.delete(e)])).every(Boolean)}async resolveEvent(e,t){try{let n=await this.executorMethodStore?.getData(e);(0,l.isMissing)(n)&&(await this.setPendingEvent(e,this.eventClientConfig?.defaultTimeoutMS??oe),n=await this.executorMethodStore?.getData(e)),n?.resolve?.(t)}catch(t){t instanceof Error&&this.logger.error({message:`Error handling event for key ${e}: ${t.message}`,category:this.constructor.name,context:{eventKey:e},error:t,code:se.EventClientResolveError})}}async defaultExecutorMethodDispose(e,t){(0,l.notMissing)(t?.resolve)?t.resolve(this.eventClientConfig?.timeoutResolveValue):(0,l.notMissing)(t?.reject)&&t.reject(Error(`Event key: ${e} was not resolved or the event was disposed`))}defaultExecutorMethodTypeGuard(e){return(0,l.isObject)(e)&&e.hasOwnProperty(`resolve`)&&e.hasOwnProperty(`reject`)}async defaultPendingPromiseDispose(e,t){t instanceof Promise&&t?.finally(()=>{})}defaultPendingPromiseTypeGuard(e){return e instanceof Promise}},le=class{instance=null;initPromise=null;retryTimeout=null;status=`uninitialized`;initOptions=null;initArgs=[];getRetryDelay(){return 5e3}getSingleton(e){throw Error(`getSingleton method not implemented`)}async getInstance(e,...t){return this.instance?this.instance:((0,l.isMissing)(this.initPromise)&&(this.initOptions=e??null,this.initArgs=t,this.initPromise=this.init(e??null,...t)),this.initPromise)}getInstanceIfReady(){return this.instance}isReady(){return this.status===`ready`}hasInitFailed(){return this.status===`failed`}async init(e,...t){try{let n=await this.initInstance(e,...t);return this.instance=n,this.status=`ready`,n}catch(e){throw this.status=`failed`,this.initPromise=null,(0,l.isMissing)(this.retryTimeout)&&(this.retryTimeout=setTimeout(()=>{this.retryTimeout=null,this.getInstance(this.initOptions,...this.initArgs).catch(()=>{})},this.getRetryDelay())),e}}reset(){this.instance=null,this.initPromise=null,this.initOptions=null,this.status=`uninitialized`,this.retryTimeout&&clearTimeout(this.retryTimeout),this.retryTimeout=null}};let k=function(e){return e.RedisClientError=`RedisClientError`,e.RedisClientCommandError=`RedisClientCommandError`,e.RedisClientDeleteError=`RedisClientDeleteError`,e.RedisClientInvalidTTL=`RedisClientInvalidTTL`,e.RedisClientListError=`RedisClientListError`,e.RedisClientNotInitialized=`RedisClientNotInitialized`,e.RedisClientPublishError=`RedisClientPublishError`,e.RedisClientReadError=`RedisClientReadError`,e.RedisClientRedisNotReady=`RedisClientRedisNotReady`,e.RedisClientScriptError=`RedisClientScriptError`,e.RedisClientScriptExecuteError=`RedisClientScriptExecuteError`,e.RedisClientScriptLoadError=`RedisClientScriptLoadError`,e.RedisClientSubscribeError=`RedisClientSubscribeError`,e.RedisClientUnsubscribeError=`RedisClientUnsubscribeError`,e.RedisClientWriteError=`RedisClientWriteError`,e}({});const ue=async(e,t)=>{try{let n=await de.build(e,t);return n??void 0}catch(e){let n=e;t?.error({message:`Error building Cache Manager`,error:n,code:k.RedisClientError,category:`buildRedisClientInstance`});return}};var de=class e{#redisClient;#logger;static async build({getRedisClient:t=u.createClient,host:n,port:r,tls:i,reconnect:a=!0,database:o},s){let c=new e;c.#logger=s;try{c.#redisClient=t({socket:{reconnectStrategy:a?e=>Math.min(e*20,5e3):!1,host:n,port:r,tls:i},database:o,disableOfflineQueue:!0});let s=pe(e.name,c.#logger);return fe(c.#redisClient,s),await c.#redisClient.connect(),c}catch(t){let n=t;return c.#logger?.error({message:`Error building Cache Manager.`,error:n,code:k.RedisClientError,category:e.name}),null}}#parseData(e){try{return JSON.parse(e)}catch{return e}}async getData(t){if(!this.#isRedisClientAvailable())return null;try{let e=await this.#redisClient.get(t);if(!e)return null;let n=this.#parseData(e);return(0,l.isString)(n)?e:n}catch(t){let n=t;return this.#logger?.error({message:`Error getting data`,error:n,code:k.RedisClientReadError,category:e.name}),null}}async setData({key:t,value:n,cacheTTL:r,groupKey:i}){if(!this.#isRedisClientAvailable())return!1;try{let e=(0,l.isString)(n)?n:JSON.stringify(n);return await this.#redisClient.set(t,e,{EX:r}),(0,l.notMissing)(i)&&await this.#redisClient.sAdd(i,[t]),!0}catch(t){let n=t;return this.#logger?.error({message:`Error setting data`,error:n,code:k.RedisClientWriteError,category:e.name}),!1}}async executeScript({sha1:t,keys:n,args:r}){if(!this.#isRedisClientAvailable())return null;try{return await this.#redisClient.evalSha(t,{keys:n,arguments:r})}catch(t){let n=t;return this.#logger?.error({message:`Error executing script`,error:n,code:k.RedisClientScriptExecuteError,category:e.name}),null}}async loadScript(t){if(!this.#isRedisClientAvailable())return null;try{return await this.#redisClient.scriptLoad(t)}catch(t){let n=t;return this.#logger?.error({message:`Error loading script`,error:n,code:k.RedisClientScriptLoadError,category:e.name}),null}}async#executeCounterCommand(t,n,r){if(!this.#isRedisClientAvailable())return null;if(!Number.isFinite(r)||r<=0)return this.#logger?.error({message:`Invalid cacheTTL parameter`,category:e.name,code:k.RedisClientInvalidTTL}),null;try{let e=[{args:[t,n]},{args:[`expire`,n,r.toString()]}],i=await this.#redisClient.multiExecutor(e),a=i?.[0];return typeof a==`number`?a:null}catch(n){let r=n;return this.#logger?.error({message:`Error executing ${t} operation`,error:r,code:k.RedisClientCommandError,category:e.name}),null}}async increment(e,t){return this.#executeCounterCommand(`incr`,e,t)}async decrement(e,t){return this.#executeCounterCommand(`decr`,e,t)}async subscribe(t,n){if(!this.#isRedisClientAvailable())return!1;try{return await this.#redisClient.pSubscribe(t,n),!0}catch(n){let r=n;return this.#logger?.error({message:`Error subscribing to ${t}`,error:r,code:k.RedisClientSubscribeError,category:e.name}),!1}}async unsubscribe(t){if(!this.#isRedisClientAvailable())return!1;try{return await this.#redisClient.pUnsubscribe(t),!0}catch(n){let r=n;return this.#logger?.error({message:`Error unsubscribing from ${t}`,error:r,code:k.RedisClientUnsubscribeError,category:e.name}),!1}}async publish(t,n){if(!this.#isRedisClientAvailable())return null;try{let r=await this.#redisClient.publish(t,n);return r===0&&this.#logger?.debug({message:`No subscribers found for channel ${t}`,category:e.name}),r}catch(n){let r=n;return this.#logger?.error({message:`Error publishing to ${t}`,error:r,code:k.RedisClientPublishError,category:e.name}),null}}getClient(){return this.#isRedisClientAvailable()?this.#redisClient:null}#isRedisClientAvailable(){let t=this.#redisClient.isReady&&this.#redisClient.isOpen;return t||this.#logger?.error({message:`Redis Client is not ready.`,category:e.name,code:k.RedisClientRedisNotReady}),t}async listData({partialKey:t,limit:n,cursor:r}){try{let e=r?parseInt(r,10):0,i=await this.#redisClient.sScan(t,e,{COUNT:n}),a=[];for(let e of i.members){let t=await this.getData(e);(0,l.notMissing)(t)&&a.push(t)}return{items:a,cursor:i.cursor>0?i.cursor.toString():void 0}}catch(t){let n=t;return this.#logger?.error({message:`Error listing data`,error:n,code:k.RedisClientListError,category:e.name}),{items:null}}}async deleteData(t){try{if(!this.#isRedisClientAvailable())return!1;let n=await this.#redisClient.del(t);return n===0&&this.#logger?.debug({message:`No keys deleted for ${t}`,category:e.name}),n>0}catch(t){let n=t;return this.#logger?.error({message:`Error deleting data`,error:n,code:k.RedisClientDeleteError,category:e.name}),!1}}};const fe=(e,t)=>{t.forEach(({eventName:t,listener:n})=>{e.on(t,n)})},pe=(e=`RedisClient`,t)=>[{eventName:`error`,listener:n=>{t?.error({message:`Redis client error ${n.message}`,error:n,code:k.RedisClientError,category:e})}},{eventName:`ready`,listener:()=>{t?.info({message:`Redis client ready`,category:e})}},{eventName:`connect`,listener:()=>{t?.info({message:`Redis client connected`,category:e})}},{eventName:`reconnecting`,listener:()=>{t?.info({message:`Redis client reconnecting`,category:e})}},{eventName:`end`,listener:()=>{t?.info({message:`Redis client disconnected`,category:e})}}];let me=function(e){return e.ScriptManagerExecutionError=`ScriptManagerExecutionError`,e.ScriptManagerLoadingError=`ScriptManagerLoadingError`,e}({});var he=class extends le{redisClientConfig;scripts;scriptMap;cacheClient;logger;additionalArgs;async initInstance({redisClientConfig:e=this.redisClientConfig,cacheClient:t=this.cacheClient,scripts:n=this.scripts,scriptMap:r=this.scriptMap,logger:i=this.logger,additionalArgs:a=this.additionalArgs}){let o=t??await ue(e,i);if((0,l.isMissing)(o))throw Error(`Failed to build Redis client`);return this.redisClientConfig=e,this.logger=i,this.cacheClient=o,this.scripts=n,this.scriptMap=r??new Map,this.additionalArgs=a??[],await this.loadScripts(n,r),await this.additionalInitialization(...a??[]),this}async loadScripts(e,t){if((0,l.notMissing)(t))for(let[e,n]of t)this.scriptMap.set(e,n);for(let[t,n]of Object.entries(e)){let e=await this.cacheClient?.loadScript?.(n);(0,l.notMissing)(e)?this.scriptMap?.set(t,e):this.logger?.error({message:`Error loading script ${t}`,category:this.constructor.name,code:me.ScriptManagerLoadingError})}}async executeScript(e,t,n){try{if(!this.isRedisReady())throw Error(`Redis client is not ready`);let r=this.scriptMap?.get(e);if((0,l.isMissing)(r))throw Error(`Script for ${e} not found`);return await this.cacheClient?.executeScript?.({sha1:r,keys:t,args:n})??null}catch(r){throw r instanceof Error&&this.logger?.error({message:`Error executing script ${e}: ${r.message}`,category:this.constructor.name,context:{keys:t,args:n},error:r,code:me.ScriptManagerExecutionError}),r}}isRedisReady(){return this.isReady()&&(0,l.notMissing)(this.cacheClient)}},ge=class e{options={getCacheClient:ue};subscriptionMap=null;subscriptionClient=null;logger;constructor(e){this.options={...this.options,...e}}async initialize(t=this.options){let{config:n,getCacheClient:r,logger:i}=t;if(this.logger=i,this.subscriptionMap=new ie({instantiator:`${t?.instantiator}(${this.constructor.name})`,evictionFrequency:t?.subscriptionTTL,staleDataThreshold:t?.staleSubscriptionsThreshold,truncateThreshold:t?.truncateThreshold,truncationPercentage:t?.truncationPercentage,typeGuard:e=>typeof e==`string`,dispose:async e=>{await this.subscriptionClient?.unsubscribe?.(e)}}),(0,l.notMissing)(n))this.subscriptionClient=await r?.(n,this.logger)??null,this.logger?.info({message:`${e.name} initialized for ${t.instantiator}.`,category:e.name});else throw Error(`SubscriptionManager requires a Redis client configuration.`)}async subscribe(e,t){this.isReady()||await this.initialize(this.options);let n=await this.subscriptionMap?.getData(e),r=(0,l.getContentHash)(t.toString());return await this.subscriptionMap?.setData({key:e,value:r}),n===r?!0:await this.subscriptionClient?.subscribe?.(e,t)??!1}async unsubscribe(e){return this.isReady()||await this.initialize(this.options),this.subscriptionClient?.unsubscribe?.(e)??!1}isReady(){return(0,l.notMissing)(this.subscriptionClient)&&(0,l.notMissing)(this.subscriptionMap)}close(){this.subscriptionMap?.close(),this.subscriptionMap=null,this.subscriptionClient=null}};const _e=6e4,ve=15e3,ye=!1,be=6e4,xe=15e3,Se=1e4,Ce=1;let we=function(e){return e.QueueManagerInitializationError=`QueueManagerInitializationError`,e.QueueManagerJoinAndWaitTurnError=`QueueManagerJoinAndWaitTurnError`,e.QueueManagerLengthError=`QueueManagerLengthError`,e.QueueManagerPopError=`QueueManagerPopError`,e}({}),A=function(e){return e.rPush=`rPush`,e.lPush=`lPush`,e.lPop=`lPop`,e.llen=`llen`,e}({});var j=class extends he{subscriptionManager=null;eventClient=null;name=`QueueManager`;async additionalInitialization(){if((0,l.isMissing)(this.redisClientConfig))throw Error(`Redis client configuration is required to initialize QueueManager.`);this.subscriptionManager=new ge({config:this.redisClientConfig,instantiator:this.name,subscriptionTTL:be,truncateThreshold:Se,truncationPercentage:Ce}),await this.subscriptionManager?.initialize(),this.eventClient=new ce({instantiator:this.name,timeoutResolveValue:ye},{instantiator:this.name,evictionFrequency:xe,truncateThreshold:Se,truncationPercentage:Ce},{instantiator:this.name,evictionFrequency:xe,truncateThreshold:Se,truncationPercentage:Ce}),this.logger?.info({category:this.name,message:`QueueManager initialized.`})}async joinAndWaitTurn(e,t,n,r,i=!0){try{let a=`${e}:${t}`;await this.subscriptionManager?.subscribe(a,async(n,r)=>{if(r.includes(a)&&r.includes(t)){let t=`${e}:${n}`;return this.eventClient?.resolveEvent(t,!0)}});let o=await this.executeScript(n?A.lPush:A.rPush,[e],[t,_e.toString()]),s=o===1,c=i?!s:!0;return c&&await this.eventClient?.waitForEvent(a,ve),await this.eventClient?.deleteEvent(a),await r(e,t)}catch(n){throw n instanceof Error&&this.logger?.error({message:`Error in joinAndWaitTurn`,category:this.name,error:n,code:we.QueueManagerJoinAndWaitTurnError,context:{queueName:e,value:t}}),n}}async pop(e){try{return await this.executeScript(A.lPop,[e],[])}catch(t){throw t instanceof Error&&this.logger?.error({message:`Error in pop`,category:this.name,error:t,code:we.QueueManagerPopError,context:{queueName:e}}),t}}async length(e){try{return await this.executeScript(A.llen,[e],[])}catch(t){throw t instanceof Error&&this.logger?.error({message:`Error in length`,category:this.name,error:t,code:we.QueueManagerLengthError,context:{queueName:e}}),t}}isReady(){return(0,l.notMissing)(this.subscriptionManager)&&(0,l.notMissing)(this.cacheClient)&&(0,l.notMissing)(this.scriptMap)&&this.scriptMap.size>0}close(){this.subscriptionManager?.close(),this.scriptMap?.clear()}};const Te=5,Ee=12e4,De=1e4,Oe=1,ke=60,Ae=90,je=`__keyevent@0__:`,Me=`${je}set`,Ne=`${je}expire`,Pe=`${je}expired`,Fe=`${je}srem`,Ie=`config_check_test_key`,Le=[Me,Ne,Pe],Re=1,ze=2500,Be={mainMaxConcurrency:30};let Ve=function(e){return e.ConcurrencyManagerInitializationError=`ConcurrencyManagerInitializationError`,e.ConcurrencyManagerRedisEventsEmitError=`ConcurrencyManagerRedisEventsEmitError`,e.ConcurrencyManagerRegistrationFailed=`ConcurrencyManagerRegistrationFailed`,e}({}),He=function(e){return e.tryConcurrency=`tryConcurrency`,e.removeFromSet=`removeFromSet`,e.publishNextItem=`publishNextItem`,e}({});const Ue={[He.tryConcurrency]:`
|
|
18
2
|
local requestId = KEYS[1]
|
|
19
3
|
local targetKey = KEYS[2]
|
|
20
4
|
local queueKey = KEYS[3]
|
|
@@ -95,7 +79,7 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
|
|
|
95
79
|
end
|
|
96
80
|
|
|
97
81
|
return {success, failureReason}
|
|
98
|
-
`,[
|
|
82
|
+
`,[He.removeFromSet]:`
|
|
99
83
|
local requestId = ARGV[1]
|
|
100
84
|
local targetKey = KEYS[1]
|
|
101
85
|
|
|
@@ -104,7 +88,7 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
|
|
|
104
88
|
|
|
105
89
|
-- Remove the requestId from the targetKey set
|
|
106
90
|
return redis.call('SREM', targetKey, requestId)
|
|
107
|
-
`,[
|
|
91
|
+
`,[He.publishNextItem]:`
|
|
108
92
|
local queueKey = KEYS[1]
|
|
109
93
|
|
|
110
94
|
local nextItem = redis.call('lindex', queueKey, 0)
|
|
@@ -114,32 +98,53 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
|
|
|
114
98
|
|
|
115
99
|
redis.call('publish', nextItemKey, nextItem)
|
|
116
100
|
end
|
|
117
|
-
`};var qe=class e extends he{static instance=null;static asyncInstanceInit=null;static hasValidRedisConfig=!1;static lastInitFailure=null;static RETRY_WINDOW_MS=1e4;static logger;static initConfig=null;subscriptionManager=null;queueManager=null;generateUUID;static async getInstance(t,n,r,i){if((0,l.notMissing)(e.instance))return e.instance;let a=Date.now();if(e.lastInitFailure&&a-e.lastInitFailure<e.RETRY_WINDOW_MS)throw Error(`ConcurrencyManager initialization failed recently — retrying too soon.`);return(0,l.isMissing)(e.asyncInstanceInit)&&((0,l.isMissing)(e.initConfig)?e.initConfig={config:t,logger:n,scriptMap:r,generateUUID:i??l.generateRequestId}:(t??=e.initConfig.config,n??=e.initConfig.logger,r??=e.initConfig.scriptMap,i??=e.initConfig.generateUUID),this.logger=n??e.logger,e.asyncInstanceInit=(async()=>{try{let a=new e(Ke);if((0,l.isMissing)(t))throw Error(`Redis client configuration is required to initialize ConcurrencyManager.`);if(await a.initialize({redisClientConfig:t,logger:n,scriptMap:r},i),e.hasValidRedisConfig)this.logger?.info({category:e.name,message:`ConcurrencyManager initialized.`});else throw e.lastInitFailure=Date.now(),e.asyncInstanceInit=null,Error(`Redis is not configured correctly or was too slow to respond.`);return e.instance=a,e.lastInitFailure=null,a}catch(t){throw e.logger?.error({message:`Error initializing ConcurrencyManager: ${t}`,category:e.name,error:t,code:We.ConcurrencyManagerInitializationError}),t}})()),e.asyncInstanceInit}async additionalInitialization(t){this.generateUUID=t??l.generateRequestId;let n=e.initConfig?.config;if((0,l.isMissing)(n))throw Error(`Redis client configuration is required to initialize ConcurrencyManager.`);this.subscriptionManager=new ge({config:n,logger:e.logger,instantiator:e.name,subscriptionTTL:ke,truncateThreshold:Ae,truncationPercentage:je}),await this.subscriptionManager?.initialize(),e.hasValidRedisConfig=await this.checkRedisEventsEmit(),this.cacheClient=await ue(n,e.logger)??null,this.queueManager=await De.getInstance(n,e.logger)}async addTestSubscription(t,n,r,i){return(0,l.isMissing)(this.subscriptionManager)?!1:this.subscriptionManager.subscribe(t,async(a,o)=>{o===t&&a.includes(n)&&(r.push(o),r.includes(Fe)&&r.includes(Ie)&&r.includes(Le)&&(i(),this.logger?.info({category:e.name,message:`Redis events are being emitted.`,context:{receivedEventCount:r.length}}),r.length=0))})}async checkRedisEventsEmit(){let t=[],n=async(e,n)=>{let r=()=>e(!0),i=this.generateUUID(),a=`${ze}:${i}`,o=(await Promise.all(Be.map(async e=>this.addTestSubscription(e,a,t,r)))).every(Boolean);if(!o)return n(Error(`Failed to subscribe to event channels.`));await this.cacheClient?.setData({key:a,value:`test`,cacheTTL:Ve}),setTimeout(()=>{n(Error(`Timeout waiting for Redis events to emit.`))},He)};try{return await new Promise(n)}catch(n){return this.logger?.error({category:e.name,message:`Redis events failed to emit.`,context:{receivedEventCount:t.length,reason:n?.message},error:n,code:We.ConcurrencyManagerRedisEventsEmitError}),!1}}async isRedisConfigured(){return await this.readyCheck(),e.hasValidRedisConfig}async subscribeToLeaseExpiry(e,t){await this.readyCheck();let n=await this.subscriptionManager?.subscribe(Le,async(n,r)=>{r===Le&&n.includes(t)&&n.includes(e)&&await this.releaseRequest(e,t)});return n??!1}async subscribeToSetRemoval(e,t){await this.readyCheck();let n=await this.subscriptionManager?.subscribe(Re,async(n,r)=>{r===Re&&n.includes(e)&&await this.executeScript(Ge.publishNextItem,[t],[])});return n??!1}async registerRequest(t,n,r,i){await this.readyCheck();let a=`concurrency:${t}`,o=`queue:${t}`,s=n.subPools?.find(e=>e.urlPattern instanceof RegExp?e.urlPattern.test(i??``):i?.includes(e.urlPattern))?.subPoolKey,c=(0,l.notMissing)(s)?`${a}-${s}`:a,{mainMaxConcurrency:u,subPools:d}=n,f=[{key:a,maxConcurrency:u},...d?.map(e=>{let{subPoolKey:t,maxConcurrency:n}=e;return{key:`${a}-${t}`,maxConcurrency:n}})??[]],p=f.map(e=>e.key),m=f.map(e=>e.maxConcurrency),[h,g]=await Promise.all([this.subscribeToLeaseExpiry(r,c),this.subscribeToSetRemoval(c,o)]),_={requestId:r,targetConcurrencyKey:c,leaseSubscription:h,setRemovalSubscription:g,queueKey:o},[v,y]=await this.executeScript(Ge.tryConcurrency,[r,c,o,...p],[Me.toString(),u.toString(),Ne.toString(),...m.map(String)])??[];if(v)return{..._,joinCondition:`optimistic`,failureReason:y};let b=0,x=[];for(;b<Oe;){let t=b>1,[n,i]=await this.queueManager?.joinAndWaitTurn(o,r,t,async(e,t)=>await this.executeScript(Ge.tryConcurrency,[r,c,o,...p],[Me.toString(),u.toString(),Ne.toString(),...m.map(String)]),!1)??[!1,``];if((0,l.notMissing)(i)&&i!==``&&x.push(i),b++,n)return b>1&&this.logger?.warning({category:e.name,message:`Register request succeeded after ${b} attempts.`,context:{..._,registerAttempts:b,joinCondition:`attempts`,failureMessages:x}}),{..._,joinCondition:`attempts`};let a=(0,l.exponentialBackoffInMS)(b,100);await(0,l.delay)(a)}return this.logger?.error({category:e.name,message:`Failed to register request after ${b} attempts.`,context:{..._,registerAttempts:b,joinCondition:`failed`,failureMessages:x},code:We.ConcurrencyManagerRegistrationFailed}),{..._,joinCondition:`failed`}}async releaseRequest(e,t){return await this.readyCheck(),(0,l.isString)(t)&&(0,l.isString)(e)?!!await this.executeScript(Ge.removeFromSet,[t],[e]):!1}async readyCheck(){await e.getInstance()}static async isReady(){try{let t=await e.getInstance();return t.subscriptionManager!==null&&t.cacheClient!==null&&t.scriptMap!==null&&t.scriptMap.size>0&&e.hasValidRedisConfig}catch{return!1}}static close(){let t=e.instance;(0,l.notMissing)(t)&&(t.subscriptionManager?.close(),t.queueManager?.close(),t.cacheClient=null,t.scriptMap?.clear()),e.asyncInstanceInit=null,e.hasValidRedisConfig=!1,e.lastInitFailure=null,e.instance=null,e.initConfig=null}};const Je=Object.freeze({status:`aborted`});function k(e,t,n){function r(n,r){var i;for(let a in Object.defineProperty(n,`_zod`,{value:n._zod??{},enumerable:!1}),(i=n._zod).traits??(i.traits=new Set),n._zod.traits.add(e),t(n,r),o.prototype)a in n||Object.defineProperty(n,a,{value:o.prototype[a].bind(n)});n._zod.constr=o,n._zod.def=r}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,`name`,{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,`init`,{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}const Ye=Symbol(`zod_brand`);var Xe=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}};const Ze={};function Qe(e){return e&&Object.assign(Ze,e),Ze}function $e(e){let t=Object.values(e).filter(e=>typeof e==`number`),n=Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t);return n}function et(e,t){return typeof t==`bigint`?t.toString():t}function tt(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function nt(e){return e==null}function rt(e){let t=e.startsWith(`^`)?1:0,n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function it(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r,a=Number.parseInt(e.toFixed(i).replace(`.`,``)),o=Number.parseInt(t.toFixed(i).replace(`.`,``));return a%o/10**i}function A(e,t,n){Object.defineProperty(e,t,{get(){{let r=n();return e[t]=r,r}throw Error(`cached value already set`)},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function at(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function ot(e){return JSON.stringify(e)}const st=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};function ct(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const lt=tt(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{let e=Function;return new e(``),!0}catch{return!1}});function ut(e){if(ct(e)===!1)return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(ct(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}const dt=new Set([`string`,`number`,`symbol`]);function ft(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function pt(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function j(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function mt(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}const ht={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function gt(e,t){let n={},r=e._zod.def;for(let e in t){if(!(e in r.shape))throw Error(`Unrecognized key: "${e}"`);if(!t[e])continue;n[e]=r.shape[e]}return pt(e,{...e._zod.def,shape:n,checks:[]})}function _t(e,t){let n={...e._zod.def.shape},r=e._zod.def;for(let e in t){if(!(e in r.shape))throw Error(`Unrecognized key: "${e}"`);if(!t[e])continue;delete n[e]}return pt(e,{...e._zod.def,shape:n,checks:[]})}function vt(e,t){if(!ut(t))throw Error(`Invalid input to extend: expected a plain object`);let n={...e._zod.def,get shape(){let n={...e._zod.def.shape,...t};return at(this,`shape`,n),n},checks:[]};return pt(e,n)}function yt(e,t){return pt(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return at(this,`shape`,n),n},catchall:t._zod.def.catchall,checks:[]})}function bt(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);if(!n[t])continue;i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t]}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return pt(t,{...t._zod.def,shape:i,checks:[]})}function xt(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);if(!n[t])continue;i[t]=new e({type:`nonoptional`,innerType:r[t]})}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return pt(t,{...t._zod.def,shape:i,checks:[]})}function St(e,t=0){for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function Ct(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function wt(e){return typeof e==`string`?e:e?.message}function Tt(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=wt(e.inst?._zod.def?.error?.(e))??wt(t?.error?.(e))??wt(n.customError?.(e))??wt(n.localeError?.(e))??`Invalid input`;r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Et(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function Dt(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}const Ot=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,`_zod`,{value:e._zod,enumerable:!1}),Object.defineProperty(e,`issues`,{value:t,enumerable:!1}),Object.defineProperty(e,`message`,{get(){return JSON.stringify(t,et,2)},enumerable:!0}),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},kt=k(`$ZodError`,Ot),At=k(`$ZodError`,Ot,{Parent:Error});function jt(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function Mt(e,t){let n=t||function(e){return e.message},r={_errors:[]},i=e=>{for(let t of e.issues)if(t.code===`invalid_union`&&t.errors.length)t.errors.map(e=>i({issues:e}));else if(t.code===`invalid_key`)i({issues:t.issues});else if(t.code===`invalid_element`)i({issues:t.issues});else if(t.path.length===0)r._errors.push(n(t));else{let e=r,i=0;for(;i<t.path.length;){let r=t.path[i],a=i===t.path.length-1;a?(e[r]=e[r]||{_errors:[]},e[r]._errors.push(n(t))):e[r]=e[r]||{_errors:[]},e=e[r],i++}}};return i(e),r}const Nt=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new Xe;if(o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>Tt(e,a,Qe())));throw st(t,i?.callee),t}return o.value},Pt=Nt(At),Ft=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>Tt(e,a,Qe())));throw st(t,i?.callee),t}return o.value},It=Ft(At),Lt=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new Xe;return a.issues.length?{success:!1,error:new(e??kt)(a.issues.map(e=>Tt(e,i,Qe())))}:{success:!0,data:a.value}},Rt=Lt(At),zt=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>Tt(e,i,Qe())))}:{success:!0,data:a.value}},Bt=zt(At),Vt=/^[cC][^\s-]{8,}$/,Ht=/^[0-9a-z]+$/,Ut=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Wt=/^[0-9a-vA-V]{20}$/,Gt=/^[A-Za-z0-9]{27}$/,Kt=/^[a-zA-Z0-9_-]{21}$/,qt=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Jt=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Yt=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,Xt=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Zt=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function Qt(){return new RegExp(Zt,`u`)}const $t=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,en=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,tn=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,nn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,rn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,an=/^[A-Za-z0-9_-]*$/,on=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,sn=/^\+(?:[0-9]){6,14}[0-9]$/,cn=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,ln=RegExp(`^${cn}$`);function un(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`,n=typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`;return n}function dn(e){return RegExp(`^${un(e)}$`)}function fn(e){let t=un({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-]\\d{2}:\\d{2})`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${cn}T(?:${r})$`)}const pn=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},mn=/^\d+$/,hn=/^-?\d+(?:\.\d+)?/i,gn=/^[^A-Z]*$/,_n=/^[^a-z]*$/,M=k(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),vn={number:`number`,bigint:`bigint`,object:`date`},yn=k(`$ZodCheckLessThan`,(e,t)=>{M.init(e,t);let n=vn[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),bn=k(`$ZodCheckGreaterThan`,(e,t)=>{M.init(e,t);let n=vn[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),xn=k(`$ZodCheckMultipleOf`,(e,t)=>{M.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);let r=typeof n.value==`bigint`?n.value%t.value===BigInt(0):it(n.value,t.value)===0;r||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Sn=k(`$ZodCheckNumberFormat`,(e,t)=>{M.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=ht[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=mn)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inst:e})}}),Cn=k(`$ZodCheckMaxLength`,(e,t)=>{var n;M.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!nt(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value,i=r.length;if(i<=t.maximum)return;let a=Et(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),wn=k(`$ZodCheckMinLength`,(e,t)=>{var n;M.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!nt(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value,i=r.length;if(i>=t.minimum)return;let a=Et(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Tn=k(`$ZodCheckLengthEquals`,(e,t)=>{var n;M.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!nt(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=Et(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),En=k(`$ZodCheckStringFormat`,(e,t)=>{var n,r;M.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Dn=k(`$ZodCheckRegex`,(e,t)=>{En.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),On=k(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=gn,En.init(e,t)}),kn=k(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=_n,En.init(e,t)}),An=k(`$ZodCheckIncludes`,(e,t)=>{M.init(e,t);let n=ft(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),jn=k(`$ZodCheckStartsWith`,(e,t)=>{M.init(e,t);let n=RegExp(`^${ft(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Mn=k(`$ZodCheckEndsWith`,(e,t)=>{M.init(e,t);let n=RegExp(`.*${ft(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),Nn=k(`$ZodCheckOverwrite`,(e,t)=>{M.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}});var Pn=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e,n=t.split(`
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
`)}else{let n=a[e];t.write(`const ${n} = ${i(e)};`),t.write(`
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
})));`),t.write(`newResult[${ot(e)}] = ${n}.value`)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},i,a=ct,o=!Ze.jitless,s=lt,c=o&&s.value,l=t.catchall,u;e._zod.parse=(s,d)=>{u??=n.value;let f=s.value;if(!a(f))return s.issues.push({expected:`object`,code:`invalid_type`,input:f,inst:e}),s;let p=[];if(o&&c&&d?.async===!1&&d.jitless!==!0)i||=r(t.shape),s=i(s,d);else{s.value={};let e=u.shape;for(let t of u.keys){let n=e[t],r=n._zod.run({value:f[t],issues:[]},d),i=n._zod.optin===`optional`&&n._zod.optout===`optional`;r instanceof Promise?p.push(r.then(e=>i?gr(e,s,t,f):hr(e,s,t))):i?gr(r,s,t,f):hr(r,s,t)}}if(!l)return p.length?Promise.all(p).then(()=>s):s;let m=[],h=u.keySet,g=l._zod,_=g.def.type;for(let e of Object.keys(f)){if(h.has(e))continue;if(_===`never`){m.push(e);continue}let t=g.run({value:f[e],issues:[]},d);t instanceof Promise?p.push(t.then(t=>hr(t,s,e))):hr(t,s,e)}return m.length&&s.issues.push({code:`unrecognized_keys`,keys:m,input:f,inst:e}),p.length?Promise.all(p).then(()=>s):s}});function vr(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;return t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Tt(e,r,Qe())))}),t}const yr=k(`$ZodUnion`,(e,t)=>{N.init(e,t),A(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),A(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),A(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),A(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>rt(e.source)).join(`|`)})$`)}}),e._zod.parse=(n,r)=>{let i=!1,a=[];for(let e of t.options){let t=e._zod.run({value:n.value,issues:[]},r);if(t instanceof Promise)a.push(t),i=!0;else{if(t.issues.length===0)return t;a.push(t)}}return i?Promise.all(a).then(t=>vr(t,n,e,r)):vr(a,n,e,r)}}),br=k(`$ZodIntersection`,(e,t)=>{N.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n),o=i instanceof Promise||a instanceof Promise;return o?Promise.all([i,a]).then(([t,n])=>Sr(e,t,n)):Sr(e,i,a)}});function xr(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(ut(e)&&ut(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=xr(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=xr(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Sr(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),St(e))return e;let r=xr(t.value,n.value);if(!r.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}const Cr=k(`$ZodEnum`,(e,t)=>{N.init(e,t);let n=$e(t.entries);e._zod.values=new Set(n),e._zod.pattern=RegExp(`^(${n.filter(e=>dt.has(typeof e)).map(e=>typeof e==`string`?ft(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,r)=>{let i=t.value;return e._zod.values.has(i)||t.issues.push({code:`invalid_value`,values:n,input:i,inst:e}),t}}),wr=k(`$ZodTransform`,(e,t)=>{N.init(e,t),e._zod.parse=(e,n)=>{let r=t.transform(e.value,e);if(n.async){let t=r instanceof Promise?r:Promise.resolve(r);return t.then(t=>(e.value=t,e))}if(r instanceof Promise)throw new Xe;return e.value=r,e}}),Tr=k(`$ZodOptional`,(e,t)=>{N.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,A(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),A(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${rt(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>t.innerType._zod.optin===`optional`?t.innerType._zod.run(e,n):e.value===void 0?e:t.innerType._zod.run(e,n)}),Er=k(`$ZodNullable`,(e,t)=>{N.init(e,t),A(e._zod,`optin`,()=>t.innerType._zod.optin),A(e._zod,`optout`,()=>t.innerType._zod.optout),A(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${rt(e.source)}|null)$`):void 0}),A(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),Dr=k(`$ZodDefault`,(e,t)=>{N.init(e,t),e._zod.optin=`optional`,A(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Or(e,t)):Or(r,t)}});function Or(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const kr=k(`$ZodPrefault`,(e,t)=>{N.init(e,t),e._zod.optin=`optional`,A(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),Ar=k(`$ZodNonOptional`,(e,t)=>{N.init(e,t),A(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>jr(t,e)):jr(i,e)}});function jr(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}const Mr=k(`$ZodCatch`,(e,t)=>{N.init(e,t),e._zod.optin=`optional`,A(e._zod,`optout`,()=>t.innerType._zod.optout),A(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Tt(e,n,Qe()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Tt(e,n,Qe()))},input:e.value}),e.issues=[]),e)}}),Nr=k(`$ZodPipe`,(e,t)=>{N.init(e,t),A(e._zod,`values`,()=>t.in._zod.values),A(e._zod,`optin`,()=>t.in._zod.optin),A(e._zod,`optout`,()=>t.out._zod.optout),e._zod.parse=(e,n)=>{let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Pr(e,t,n)):Pr(r,t,n)}});function Pr(e,t,n){return St(e)?e:t.out._zod.run({value:e.value,issues:e.issues},n)}const Fr=k(`$ZodReadonly`,(e,t)=>{N.init(e,t),A(e._zod,`propValues`,()=>t.innerType._zod.propValues),A(e._zod,`values`,()=>t.innerType._zod.values),A(e._zod,`optin`,()=>t.innerType._zod.optin),A(e._zod,`optout`,()=>t.innerType._zod.optout),e._zod.parse=(e,n)=>{let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Ir):Ir(r)}});function Ir(e){return e.value=Object.freeze(e.value),e}const Lr=k(`$ZodCustom`,(e,t)=>{M.init(e,t),N.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>Rr(t,n,r,e));Rr(i,n,r,e)}});function Rr(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(Dt(e))}}const zr=Symbol(`ZodOutput`),Br=Symbol(`ZodInput`);var Vr=class{constructor(){this._map=new Map,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n==`object`&&`id`in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};return delete n.id,{...n,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};function Hr(){return new Vr}const Ur=Hr();function Wr(e,t){return new e({type:`string`,...j(t)})}function Gr(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...j(t)})}function Kr(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...j(t)})}function qr(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...j(t)})}function Jr(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...j(t)})}function Yr(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...j(t)})}function Xr(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...j(t)})}function Zr(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...j(t)})}function Qr(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...j(t)})}function $r(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...j(t)})}function ei(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...j(t)})}function ti(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...j(t)})}function ni(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...j(t)})}function ri(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...j(t)})}function ii(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...j(t)})}function ai(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...j(t)})}function oi(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...j(t)})}function si(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...j(t)})}function ci(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...j(t)})}function li(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...j(t)})}function ui(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...j(t)})}function di(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...j(t)})}function fi(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...j(t)})}function pi(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...j(t)})}function mi(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...j(t)})}function hi(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...j(t)})}function gi(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...j(t)})}function _i(e,t){return new e({type:`number`,checks:[],...j(t)})}function vi(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...j(t)})}function yi(e){return new e({type:`unknown`})}function bi(e,t){return new e({type:`never`,...j(t)})}function xi(e,t){return new yn({check:`less_than`,...j(t),value:e,inclusive:!1})}function Si(e,t){return new yn({check:`less_than`,...j(t),value:e,inclusive:!0})}function Ci(e,t){return new bn({check:`greater_than`,...j(t),value:e,inclusive:!1})}function wi(e,t){return new bn({check:`greater_than`,...j(t),value:e,inclusive:!0})}function Ti(e,t){return new xn({check:`multiple_of`,...j(t),value:e})}function Ei(e,t){let n=new Cn({check:`max_length`,...j(t),maximum:e});return n}function Di(e,t){return new wn({check:`min_length`,...j(t),minimum:e})}function Oi(e,t){return new Tn({check:`length_equals`,...j(t),length:e})}function ki(e,t){return new Dn({check:`string_format`,format:`regex`,...j(t),pattern:e})}function Ai(e){return new On({check:`string_format`,format:`lowercase`,...j(e)})}function ji(e){return new kn({check:`string_format`,format:`uppercase`,...j(e)})}function Mi(e,t){return new An({check:`string_format`,format:`includes`,...j(t),includes:e})}function Ni(e,t){return new jn({check:`string_format`,format:`starts_with`,...j(t),prefix:e})}function Pi(e,t){return new Mn({check:`string_format`,format:`ends_with`,...j(t),suffix:e})}function Fi(e){return new Nn({check:`overwrite`,tx:e})}function Ii(e){return Fi(t=>t.normalize(e))}function Li(){return Fi(e=>e.trim())}function Ri(){return Fi(e=>e.toLowerCase())}function zi(){return Fi(e=>e.toUpperCase())}function Bi(e,t,n){return new e({type:`array`,element:t,...j(n)})}function Vi(e,t,n){let r=new e({type:`custom`,check:`custom`,fn:t,...j(n)});return r}const Hi=k(`ZodISODateTime`,(e,t)=>{Jn.init(e,t),I.init(e,t)});function Ui(e){return pi(Hi,e)}const Wi=k(`ZodISODate`,(e,t)=>{Yn.init(e,t),I.init(e,t)});function Gi(e){return mi(Wi,e)}const Ki=k(`ZodISOTime`,(e,t)=>{Xn.init(e,t),I.init(e,t)});function qi(e){return hi(Ki,e)}const Ji=k(`ZodISODuration`,(e,t)=>{Zn.init(e,t),I.init(e,t)});function Yi(e){return gi(Ji,e)}const Xi=(e,t)=>{kt.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>Mt(e,t)},flatten:{value:t=>jt(e,t)},addIssue:{value:t=>e.issues.push(t)},addIssues:{value:t=>e.issues.push(...t)},isEmpty:{get(){return e.issues.length===0}}})},Zi=k(`ZodError`,Xi),Qi=k(`ZodError`,Xi,{Parent:Error}),$i=Nt(Qi),ea=Ft(Qi),ta=Lt(Qi),na=zt(Qi),F=k(`ZodType`,(e,t)=>(N.init(e,t),e.def=t,Object.defineProperty(e,`_def`,{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),e.clone=(t,n)=>pt(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>$i(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>ta(e,t,n),e.parseAsync=async(t,n)=>ea(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>na(e,t,n),e.spa=e.safeParseAsync,e.refine=(t,n)=>e.check(lo(t,n)),e.superRefine=t=>e.check(uo(t)),e.overwrite=t=>e.check(Fi(t)),e.optional=()=>Ka(e),e.nullable=()=>Ja(e),e.nullish=()=>Ka(Ja(e)),e.nonoptional=t=>eo(e,t),e.array=()=>Pa(e),e.or=t=>Ra([e,t]),e.and=t=>Ba(e,t),e.transform=t=>io(e,Wa(t)),e.default=t=>Xa(e,t),e.prefault=t=>Qa(e,t),e.catch=t=>no(e,t),e.pipe=t=>io(e,t),e.readonly=()=>oo(e),e.describe=t=>{let n=e.clone();return Ur.add(n,{description:t}),n},Object.defineProperty(e,`description`,{get(){return Ur.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return Ur.get(e);let n=e.clone();return Ur.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),ra=k(`_ZodString`,(e,t)=>{In.init(e,t),F.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(ki(...t)),e.includes=(...t)=>e.check(Mi(...t)),e.startsWith=(...t)=>e.check(Ni(...t)),e.endsWith=(...t)=>e.check(Pi(...t)),e.min=(...t)=>e.check(Di(...t)),e.max=(...t)=>e.check(Ei(...t)),e.length=(...t)=>e.check(Oi(...t)),e.nonempty=(...t)=>e.check(Di(1,...t)),e.lowercase=t=>e.check(Ai(t)),e.uppercase=t=>e.check(ji(t)),e.trim=()=>e.check(Li()),e.normalize=(...t)=>e.check(Ii(...t)),e.toLowerCase=()=>e.check(Ri()),e.toUpperCase=()=>e.check(zi())}),ia=k(`ZodString`,(e,t)=>{In.init(e,t),ra.init(e,t),e.email=t=>e.check(Gr(oa,t)),e.url=t=>e.check(Zr(la,t)),e.jwt=t=>e.check(fi(wa,t)),e.emoji=t=>e.check(Qr(ua,t)),e.guid=t=>e.check(Kr(sa,t)),e.uuid=t=>e.check(qr(ca,t)),e.uuidv4=t=>e.check(Jr(ca,t)),e.uuidv6=t=>e.check(Yr(ca,t)),e.uuidv7=t=>e.check(Xr(ca,t)),e.nanoid=t=>e.check($r(da,t)),e.guid=t=>e.check(Kr(sa,t)),e.cuid=t=>e.check(ei(fa,t)),e.cuid2=t=>e.check(ti(pa,t)),e.ulid=t=>e.check(ni(ma,t)),e.base64=t=>e.check(li(xa,t)),e.base64url=t=>e.check(ui(Sa,t)),e.xid=t=>e.check(ri(ha,t)),e.ksuid=t=>e.check(ii(ga,t)),e.ipv4=t=>e.check(ai(_a,t)),e.ipv6=t=>e.check(oi(va,t)),e.cidrv4=t=>e.check(si(ya,t)),e.cidrv6=t=>e.check(ci(ba,t)),e.e164=t=>e.check(di(Ca,t)),e.datetime=t=>e.check(Ui(t)),e.date=t=>e.check(Gi(t)),e.time=t=>e.check(qi(t)),e.duration=t=>e.check(Yi(t))});function aa(e){return Wr(ia,e)}const I=k(`ZodStringFormat`,(e,t)=>{P.init(e,t),ra.init(e,t)}),oa=k(`ZodEmail`,(e,t)=>{zn.init(e,t),I.init(e,t)}),sa=k(`ZodGUID`,(e,t)=>{Ln.init(e,t),I.init(e,t)}),ca=k(`ZodUUID`,(e,t)=>{Rn.init(e,t),I.init(e,t)}),la=k(`ZodURL`,(e,t)=>{Bn.init(e,t),I.init(e,t)}),ua=k(`ZodEmoji`,(e,t)=>{Vn.init(e,t),I.init(e,t)}),da=k(`ZodNanoID`,(e,t)=>{Hn.init(e,t),I.init(e,t)}),fa=k(`ZodCUID`,(e,t)=>{Un.init(e,t),I.init(e,t)}),pa=k(`ZodCUID2`,(e,t)=>{Wn.init(e,t),I.init(e,t)}),ma=k(`ZodULID`,(e,t)=>{Gn.init(e,t),I.init(e,t)}),ha=k(`ZodXID`,(e,t)=>{Kn.init(e,t),I.init(e,t)}),ga=k(`ZodKSUID`,(e,t)=>{qn.init(e,t),I.init(e,t)}),_a=k(`ZodIPv4`,(e,t)=>{Qn.init(e,t),I.init(e,t)}),va=k(`ZodIPv6`,(e,t)=>{$n.init(e,t),I.init(e,t)}),ya=k(`ZodCIDRv4`,(e,t)=>{er.init(e,t),I.init(e,t)}),ba=k(`ZodCIDRv6`,(e,t)=>{tr.init(e,t),I.init(e,t)}),xa=k(`ZodBase64`,(e,t)=>{rr.init(e,t),I.init(e,t)}),Sa=k(`ZodBase64URL`,(e,t)=>{ar.init(e,t),I.init(e,t)}),Ca=k(`ZodE164`,(e,t)=>{or.init(e,t),I.init(e,t)}),wa=k(`ZodJWT`,(e,t)=>{cr.init(e,t),I.init(e,t)}),Ta=k(`ZodNumber`,(e,t)=>{lr.init(e,t),F.init(e,t),e.gt=(t,n)=>e.check(Ci(t,n)),e.gte=(t,n)=>e.check(wi(t,n)),e.min=(t,n)=>e.check(wi(t,n)),e.lt=(t,n)=>e.check(xi(t,n)),e.lte=(t,n)=>e.check(Si(t,n)),e.max=(t,n)=>e.check(Si(t,n)),e.int=t=>e.check(Oa(t)),e.safe=t=>e.check(Oa(t)),e.positive=t=>e.check(Ci(0,t)),e.nonnegative=t=>e.check(wi(0,t)),e.negative=t=>e.check(xi(0,t)),e.nonpositive=t=>e.check(Si(0,t)),e.multipleOf=(t,n)=>e.check(Ti(t,n)),e.step=(t,n)=>e.check(Ti(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function Ea(e){return _i(Ta,e)}const Da=k(`ZodNumberFormat`,(e,t)=>{ur.init(e,t),Ta.init(e,t)});function Oa(e){return vi(Da,e)}const ka=k(`ZodUnknown`,(e,t)=>{dr.init(e,t),F.init(e,t)});function Aa(){return yi(ka)}const ja=k(`ZodNever`,(e,t)=>{fr.init(e,t),F.init(e,t)});function Ma(e){return bi(ja,e)}const Na=k(`ZodArray`,(e,t)=>{mr.init(e,t),F.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(Di(t,n)),e.nonempty=t=>e.check(Di(1,t)),e.max=(t,n)=>e.check(Ei(t,n)),e.length=(t,n)=>e.check(Oi(t,n)),e.unwrap=()=>e.element});function Pa(e,t){return Bi(Na,e,t)}const Fa=k(`ZodObject`,(e,t)=>{_r.init(e,t),F.init(e,t),A(e,`shape`,()=>t.shape),e.keyof=()=>Ha(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Aa()}),e.loose=()=>e.clone({...e._zod.def,catchall:Aa()}),e.strict=()=>e.clone({...e._zod.def,catchall:Ma()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>vt(e,t),e.merge=t=>yt(e,t),e.pick=t=>gt(e,t),e.omit=t=>_t(e,t),e.partial=(...t)=>bt(Ga,e,t[0]),e.required=(...t)=>xt($a,e,t[0])});function Ia(e,t){let n={type:`object`,get shape(){return at(this,`shape`,{...e}),this.shape},...j(t)};return new Fa(n)}const La=k(`ZodUnion`,(e,t)=>{yr.init(e,t),F.init(e,t),e.options=t.options});function Ra(e,t){return new La({type:`union`,options:e,...j(t)})}const za=k(`ZodIntersection`,(e,t)=>{br.init(e,t),F.init(e,t)});function Ba(e,t){return new za({type:`intersection`,left:e,right:t})}const Va=k(`ZodEnum`,(e,t)=>{Cr.init(e,t),F.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new Va({...t,checks:[],...j(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new Va({...t,checks:[],...j(r),entries:i})}});function Ha(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e;return new Va({type:`enum`,entries:n,...j(t)})}const Ua=k(`ZodTransform`,(e,t)=>{wr.init(e,t),F.init(e,t),e._zod.parse=(n,r)=>{n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Dt(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,t.continue??=!0,n.issues.push(Dt(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Wa(e){return new Ua({type:`transform`,transform:e})}const Ga=k(`ZodOptional`,(e,t)=>{Tr.init(e,t),F.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Ka(e){return new Ga({type:`optional`,innerType:e})}const qa=k(`ZodNullable`,(e,t)=>{Er.init(e,t),F.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Ja(e){return new qa({type:`nullable`,innerType:e})}const Ya=k(`ZodDefault`,(e,t)=>{Dr.init(e,t),F.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Xa(e,t){return new Ya({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():t}})}const Za=k(`ZodPrefault`,(e,t)=>{kr.init(e,t),F.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Qa(e,t){return new Za({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():t}})}const $a=k(`ZodNonOptional`,(e,t)=>{Ar.init(e,t),F.init(e,t),e.unwrap=()=>e._zod.def.innerType});function eo(e,t){return new $a({type:`nonoptional`,innerType:e,...j(t)})}const to=k(`ZodCatch`,(e,t)=>{Mr.init(e,t),F.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function no(e,t){return new to({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}const ro=k(`ZodPipe`,(e,t)=>{Nr.init(e,t),F.init(e,t),e.in=t.in,e.out=t.out});function io(e,t){return new ro({type:`pipe`,in:e,out:t})}const ao=k(`ZodReadonly`,(e,t)=>{Fr.init(e,t),F.init(e,t)});function oo(e){return new ao({type:`readonly`,innerType:e})}const so=k(`ZodCustom`,(e,t)=>{Lr.init(e,t),F.init(e,t)});function co(e){let t=new M({check:`custom`});return t._zod.check=e,t}function lo(e,t={}){return Vi(so,e,t)}function uo(e){let t=co(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(Dt(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(Dt(r))}},e(n.value,n)));return t}const fo=Ia({receivedStatus:Ea(),targetStatus:Ea(),message:aa().optional(),condition:aa().optional()}),po={100:`Continue`,101:`Switching Protocols`,102:`Processing`,200:`OK`,201:`Created`,202:`Accepted`,203:`Non-Authoritative Information`,204:`No Content`,205:`Reset Content`,206:`Partial Content`,207:`Multi-Status`,208:`Already Reported`,226:`IM Used`,300:`Multiple Choices`,301:`Moved Permanently`,302:`Found`,303:`See Other`,304:`Not Modified`,305:`Use Proxy`,307:`Temporary Redirect`,308:`Permanent Redirect`,400:`Bad request`,401:`Unauthorized`,402:`Payment Required`,403:`Forbidden`,404:`Not Found`,405:`Method Not Allowed`,406:`Not Acceptable`,407:`Proxy Authentication Required`,408:`Request Timeout`,409:`Conflict`,410:`Gone`,411:`Length Required`,412:`Precondition Failed`,413:`Payload Too Large`,414:`URI Too Long`,415:`Unsupported Media Type`,416:`Range Not Satisfiable`,417:`Expectation Failed`,418:`I'm a teapot`,421:`Misdirected Request`,422:`Unprocessable Entity`,423:`Locked`,424:`Failed Dependency`,425:`Too Early`,426:`Upgrade Required`,428:`Precondition Required`,429:`Too many Requests`,431:`Request Header Fields Too Large`,451:`Unavailable For Legal Reasons`,499:`Client Closed Request`,500:`Internal server error`,501:`Not Implemented`,502:`Bad Gateway`,503:`Unavailable`,504:`Gateway Timeout`,505:`HTTP Version Not Supported`,506:`Variant Also Negotiates`,507:`Insufficient Storage`,508:`Loop Detected`,510:`Not Extended`,511:`Network Authentication Required`};var mo=class e extends Error{response;constructor(t,n){super(n),this.name=`HttpResponseError`,this.response=t,this.message=n??`HTTP error: ${t.status}`,Error.captureStackTrace&&Error.captureStackTrace(this,e)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.name} [${this.response.status}]${e}`}};const ho=e=>e instanceof Error&&e.name===`HttpResponseError`&&`response`in e&&typeof e.response==`object`&&e.response!==null,go=(e,t=new WeakSet)=>{if(typeof e!=`object`||!e)return typeof e==`bigint`?e.toString():e;if(t.has(e))return`[Circular Reference]`;if(e instanceof Date)return e.toISOString();if(Array.isArray(e)){t.add(e);let n=e.map(e=>go(e,t));return t.delete(e),n}let n=e,r={};t.add(n);for(let[e,i]of Object.entries(n))r[e]=go(i,t);return t.delete(n),r},_o=e=>{if(ho(e)){let t=e.response;return{name:e.name,message:e.message,stack:e.stack,response:go(t)}}return e instanceof Error?{name:e.name,message:e.message,stack:e.stack}:{error:String(e)}};var vo=class{static createInstance({interceptors:e,instanceConfig:t,httpsAgentConfig:n,logger:r,context:i,requestConfig:a}){let o=new f.default.Agent(n),s=d.default.create({...t,httpsAgent:o});if(e){let t={axiosInstance:s,logger:r,context:i,requestConfig:a};this.applyInterceptors(s,e,t)}return s}static applyInterceptors(e,t,n){let{requestConfigs:r=[],responseConfigs:i=[]}=t,a=[{type:`request`,configs:r},{type:`response`,configs:i}];a.forEach(t=>{let{configs:r,type:i}=t;r.forEach(t=>{let{onFulfilled:r,onRejected:a,options:o}=t;if(i===`request`){let t=[this.resolveInterceptorInstance(r,n),this.resolveInterceptorInstance(a,n),o];e.interceptors.request.use(...t)}if(i===`response`){let t=[this.resolveInterceptorInstance(r,n),this.resolveInterceptorInstance(a,n)];e.interceptors.response.use(...t)}})})}static resolveInterceptorInstance(e,t){return(0,l.notMissing)(e)&&(0,l.isFunction)(e)&&typeof e(t)==`function`?e(t):e??null}};const yo=300;var bo=class e{static instance=null;static logger=null;dataStore=null;constructor(e){this.initialize(e)}static getInstance(t){return(0,l.isMissing)(e.instance)&&(e.instance=new e(t)),e.instance}initialize(t){this.dataStore=new ae({instantiator:e.name,logger:t,typeGuard:e=>(0,l.notMissing)(e)}),e.logger=t??null,e.logger?.info({category:e.name,message:`InstanceManager initialized.`})}async get(t){return this.ensureReady(),await e.getInstance().dataStore?.getData(t)??null}async set(t,n,r){return this.ensureReady(),await e.getInstance().dataStore?.setData({key:t,value:n,cacheTTL:(0,l.notMissing)(r)?r:yo})??!1}ensureReady(){this.isReady()||this.initialize()}isReady(){return(0,l.notMissing)(this?.dataStore)}close(){e.instance=null,this.dataStore=null}};const xo=bo.getInstance(),So=()=>{let e=e=>{let{response:t}=e;return e?.code===`ERR_CANCELED`&&(e.response={...t,status:499,statusText:`Request aborted`}),Promise.reject(e)};return e};let Co=function(e){return e.RateLimitManagerInitializationError=`RateLimitManagerInitializationError`,e}({});const wo=7.5,To={mainRatelimit:25};let Eo=function(e){return e.incr=`incr`,e}({});const Do={[Eo.incr]:`
|
|
101
|
+
`};var We=class e extends he{hasValidRedisConfig=!1;subscriptionManager=null;queueManager=null;generateUUID;name=`ConcurrencyManager`;async additionalInitialization(e){if(this.generateUUID=e??l.generateRequestId,this.subscriptionManager=new ge({config:this.redisClientConfig,logger:this.logger,instantiator:this.name,subscriptionTTL:Ee,truncateThreshold:De,truncationPercentage:Oe}),await this.subscriptionManager?.initialize(),this.hasValidRedisConfig=await this.checkRedisEventsEmit(),!this.hasValidRedisConfig)throw Error(`Failed to validate Redis configuration for ConcurrencyManager`);if((0,l.isMissing)(this.getSingleton))throw Error(`getSingleton method not available`);this.queueManager=this.getSingleton?.(j)}async addTestSubscription(t,n,r,i){return(0,l.isMissing)(this.subscriptionManager)?!1:this.subscriptionManager.subscribe(t,async(a,o)=>{o===t&&a.includes(n)&&(r.push(o),r.includes(Me)&&r.includes(Ne)&&r.includes(Pe)&&(i(),this.logger?.info({category:e.name,message:`Redis events are being emitted.`,context:{receivedEventCount:r.length}}),r.length=0))})}async checkRedisEventsEmit(){let t=[],n=async(e,n)=>{let r=()=>e(!0),i=this.generateUUID(),a=`${Ie}:${i}`,o=(await Promise.all(Le.map(async e=>this.addTestSubscription(e,a,t,r)))).every(Boolean);if(!o)return n(Error(`Failed to subscribe to event channels.`));await this.cacheClient?.setData({key:a,value:`test`,cacheTTL:Re}),setTimeout(()=>{n(Error(`Timeout waiting for Redis events to emit.`))},ze)};try{return await new Promise(n)}catch(n){return this.logger?.error({category:e.name,message:`Redis events failed to emit.`,context:{receivedEventCount:t.length,reason:n?.message},error:n,code:Ve.ConcurrencyManagerRedisEventsEmitError}),!1}}isRedisConfigured(){return this.hasValidRedisConfig}async subscribeToLeaseExpiry(e,t){let n=await this.subscriptionManager?.subscribe(Pe,async(n,r)=>{r===Pe&&n.includes(t)&&n.includes(e)&&await this.releaseRequest(e,t)});return n??!1}async subscribeToSetRemoval(e,t){let n=await this.subscriptionManager?.subscribe(Fe,async(n,r)=>{r===Fe&&n.includes(e)&&await this.executeScript(He.publishNextItem,[t],[])});return n??!1}async registerRequest(t,n,r,i){let a=`concurrency:${t}`,o=`queue:${t}`,s=n.subPools?.find(e=>e.urlPattern instanceof RegExp?e.urlPattern.test(i??``):i?.includes(e.urlPattern))?.subPoolKey,c=(0,l.notMissing)(s)?`${a}-${s}`:a,{mainMaxConcurrency:u,subPools:d}=n,f=[{key:a,maxConcurrency:u},...d?.map(e=>{let{subPoolKey:t,maxConcurrency:n}=e;return{key:`${a}-${t}`,maxConcurrency:n}})??[]],p=f.map(e=>e.key),m=f.map(e=>e.maxConcurrency),[h,g]=await Promise.all([this.subscribeToLeaseExpiry(r,c),this.subscribeToSetRemoval(c,o)]),_={requestId:r,targetConcurrencyKey:c,leaseSubscription:h,setRemovalSubscription:g,queueKey:o},[v,y]=await this.executeScript(He.tryConcurrency,[r,c,o,...p],[ke.toString(),u.toString(),Ae.toString(),...m.map(String)])??[];if(v)return{..._,joinCondition:`optimistic`,failureReason:y};let b=0,x=[];for(;b<Te;){let t=b>1,[n,i]=await this.queueManager?.joinAndWaitTurn(o,r,t,async(e,t)=>await this.executeScript(He.tryConcurrency,[r,c,o,...p],[ke.toString(),u.toString(),Ae.toString(),...m.map(String)]),!1)??[!1,``];if((0,l.notMissing)(i)&&i!==``&&x.push(i),b++,n)return b>1&&this.logger?.warning({category:e.name,message:`Register request succeeded after ${b} attempts.`,context:{..._,registerAttempts:b,joinCondition:`attempts`,failureMessages:x}}),{..._,joinCondition:`attempts`};let a=(0,l.exponentialBackoffInMS)(b,100);await(0,l.delay)(a)}return this.logger?.error({category:e.name,message:`Failed to register request after ${b} attempts.`,context:{..._,registerAttempts:b,joinCondition:`failed`,failureMessages:x},code:Ve.ConcurrencyManagerRegistrationFailed}),{..._,joinCondition:`failed`}}async releaseRequest(e,t){return(0,l.isString)(t)&&(0,l.isString)(e)?!!await this.executeScript(He.removeFromSet,[t],[e]):!1}isReady(){return this.subscriptionManager!==null&&this.cacheClient!==null&&this.scriptMap!==null&&this.scriptMap.size>0&&this.hasValidRedisConfig}close(){this.subscriptionManager?.close(),this.queueManager?.close(),this.scriptMap?.clear(),this.hasValidRedisConfig=!1}};const Ge=(0,l.zStrictObject)({receivedStatus:l.z.number(),targetStatus:l.z.number(),message:l.z.string().optional(),condition:l.z.string().optional()}),Ke={100:`Continue`,101:`Switching Protocols`,102:`Processing`,200:`OK`,201:`Created`,202:`Accepted`,203:`Non-Authoritative Information`,204:`No Content`,205:`Reset Content`,206:`Partial Content`,207:`Multi-Status`,208:`Already Reported`,226:`IM Used`,300:`Multiple Choices`,301:`Moved Permanently`,302:`Found`,303:`See Other`,304:`Not Modified`,305:`Use Proxy`,307:`Temporary Redirect`,308:`Permanent Redirect`,400:`Bad request`,401:`Unauthorized`,402:`Payment Required`,403:`Forbidden`,404:`Not Found`,405:`Method Not Allowed`,406:`Not Acceptable`,407:`Proxy Authentication Required`,408:`Request Timeout`,409:`Conflict`,410:`Gone`,411:`Length Required`,412:`Precondition Failed`,413:`Payload Too Large`,414:`URI Too Long`,415:`Unsupported Media Type`,416:`Range Not Satisfiable`,417:`Expectation Failed`,418:`I'm a teapot`,421:`Misdirected Request`,422:`Unprocessable Entity`,423:`Locked`,424:`Failed Dependency`,425:`Too Early`,426:`Upgrade Required`,428:`Precondition Required`,429:`Too many Requests`,431:`Request Header Fields Too Large`,451:`Unavailable For Legal Reasons`,499:`Client Closed Request`,500:`Internal server error`,501:`Not Implemented`,502:`Bad Gateway`,503:`Unavailable`,504:`Gateway Timeout`,505:`HTTP Version Not Supported`,506:`Variant Also Negotiates`,507:`Insufficient Storage`,508:`Loop Detected`,510:`Not Extended`,511:`Network Authentication Required`};var qe=class e extends Error{response;constructor(t,n){super(n),this.name=`HttpResponseError`,this.response=t,this.message=n??`HTTP error: ${t.status}`,Error.captureStackTrace&&Error.captureStackTrace(this,e)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.name} [${this.response.status}]${e}`}};const Je=e=>e instanceof Error&&e.name===`HttpResponseError`&&`response`in e&&typeof e.response==`object`&&e.response!==null,Ye=(e,t=new WeakSet)=>{if(typeof e!=`object`||!e)return typeof e==`bigint`?e.toString():e;if(t.has(e))return`[Circular Reference]`;if(e instanceof Date)return e.toISOString();if(Array.isArray(e)){t.add(e);let n=e.map(e=>Ye(e,t));return t.delete(e),n}let n=e,r={};t.add(n);for(let[e,i]of Object.entries(n))r[e]=Ye(i,t);return t.delete(n),r},Xe=e=>{if(Je(e)){let t=e.response;return{name:e.name,message:e.message,stack:e.stack,response:Ye(t)}}return e instanceof Error?{name:e.name,message:e.message,stack:e.stack}:{error:String(e)}};var Ze=class{static createInstance({interceptors:e,instanceConfig:t,httpsAgentConfig:n,logger:r,context:i,requestConfig:a,concurrencyManager:o,rateLimitManager:s}){let c=new f.default.Agent(n),l=d.default.create({...t,httpsAgent:c});if(e){let t={axiosInstance:l,logger:r,context:i,requestConfig:a,concurrencyManager:o,rateLimitManager:s};this.applyInterceptors(l,e,t)}return l}static applyInterceptors(e,t,n){let{requestConfigs:r=[],responseConfigs:i=[]}=t,a=[{type:`request`,configs:r},{type:`response`,configs:i}];a.forEach(t=>{let{configs:r,type:i}=t;r.forEach(t=>{let{onFulfilled:r,onRejected:a,options:o}=t;if(i===`request`){let t=[this.resolveInterceptorInstance(r,n),this.resolveInterceptorInstance(a,n),o];e.interceptors.request.use(...t)}if(i===`response`){let t=[this.resolveInterceptorInstance(r,n),this.resolveInterceptorInstance(a,n)];e.interceptors.response.use(...t)}})})}static resolveInterceptorInstance(e,t){return(0,l.notMissing)(e)&&(0,l.isFunction)(e)&&typeof e(t)==`function`?e(t):e??null}};const Qe=300;var $e=class e{static instance=null;static logger=null;dataStore=null;constructor(e){this.initialize(e)}static getInstance(t){return(0,l.isMissing)(e.instance)&&(e.instance=new e(t)),e.instance}initialize(t){this.dataStore=new ie({instantiator:e.name,logger:t,typeGuard:e=>(0,l.notMissing)(e)}),e.logger=t??null,e.logger?.info({category:e.name,message:`InstanceManager initialized.`})}async get(t){return this.ensureReady(),await e.getInstance().dataStore?.getData(t)??null}async set(t,n,r){return this.ensureReady(),await e.getInstance().dataStore?.setData({key:t,value:n,cacheTTL:(0,l.notMissing)(r)?r:Qe})??!1}ensureReady(){this.isReady()||this.initialize()}isReady(){return(0,l.notMissing)(this?.dataStore)}close(){e.instance=null,this.dataStore=null}};const et=$e.getInstance(),tt=()=>{let e=e=>{let{response:t}=e;return e?.code===`ERR_CANCELED`&&(e.response={...t,status:499,statusText:`Request aborted`}),Promise.reject(e)};return e},nt=7.5,rt={mainRatelimit:25};let it=function(e){return e.incr=`incr`,e}({}),at=function(e){return e.RateLimiterReleaseRequestFailed=`RateLimiterReleaseRequestFailed`,e.RateLimitOrConcurrencyManagerNotInitialized=`RateLimitOrConcurrencyManagerNotInitialized`,e.InterceptorContextNotPresent=`InterceptorContextNotPresent`,e.InterceptorMaxWaitTimeExceeded=`InterceptorMaxWaitTimeExceeded`,e}({});const ot=(e,t,n,r)=>{let i=Error(e);return i.config={...t,headers:{}},i.code=n,i.response=r,i.isAxiosError=!0,i},st=(e,t,n)=>{let r=t.signal;return r?r.aborted?Promise.reject(ot(`Request aborted`,t,`ERR_CANCELED`,n)):new Promise((i,a)=>{let o=!1,s,c=ot(`Request aborted`,t,`ERR_CANCELED`,n),l=()=>{if(!o){o=!0,s&&(0,m.clearTimeout)(s);try{r.removeEventListener?.(`abort`,u)}catch{}}},u=()=>{l(),a(c)},d=()=>{l(),i()};try{r.addEventListener?.(`abort`,u,{once:!0})}catch{s=setTimeout(()=>{i()},e);return}if(r.aborted){l(),a(c);return}s=setTimeout(d,e)}):new Promise(t=>setTimeout(t,e))},ct=`checkConcurrencyInterceptor`,lt=({logger:e,context:t,requestConfig:n,concurrencyManager:r,rateLimitManager:i})=>{let a=async a=>{if(a.signal?.aborted)return Promise.reject(ot(`Request aborted`,a,`ERR_CANCELED`));if((0,l.isMissing)(t))e?.warning({category:`HttpClient`,message:`No context for this request - that doesn't seem right.`,context:{interceptor:ct,...a,headers:void 0,hasContext:(0,l.notMissing)(t),hasConfig:(0,l.notMissing)(a)},code:at.InterceptorContextNotPresent});else if((0,l.isMissing)(i)||(0,l.isMissing)(r))e?.error({category:`HttpClient`,message:`RateLimitManager or ConcurrencyManager is not initialized`,context:{interceptor:ct,...a,headers:void 0,rateLimitManagerInitialized:(0,l.notMissing)(i),concurrencyManagerInitialized:(0,l.notMissing)(r)},code:at.RateLimitOrConcurrencyManagerNotInitialized});else if((0,l.notMissing)(t.provider)&&(0,l.notMissing)(t.accountSecureId)){let o=(0,p.randomUUID)(),{provider:s,accountSecureId:c}=t,l=n?.rateLimits??rt,u=n?.concurrency??Be,d=await i.getDynamicMaxWaitTime(l,u,a.url),f=async()=>r.registerRequest(`${c}-${s}`,u,o,a.url),m,h=0;for(;h<=d;){let n=Math.floor(Date.now()/1e3),r=await i.getWaitTime(`${c}-${s}`,l,a.url)??0,o=Math.max(r-n,0);if(r===0){m=await f();break}if(await st(o*1e3,a),h+=o,h>=d){m=await f(),e?.warning({category:`HttpClient`,message:`Max Wait Time Exceeded for ${s} - Account: ${c}`,context:{...t,interceptor:ct,...a,headers:void 0,dynamicMaxWaitTime:d},code:at.InterceptorMaxWaitTimeExceeded});break}}return{...a,requestMetadata:m}}return a};return a},ut=1,dt=10,ft=5,pt=3250368e4,mt=1e3,ht=/^\d+(\.\d+)?$/,gt=1e3,_t=e=>e<pt?e*mt:e;var vt=o(((exports,t)=>{function n(){return t.exports=n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.exports.__esModule=!0,t.exports.default=t.exports,n.apply(null,arguments)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),yt={epsilon:1e-12,matrix:`Matrix`,number:`number`,precision:64,predictable:!1,randomSeed:null};function M(e){return typeof e==`number`}function bt(e){return!e||typeof e!=`object`||typeof e.constructor!=`function`?!1:e.isBigNumber===!0&&typeof e.constructor.prototype==`object`&&e.constructor.prototype.isBigNumber===!0||typeof e.constructor.isDecimal==`function`&&e.constructor.isDecimal(e)===!0}function xt(e){return e&&typeof e==`object`&&Object.getPrototypeOf(e).isComplex===!0||!1}function St(e){return e&&typeof e==`object`&&Object.getPrototypeOf(e).isFraction===!0||!1}function Ct(e){return e&&e.constructor.prototype.isUnit===!0||!1}function wt(e){return typeof e==`string`}var N=Array.isArray;function Tt(e){return e&&e.constructor.prototype.isMatrix===!0||!1}function Et(e){return Array.isArray(e)||Tt(e)}function Dt(e){return e&&e.isDenseMatrix&&e.constructor.prototype.isMatrix===!0||!1}function Ot(e){return e&&e.isSparseMatrix&&e.constructor.prototype.isMatrix===!0||!1}function kt(e){return e&&e.constructor.prototype.isRange===!0||!1}function At(e){return e&&e.constructor.prototype.isIndex===!0||!1}function jt(e){return typeof e==`boolean`}function Mt(e){return e&&e.constructor.prototype.isResultSet===!0||!1}function Nt(e){return e&&e.constructor.prototype.isHelp===!0||!1}function Pt(e){return typeof e==`function`}function Ft(e){return e instanceof Date}function It(e){return e instanceof RegExp}function Lt(e){return!!(e&&typeof e==`object`&&e.constructor===Object&&!xt(e)&&!St(e))}function Rt(e){return e===null}function zt(e){return e===void 0}function Bt(e){return e&&e.isAccessorNode===!0&&e.constructor.prototype.isNode===!0||!1}function Vt(e){return e&&e.isArrayNode===!0&&e.constructor.prototype.isNode===!0||!1}function Ht(e){return e&&e.isAssignmentNode===!0&&e.constructor.prototype.isNode===!0||!1}function Ut(e){return e&&e.isBlockNode===!0&&e.constructor.prototype.isNode===!0||!1}function Wt(e){return e&&e.isConditionalNode===!0&&e.constructor.prototype.isNode===!0||!1}function Gt(e){return e&&e.isConstantNode===!0&&e.constructor.prototype.isNode===!0||!1}function Kt(e){return e&&e.isFunctionAssignmentNode===!0&&e.constructor.prototype.isNode===!0||!1}function qt(e){return e&&e.isFunctionNode===!0&&e.constructor.prototype.isNode===!0||!1}function Jt(e){return e&&e.isIndexNode===!0&&e.constructor.prototype.isNode===!0||!1}function Yt(e){return e&&e.isNode===!0&&e.constructor.prototype.isNode===!0||!1}function Xt(e){return e&&e.isObjectNode===!0&&e.constructor.prototype.isNode===!0||!1}function Zt(e){return e&&e.isOperatorNode===!0&&e.constructor.prototype.isNode===!0||!1}function Qt(e){return e&&e.isParenthesisNode===!0&&e.constructor.prototype.isNode===!0||!1}function $t(e){return e&&e.isRangeNode===!0&&e.constructor.prototype.isNode===!0||!1}function en(e){return e&&e.isRelationalNode===!0&&e.constructor.prototype.isNode===!0||!1}function tn(e){return e&&e.isSymbolNode===!0&&e.constructor.prototype.isNode===!0||!1}function nn(e){return e&&e.constructor.prototype.isChain===!0||!1}function rn(e){var t=typeof e;return t===`object`?e===null?`null`:bt(e)?`BigNumber`:e.constructor&&e.constructor.name?e.constructor.name:`Object`:t}function an(e){var t=typeof e;if(t===`number`||t===`string`||t===`boolean`||e==null)return e;if(typeof e.clone==`function`)return e.clone();if(Array.isArray(e))return e.map(function(e){return an(e)});if(e instanceof Date)return new Date(e.valueOf());if(bt(e))return e;if(Lt(e))return on(e,an);throw TypeError(`Cannot clone: unknown type of value (value: ${e})`)}function on(e,t){var n={};for(var r in e)cn(e,r)&&(n[r]=t(e[r]));return n}function sn(e,t){var n,r,i;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(r=0,i=e.length;r<i;r++)if(!sn(e[r],t[r]))return!1;return!0}else if(typeof e==`function`)return e===t;else if(e instanceof Object){if(Array.isArray(t)||!(t instanceof Object))return!1;for(n in e)if(!(n in t)||!sn(e[n],t[n]))return!1;for(n in t)if(!(n in e))return!1;return!0}else return e===t}function cn(e,t){return e&&Object.hasOwnProperty.call(e,t)}function ln(e,t){for(var n={},r=0;r<t.length;r++){var i=t[r],a=e[i];a!==void 0&&(n[i]=a)}return n}var un=[`Matrix`,`Array`],dn=[`number`,`BigNumber`,`Fraction`],fn=c(vt(),1),pn=function(e){if(e)throw Error(`The global config is readonly.
|
|
102
|
+
Please create a mathjs instance if you want to change the default configuration.
|
|
103
|
+
Example:
|
|
104
|
+
|
|
105
|
+
import { create, all } from 'mathjs';
|
|
106
|
+
const mathjs = create(all);
|
|
107
|
+
mathjs.config({ number: 'BigNumber' });
|
|
108
|
+
`);return Object.freeze(yt)};(0,fn.default)(pn,yt,{MATRIX_OPTIONS:un,NUMBER_OPTIONS:dn});var mn=o(((exports,t)=>{(function(n,r){typeof exports==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self,n[`'typed'`]=r())})(exports,(function(){"use strict";function e(){return!0}function t(){return!1}function n(){}let r=`Argument is not a typed-function.`;function i(){function a(e){return typeof e==`object`&&!!e&&e.constructor===Object}let o=[{name:`number`,test:function(e){return typeof e==`number`}},{name:`string`,test:function(e){return typeof e==`string`}},{name:`boolean`,test:function(e){return typeof e==`boolean`}},{name:`Function`,test:function(e){return typeof e==`function`}},{name:`Array`,test:Array.isArray},{name:`Date`,test:function(e){return e instanceof Date}},{name:`RegExp`,test:function(e){return e instanceof RegExp}},{name:`Object`,test:a},{name:`null`,test:function(e){return e===null}},{name:`undefined`,test:function(e){return e===void 0}}],s={name:`any`,test:e,isAny:!0},c,l,u=0,d={createCount:0};function f(e){let t=c.get(e);if(t)return t;let n=`Unknown type "`+e+`"`,r=e.toLowerCase(),i;for(i of l)if(i.toLowerCase()===r){n+=`. Did you mean "`+i+`" ?`;break}throw TypeError(n)}function p(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`any`,n=t?f(t).index:l.length,r=[];for(let t=0;t<e.length;++t){if(!e[t]||typeof e[t].name!=`string`||typeof e[t].test!=`function`)throw TypeError(`Object with properties {name: string, test: function} expected`);let i=e[t].name;if(c.has(i))throw TypeError(`Duplicate type name "`+i+`"`);r.push(i),c.set(i,{name:i,test:e[t].test,isAny:e[t].isAny,index:n+t,conversionsTo:[]})}let i=l.slice(n);l=l.slice(0,n).concat(r).concat(i);for(let e=n+r.length;e<l.length;++e)c.get(l[e]).index=e}function m(){c=new Map,l=[],u=0,p([s],!1)}m(),p(o);function h(){let e;for(e of l)c.get(e).conversionsTo=[];u=0}function g(e){let t=l.filter(t=>{let n=c.get(t);return!n.isAny&&n.test(e)});return t.length?t:[`any`]}function _(e){return e&&typeof e==`function`&&`_typedFunctionData`in e}function v(e,t,n){if(!_(e))throw TypeError(r);let i=n&&n.exact,a=Array.isArray(t)?t.join(`,`):t,o=te(a),s=x(o);if(!i||s in e.signatures){let t=e._typedFunctionData.signatureMap.get(s);if(t)return t}let c=o.length,l;if(i){l=[];let t;for(t in e.signatures)l.push(e._typedFunctionData.signatureMap.get(t))}else l=e._typedFunctionData.signatures;for(let e=0;e<c;++e){let t=o[e],n=[],r;for(r of l){let i=E(r.params,e);if(!i||t.restParam&&!i.restParam)continue;if(!i.hasAny){let e=C(i);if(t.types.some(t=>!e.has(t.name)))continue}n.push(r)}if(l=n,l.length===0)break}let u;for(u of l)if(u.params.length<=c)return u;throw TypeError(`Signature not found (signature: `+(e.name||`unnamed`)+`(`+x(o,`, `)+`))`)}function y(e,t,n){return v(e,t,n).implementation}function b(e,t){let n=f(t);if(n.test(e))return e;let r=n.conversionsTo;if(r.length===0)throw Error(`There are no conversions to `+t+` defined.`);for(let t=0;t<r.length;t++){let n=f(r[t].from);if(n.test(e))return r[t].convert(e)}throw Error(`Cannot convert `+e+` to `+t)}function x(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`,`;return e.map(e=>e.name).join(t)}function S(e){let t=e.indexOf(`...`)===0,n=t?e.length>3?e.slice(3):`any`:e,r=n.split(`|`).map(e=>f(e.trim())),i=!1,a=t?`...`:``,o=r.map(function(e){return i=e.isAny||i,a+=e.name+`|`,{name:e.name,typeIndex:e.index,test:e.test,isAny:e.isAny,conversion:null,conversionIndex:-1}});return{types:o,name:a.slice(0,-1),hasAny:i,hasConversion:!1,restParam:t}}function ee(e){let t=e.types.map(e=>e.name),n=le(t),r=e.hasAny,i=e.name,a=n.map(function(e){let t=f(e.from);return r=t.isAny||r,i+=`|`+e.from,{name:e.from,typeIndex:t.index,test:t.test,isAny:t.isAny,conversion:e,conversionIndex:e.index}});return{types:e.types.concat(a),name:i,hasAny:r,hasConversion:a.length>0,restParam:e.restParam}}function C(e){return e.typeSet||(e.typeSet=new Set,e.types.forEach(t=>e.typeSet.add(t.name))),e.typeSet}function te(e){let t=[];if(typeof e!=`string`)throw TypeError(`Signatures must be strings`);let n=e.trim();if(n===``)return t;let r=n.split(`,`);for(let e=0;e<r.length;++e){let n=S(r[e].trim());if(n.restParam&&e!==r.length-1)throw SyntaxError(`Unexpected rest parameter "`+r[e]+`": only allowed for the last parameter`);if(n.types.length===0)return null;t.push(n)}return t}function w(e){let t=be(e);return t?t.restParam:!1}function T(t){if(!t||t.types.length===0)return e;if(t.types.length===1)return f(t.types[0].name).test;if(t.types.length===2){let e=f(t.types[0].name).test,n=f(t.types[1].name).test;return function(t){return e(t)||n(t)}}else{let e=t.types.map(function(e){return f(e.name).test});return function(t){for(let n=0;n<e.length;n++)if(e[n](t))return!0;return!1}}}function ne(e){let t,n,r;if(w(e)){t=ye(e).map(T);let n=t.length,r=T(be(e)),i=function(e){for(let t=n;t<e.length;t++)if(!r(e[t]))return!1;return!0};return function(e){for(let n=0;n<t.length;n++)if(!t[n](e[n]))return!1;return i(e)&&e.length>=n+1}}else if(e.length===0)return function(e){return e.length===0};else if(e.length===1)return n=T(e[0]),function(e){return n(e[0])&&e.length===1};else if(e.length===2)return n=T(e[0]),r=T(e[1]),function(e){return n(e[0])&&r(e[1])&&e.length===2};else return t=e.map(T),function(e){for(let n=0;n<t.length;n++)if(!t[n](e[n]))return!1;return e.length===t.length}}function E(e,t){return t<e.length?e[t]:w(e)?be(e):null}function re(e,t){let n=E(e,t);return n?C(n):new Set}function D(e){return e.conversion===null||e.conversion===void 0}function O(e,t){let n=new Set;return e.forEach(e=>{let r=re(e.params,t),i;for(i of r)n.add(i)}),n.has(`any`)?[`any`]:Array.from(n)}function ie(e,t,n){let r,i,a=e||`unnamed`,o=n,s;for(s=0;s<t.length;s++){let e=[];if(o.forEach(n=>{let r=E(n.params,s),i=T(r);(s<n.params.length||w(n.params))&&i(t[s])&&e.push(n)}),e.length===0){if(i=O(o,s),i.length>0){let e=g(t[s]);return r=TypeError(`Unexpected type of argument in function `+a+` (expected: `+i.join(` or `)+`, actual: `+e.join(` | `)+`, index: `+s+`)`),r.data={category:`wrongType`,fn:a,index:s,actual:e,expected:i},r}}else o=e}let c=o.map(function(e){return w(e.params)?1/0:e.params.length});if(t.length<Math.min.apply(null,c))return i=O(o,s),r=TypeError(`Too few arguments in function `+a+` (expected: `+i.join(` or `)+`, index: `+t.length+`)`),r.data={category:`tooFewArgs`,fn:a,index:t.length,expected:i},r;let l=Math.max.apply(null,c);if(t.length>l)return r=TypeError(`Too many arguments in function `+a+` (expected: `+l+`, actual: `+t.length+`)`),r.data={category:`tooManyArgs`,fn:a,index:t.length,expectedLength:l},r;let u=[];for(let e=0;e<t.length;++e)u.push(g(t[e]).join(`|`));return r=TypeError(`Arguments of type "`+u.join(`, `)+`" do not match any of the defined signatures of function `+a+`.`),r.data={category:`mismatch`,actual:u},r}function ae(e){let t=l.length+1;for(let n=0;n<e.types.length;n++)D(e.types[n])&&(t=Math.min(t,e.types[n].typeIndex));return t}function oe(e){let t=u+1;for(let n=0;n<e.types.length;n++)D(e.types[n])||(t=Math.min(t,e.types[n].conversionIndex));return t}function se(e,t){if(e.hasAny){if(!t.hasAny)return 1}else if(t.hasAny)return-1;if(e.restParam){if(!t.restParam)return 1}else if(t.restParam)return-1;if(e.hasConversion){if(!t.hasConversion)return 1}else if(t.hasConversion)return-1;let n=ae(e)-ae(t);if(n<0)return-1;if(n>0)return 1;let r=oe(e)-oe(t);return r<0?-1:r>0?1:0}function ce(e,t){let n=e.params,r=t.params,i=be(n),a=be(r),o=w(n),s=w(r);if(o&&i.hasAny){if(!s||!a.hasAny)return 1}else if(s&&a.hasAny)return-1;let c=0,l=0,u;for(u of n)u.hasAny&&++c,u.hasConversion&&++l;let d=0,f=0;for(u of r)u.hasAny&&++d,u.hasConversion&&++f;if(c!==d)return c-d;if(o&&i.hasConversion){if(!s||!a.hasConversion)return 1}else if(s&&a.hasConversion)return-1;if(l!==f)return l-f;if(o){if(!s)return 1}else if(s)return-1;let p=(n.length-r.length)*(o?-1:1);if(p!==0)return p;let m=[],h=0;for(let e=0;e<n.length;++e){let t=se(n[e],r[e]);m.push(t),h+=t}if(h!==0)return h;let g;for(g of m)if(g!==0)return g;return 0}function le(e){if(e.length===0)return[];let t=e.map(f);e.length>1&&t.sort((e,t)=>e.index-t.index);let n=t[0].conversionsTo;if(e.length===1)return n;n=n.concat([]);let r=new Set(e);for(let e=1;e<t.length;++e){let i;for(i of t[e].conversionsTo)r.has(i.from)||(n.push(i),r.add(i.from))}return n}function k(e,t){let n=t;if(e.some(e=>e.hasConversion)){let r=w(e),i=e.map(ue);n=function(){let e=[],n=r?arguments.length-1:arguments.length;for(let t=0;t<n;t++)e[t]=i[t](arguments[t]);return r&&(e[n]=arguments[n].map(i[n])),t.apply(this,e)}}let r=n;if(w(e)){let t=e.length-1;r=function(){return n.apply(this,xe(arguments,0,t).concat([xe(arguments,t)]))}}return r}function ue(e){let t,n,r,i,a=[],o=[];switch(e.types.forEach(function(e){e.conversion&&(a.push(f(e.conversion.from).test),o.push(e.conversion.convert))}),o.length){case 0:return function(e){return e};case 1:return t=a[0],r=o[0],function(e){return t(e)?r(e):e};case 2:return t=a[0],n=a[1],r=o[0],i=o[1],function(e){return t(e)?r(e):n(e)?i(e):e};default:return function(e){for(let t=0;t<o.length;t++)if(a[t](e))return o[t](e);return e}}}function de(e){function t(e,n,r){if(n<e.length){let i=e[n],a=[];if(i.restParam){let e=i.types.filter(D);e.length<i.types.length&&a.push({types:e,name:`...`+e.map(e=>e.name).join(`|`),hasAny:e.some(e=>e.isAny),hasConversion:!1,restParam:!0}),a.push(i)}else a=i.types.map(function(e){return{types:[e],name:e.name,hasAny:e.isAny,hasConversion:e.conversion,restParam:!1}});return Ce(a,function(i){return t(e,n+1,r.concat([i]))})}else return[r]}return t(e,0,[])}function fe(e,t){let n=Math.max(e.length,t.length);for(let r=0;r<n;r++){let n=re(e,r),i=re(t,r),a=!1,o;for(o of i)if(n.has(o)){a=!0;break}if(!a)return!1}let r=e.length,i=t.length,a=w(e),o=w(t);return a?o?r===i:i>=r:o?r>=i:r===i}function pe(e){return e.map(e=>Ee(e)?j(e.referToSelf.callback):Te(e)?A(e.referTo.references,e.referTo.callback):e)}function me(e,t,n){let r=[],i;for(i of e){let e=n[i];if(typeof e!=`number`)throw TypeError(`No definition for referenced signature "`+i+`"`);if(e=t[e],typeof e!=`function`)return!1;r.push(e)}return r}function he(e,t,n){let r=pe(e),i=Array(r.length).fill(!1),a=!0;for(;a;){a=!1;let e=!0;for(let o=0;o<r.length;++o){if(i[o])continue;let s=r[o];if(Ee(s))r[o]=s.referToSelf.callback(n),r[o].referToSelf=s.referToSelf,i[o]=!0,e=!1;else if(Te(s)){let n=me(s.referTo.references,r,t);n?(r[o]=s.referTo.callback.apply(this,n),r[o].referTo=s.referTo,i[o]=!0,e=!1):a=!0}}if(e&&a)throw SyntaxError(`Circular reference detected in resolving typed.referTo`)}return r}function ge(e){let t=/\bthis(\(|\.signatures\b)/;Object.keys(e).forEach(n=>{let r=e[n];if(t.test(r.toString()))throw SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.")})}function _e(e,r){if(d.createCount++,Object.keys(r).length===0)throw SyntaxError(`No signatures provided`);d.warnAgainstDeprecatedThis&&ge(r);let i=[],a=[],o={},s=[],c;for(c in r){if(!Object.prototype.hasOwnProperty.call(r,c))continue;let e=te(c);if(!e)continue;i.forEach(function(t){if(fe(t,e))throw TypeError(`Conflicting signatures "`+x(t)+`" and "`+x(e)+`".`)}),i.push(e);let t=a.length;a.push(r[c]);let n=e.map(ee),l;for(l of de(n)){let e=x(l);s.push({params:l,name:e,fn:t}),l.every(e=>!e.hasConversion)&&(o[e]=t)}}s.sort(ce);let l=he(a,o,Ae),u;for(u in o)Object.prototype.hasOwnProperty.call(o,u)&&(o[u]=l[o[u]]);let f=[],p=new Map;for(u of s)p.has(u.name)||(u.fn=l[u.fn],f.push(u),p.set(u.name,u));let m=f[0]&&f[0].params.length<=2&&!w(f[0].params),h=f[1]&&f[1].params.length<=2&&!w(f[1].params),g=f[2]&&f[2].params.length<=2&&!w(f[2].params),_=f[3]&&f[3].params.length<=2&&!w(f[3].params),v=f[4]&&f[4].params.length<=2&&!w(f[4].params),y=f[5]&&f[5].params.length<=2&&!w(f[5].params),b=m&&h&&g&&_&&v&&y;for(let e=0;e<f.length;++e)f[e].test=ne(f[e].params);let S=m?T(f[0].params[0]):t,C=h?T(f[1].params[0]):t,E=g?T(f[2].params[0]):t,re=_?T(f[3].params[0]):t,D=v?T(f[4].params[0]):t,O=y?T(f[5].params[0]):t,ie=m?T(f[0].params[1]):t,ae=h?T(f[1].params[1]):t,oe=g?T(f[2].params[1]):t,se=_?T(f[3].params[1]):t,le=v?T(f[4].params[1]):t,ue=y?T(f[5].params[1]):t;for(let e=0;e<f.length;++e)f[e].implementation=k(f[e].params,f[e].fn);let pe=m?f[0].implementation:n,me=h?f[1].implementation:n,_e=g?f[2].implementation:n,ve=_?f[3].implementation:n,ye=v?f[4].implementation:n,be=y?f[5].implementation:n,xe=m?f[0].params.length:-1,Se=h?f[1].params.length:-1,Ce=g?f[2].params.length:-1,we=_?f[3].params.length:-1,A=v?f[4].params.length:-1,j=y?f[5].params.length:-1,Te=b?6:0,Ee=f.length,De=f.map(e=>e.test),Oe=f.map(e=>e.implementation),ke=function(){for(let e=Te;e<Ee;e++)if(De[e](arguments))return Oe[e].apply(this,arguments);return d.onMismatch(e,arguments,f)};function Ae(e,t){return arguments.length===xe&&S(e)&&ie(t)?pe.apply(this,arguments):arguments.length===Se&&C(e)&&ae(t)?me.apply(this,arguments):arguments.length===Ce&&E(e)&&oe(t)?_e.apply(this,arguments):arguments.length===we&&re(e)&&se(t)?ve.apply(this,arguments):arguments.length===A&&D(e)&&le(t)?ye.apply(this,arguments):arguments.length===j&&O(e)&&ue(t)?be.apply(this,arguments):ke.apply(this,arguments)}try{Object.defineProperty(Ae,`name`,{value:e})}catch{}return Ae.signatures=o,Ae._typedFunctionData={signatures:f,signatureMap:p},Ae}function ve(e,t,n){throw ie(e,t,n)}function ye(e){return xe(e,0,e.length-1)}function be(e){return e[e.length-1]}function xe(e,t,n){return Array.prototype.slice.call(e,t,n)}function Se(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return e[n]}function Ce(e,t){return Array.prototype.concat.apply([],e.map(t))}function we(){let e=ye(arguments).map(e=>x(te(e))),t=be(arguments);if(typeof t!=`function`)throw TypeError(`Callback function expected as last argument`);return A(e,t)}function A(e,t){return{referTo:{references:e,callback:t}}}function j(e){if(typeof e!=`function`)throw TypeError(`Callback function expected as first argument`);return{referToSelf:{callback:e}}}function Te(e){return e&&typeof e.referTo==`object`&&Array.isArray(e.referTo.references)&&typeof e.referTo.callback==`function`}function Ee(e){return e&&typeof e.referToSelf==`object`&&typeof e.referToSelf.callback==`function`}function De(e,t){if(!e)return t;if(t&&t!==e){let n=Error(`Function names do not match (expected: `+e+`, actual: `+t+`)`);throw n.data={actual:t,expected:e},n}return e}function Oe(e){let t;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(_(e[n])||typeof e[n].signature==`string`)&&(t=De(t,e[n].name));return t}function ke(e,t){let n;for(n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(n in e&&t[n]!==e[n]){let r=Error(`Signature "`+n+`" is defined twice`);throw r.data={signature:n,sourceFunction:t[n],destFunction:e[n]},r}e[n]=t[n]}}let Ae=d;d=function(e){let t=typeof e==`string`,n=t?1:0,r=t?e:``,i={};for(let e=n;e<arguments.length;++e){let n=arguments[e],o={},s;if(typeof n==`function`?(s=n.name,typeof n.signature==`string`?o[n.signature]=n:_(n)&&(o=n.signatures)):a(n)&&(o=n,t||(s=Oe(n))),Object.keys(o).length===0){let t=TypeError(`Argument to 'typed' at index `+e+` is not a (typed) function, nor an object with signatures as keys and functions as values.`);throw t.data={index:e,argument:n},t}t||(r=De(r,s)),ke(i,o)}return _e(r||``,i)},d.create=i,d.createCount=Ae.createCount,d.onMismatch=ve,d.throwMismatchError=ve,d.createError=ie,d.clear=m,d.clearConversions=h,d.addTypes=p,d._findType=f,d.referTo=we,d.referToSelf=j,d.convert=b,d.findSignature=v,d.find=y,d.isTypedFunction=_,d.warnAgainstDeprecatedThis=!0,d.addType=function(e,t){let n=`any`;t!==!1&&c.has(`Object`)&&(n=`Object`),d.addTypes([e],n)};function je(e){if(!e||typeof e.from!=`string`||typeof e.to!=`string`||typeof e.convert!=`function`)throw TypeError(`Object with properties {from: string, to: string, convert: function} expected`);if(e.to===e.from)throw SyntaxError(`Illegal to define conversion from "`+e.from+`" to itself.`)}return d.addConversion=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{override:!1};je(e);let n=f(e.to),r=n.conversionsTo.find(t=>t.from===e.from);if(r)if(t&&t.override)d.removeConversion({from:r.from,to:e.to,convert:r.convert});else throw Error(`There is already a conversion from "`+e.from+`" to "`+n.name+`"`);n.conversionsTo.push({from:e.from,convert:e.convert,index:u++})},d.addConversions=function(e,t){e.forEach(e=>d.addConversion(e,t))},d.removeConversion=function(e){je(e);let t=f(e.to),n=Se(t.conversionsTo,t=>t.from===e.from);if(!n)throw Error(`Attempt to remove nonexistent conversion from `+e.from+` to `+e.to);if(n.convert!==e.convert)throw Error(`Conversion to remove does not match existing conversion`);let r=t.conversionsTo.indexOf(n);t.conversionsTo.splice(r,1)},d.resolve=function(e,t){if(!_(e))throw TypeError(r);let n=e._typedFunctionData.signatures;for(let e=0;e<n.length;++e)if(n[e].test(t))return n[e];return null},d}var a=i();return a}))}));function P(e){return typeof e==`boolean`?!0:isFinite(e)?e===Math.round(e):!1}function hn(e,t,n){var r={2:`0b`,8:`0o`,16:`0x`},i=r[t],a=``;if(n){if(n<1)throw Error(`size must be in greater than 0`);if(!P(n))throw Error(`size must be an integer`);if(e>2**(n-1)-1||e<-(2**(n-1)))throw Error(`Value must be in range [-2^${n-1}, 2^${n-1}-1]`);if(!P(e))throw Error(`Value must be an integer`);e<0&&(e+=2**n),a=`i${n}`}var o=``;return e<0&&(e=-e,o=`-`),`${o}${i}${e.toString(t)}${a}`}function gn(e,t){if(typeof t==`function`)return t(e);if(e===1/0)return`Infinity`;if(e===-1/0)return`-Infinity`;if(isNaN(e))return`NaN`;var n=`auto`,r,i;if(t&&(t.notation&&(n=t.notation),M(t)?r=t:M(t.precision)&&(r=t.precision),t.wordSize&&(i=t.wordSize,typeof i!=`number`)))throw Error(`Option "wordSize" must be a number`);switch(n){case`fixed`:return yn(e,r);case`exponential`:return bn(e,r);case`engineering`:return vn(e,r);case`bin`:return hn(e,2,i);case`oct`:return hn(e,8,i);case`hex`:return hn(e,16,i);case`auto`:return xn(e,r,t&&t).replace(/((\.\d*?)(0+))($|e)/,function(){var e=arguments[2],t=arguments[4];return e===`.`?t:e+t});default:throw Error(`Unknown notation "`+n+`". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.`)}}function _n(e){var t=String(e).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!t)throw SyntaxError(`Invalid number `+e);var n=t[1],r=t[2],i=parseFloat(t[4]||`0`),a=r.indexOf(`.`);i+=a===-1?r.length-1:a-1;var o=r.replace(`.`,``).replace(/^0*/,function(e){return i-=e.length,``}).replace(/0*$/,``).split(``).map(function(e){return parseInt(e)});return o.length===0&&(o.push(0),i++),{sign:n,coefficients:o,exponent:i}}function vn(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=_n(e),r=Sn(n,t),i=r.exponent,a=r.coefficients,o=i%3==0?i:i<0?i-3-i%3:i-i%3;if(M(t))for(;t>a.length||i-o+1>a.length;)a.push(0);else for(var s=Math.abs(i-o)-(a.length-1),c=0;c<s;c++)a.push(0);for(var l=Math.abs(i-o),u=1;l>0;)u++,l--;var d=a.slice(u).join(``),f=M(t)&&d.length||d.match(/[1-9]/)?`.`+d:``,p=a.slice(0,u).join(``)+f+`e`+(i>=0?`+`:``)+o.toString();return r.sign+p}function yn(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=_n(e),r=typeof t==`number`?Sn(n,n.exponent+1+t):n,i=r.coefficients,a=r.exponent+1,o=a+(t||0);return i.length<o&&(i=i.concat(Cn(o-i.length))),a<0&&(i=Cn(-a+1).concat(i),a=1),a<i.length&&i.splice(a,0,a===0?`0.`:`.`),r.sign+i.join(``)}function bn(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=_n(e),r=t?Sn(n,t):n,i=r.coefficients,a=r.exponent;i.length<t&&(i=i.concat(Cn(t-i.length)));var o=i.shift();return r.sign+o+(i.length>0?`.`+i.join(``):``)+`e`+(a>=0?`+`:``)+a}function xn(e,t,n){if(isNaN(e)||!isFinite(e))return String(e);var r=n&&n.lowerExp!==void 0?n.lowerExp:-3,i=n&&n.upperExp!==void 0?n.upperExp:5,a=_n(e),o=t?Sn(a,t):a;if(o.exponent<r||o.exponent>=i)return bn(e,t);var s=o.coefficients,c=o.exponent;s.length<t&&(s=s.concat(Cn(t-s.length))),s=s.concat(Cn(c-s.length+1+(s.length<t?t-s.length:0))),s=Cn(-c).concat(s);var l=c>0?c:0;return l<s.length-1&&s.splice(l+1,0,`.`),o.sign+s.join(``)}function Sn(e,t){for(var n={sign:e.sign,coefficients:e.coefficients,exponent:e.exponent},r=n.coefficients;t<=0;)r.unshift(0),n.exponent++,t++;if(r.length>t){var i=r.splice(t,r.length-t);if(i[0]>=5){var a=t-1;for(r[a]++;r[a]===10;)r.pop(),a===0&&(r.unshift(0),n.exponent++,a++),a--,r[a]++}}return n}function Cn(e){for(var t=[],n=0;n<e;n++)t.push(0);return t}function wn(e){return e.toExponential().replace(/e.*$/,``).replace(/^0\.?0*|\./,``).length}var Tn=2**-52||2220446049250313e-31;function En(e,t,n){var r=e.constructor,i=new r(2),a=``;if(n){if(n<1)throw Error(`size must be in greater than 0`);if(!P(n))throw Error(`size must be an integer`);if(e.greaterThan(i.pow(n-1).sub(1))||e.lessThan(i.pow(n-1).mul(-1)))throw Error(`Value must be in range [-2^${n-1}, 2^${n-1}-1]`);if(!e.isInteger())throw Error(`Value must be an integer`);e.lessThan(0)&&(e=e.add(i.pow(n))),a=`i${n}`}switch(t){case 2:return`${e.toBinary()}${a}`;case 8:return`${e.toOctal()}${a}`;case 16:return`${e.toHexadecimal()}${a}`;default:throw Error(`Base ${t} not supported `)}}function Dn(e,t){if(typeof t==`function`)return t(e);if(!e.isFinite())return e.isNaN()?`NaN`:e.gt(0)?`Infinity`:`-Infinity`;var n=`auto`,r,i;if(t!==void 0&&(t.notation&&(n=t.notation),typeof t==`number`?r=t:t.precision!==void 0&&(r=t.precision),t.wordSize&&(i=t.wordSize,typeof i!=`number`)))throw Error(`Option "wordSize" must be a number`);switch(n){case`fixed`:return An(e,r);case`exponential`:return kn(e,r);case`engineering`:return On(e,r);case`bin`:return En(e,2,i);case`oct`:return En(e,8,i);case`hex`:return En(e,16,i);case`auto`:var a=t&&t.lowerExp!==void 0?t.lowerExp:-3,o=t&&t.upperExp!==void 0?t.upperExp:5;if(e.isZero())return`0`;var s,c=e.toSignificantDigits(r),l=c.e;return s=l>=a&&l<o?c.toFixed():kn(e,r),s.replace(/((\.\d*?)(0+))($|e)/,function(){var e=arguments[2],t=arguments[4];return e===`.`?t:e+t});default:throw Error(`Unknown notation "`+n+`". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.`)}}function On(e,t){var n=e.e,r=n%3==0?n:n<0?n-3-n%3:n-n%3,i=e.mul(10**-r),a=i.toPrecision(t);if(a.indexOf(`e`)!==-1){var o=e.constructor;a=new o(a).toFixed()}return a+`e`+(n>=0?`+`:``)+r.toString()}function kn(e,t){return t===void 0?e.toExponential():e.toExponential(t-1)}function An(e,t){return e.toFixed(t)}function jn(e,t){var n=Mn(e,t);return t&&typeof t==`object`&&`truncate`in t&&n.length>t.truncate?n.substring(0,t.truncate-3)+`...`:n}function Mn(e,t){if(typeof e==`number`)return gn(e,t);if(bt(e))return Dn(e,t);if(In(e))return!t||t.fraction!==`decimal`?e.s*e.n+`/`+e.d:e.toString();if(Array.isArray(e))return Fn(e,t);if(wt(e))return Nn(e);if(typeof e==`function`)return e.syntax?String(e.syntax):`function`;if(e&&typeof e==`object`){if(typeof e.format==`function`)return e.format(t);if(e&&e.toString(t)!=={}.toString())return e.toString(t);var n=Object.keys(e).map(n=>Nn(n)+`: `+jn(e[n],t));return`{`+n.join(`, `)+`}`}return String(e)}function Nn(e){for(var t=String(e),n=``,r=0;r<t.length;){var i=t.charAt(r);n+=i in Pn?Pn[i]:i,r++}return`"`+n+`"`}var Pn={'"':`\\"`,"\\":`\\\\`,"\b":`\\b`,"\f":`\\f`,"\n":`\\n`,"\r":`\\r`," ":`\\t`};function Fn(e,t){if(Array.isArray(e)){for(var n=`[`,r=e.length,i=0;i<r;i++)i!==0&&(n+=`, `),n+=Fn(e[i],t);return n+=`]`,n}else return jn(e,t)}function In(e){return e&&typeof e==`object`&&typeof e.s==`number`&&typeof e.n==`number`&&typeof e.d==`number`||!1}function F(e,t,n){if(!(this instanceof F))throw SyntaxError(`Constructor must be called with the new operator`);this.actual=e,this.expected=t,this.relation=n,this.message=`Dimension mismatch (`+(Array.isArray(e)?`[`+e.join(`, `)+`]`:e)+` `+(this.relation||`!=`)+` `+(Array.isArray(t)?`[`+t.join(`, `)+`]`:t)+`)`,this.stack=Error().stack}F.prototype=RangeError(),F.prototype.constructor=RangeError,F.prototype.name=`DimensionError`,F.prototype.isDimensionError=!0;function Ln(e,t,n){if(!(this instanceof Ln))throw SyntaxError(`Constructor must be called with the new operator`);this.index=e,arguments.length<3?(this.min=0,this.max=t):(this.min=t,this.max=n),this.min!==void 0&&this.index<this.min?this.message=`Index out of range (`+this.index+` < `+this.min+`)`:this.max!==void 0&&this.index>=this.max?this.message=`Index out of range (`+this.index+` > `+(this.max-1)+`)`:this.message=`Index out of range (`+this.index+`)`,this.stack=Error().stack}Ln.prototype=RangeError(),Ln.prototype.constructor=RangeError,Ln.prototype.name=`IndexError`,Ln.prototype.isIndexError=!0;var Rn=c(vt(),1);function zn(e){for(var t=[];Array.isArray(e);)t.push(e.length),e=e[0];return t}function Bn(e,t,n){var r,i=e.length;if(i!==t[n])throw new F(i,t[n]);if(n<t.length-1){var a=n+1;for(r=0;r<i;r++){var o=e[r];if(!Array.isArray(o))throw new F(t.length-1,t.length,`<`);Bn(e[r],t,a)}}else for(r=0;r<i;r++)if(Array.isArray(e[r]))throw new F(t.length+1,t.length,`>`)}function Vn(e,t){var n=t.length===0;if(n){if(Array.isArray(e))throw new F(e.length,0)}else Bn(e,t,0)}function I(e,t){if(e!==void 0){if(!M(e)||!P(e))throw TypeError(`Index must be an integer (value: `+e+`)`);if(e<0||typeof t==`number`&&e>=t)throw new Ln(e,t)}}function Hn(e,t,n){if(!Array.isArray(t))throw TypeError(`Array expected`);if(t.length===0)throw Error(`Resizing to scalar is not supported`);t.forEach(function(e){if(!M(e)||!P(e)||e<0)throw TypeError(`Invalid size, must contain positive integers (size: `+jn(t)+`)`)}),(M(e)||bt(e))&&(e=[e]);var r=n===void 0?0:n;return Un(e,t,0,r),e}function Un(e,t,n,r){var i,a,o=e.length,s=t[n],c=Math.min(o,s);if(e.length=s,n<t.length-1){var l=n+1;for(i=0;i<c;i++)a=e[i],Array.isArray(a)||(a=[a],e[i]=a),Un(a,t,l,r);for(i=c;i<s;i++)a=[],e[i]=a,Un(a,t,l,r)}else{for(i=0;i<c;i++)for(;Array.isArray(e[i]);)e[i]=e[i][0];for(i=c;i<s;i++)e[i]=r}}function Wn(e,t){var n=Xn(e),r=n.length;if(!Array.isArray(e)||!Array.isArray(t))throw TypeError(`Array expected`);if(t.length===0)throw new F(0,r,`!=`);t=Gn(t,r);var i=Kn(t);if(r!==i)throw new F(i,r,`!=`);try{return qn(n,t)}catch(e){throw e instanceof F?new F(i,r,`!=`):e}}function Gn(e,t){var n=Kn(e),r=e.slice(),i=-1,a=e.indexOf(i),o=e.indexOf(i,a+1)>=0;if(o)throw Error(`More than one wildcard in sizes`);var s=a>=0,c=t%n===0;if(s)if(c)r[a]=-t/n;else throw Error(`Could not replace wildcard, since `+t+` is no multiple of `+-n);return r}function Kn(e){return e.reduce((e,t)=>e*t,1)}function qn(e,t){for(var n=e,r,i=t.length-1;i>0;i--){var a=t[i];r=[];for(var o=n.length/a,s=0;s<o;s++)r.push(n.slice(s*a,(s+1)*a));n=r}return n}function Jn(e,t,n,r){var i=r||zn(e);if(n)for(var a=0;a<n;a++)e=[e],i.unshift(1);for(e=Yn(e,t,0);i.length<t;)i.push(1);return e}function Yn(e,t,n){var r,i;if(Array.isArray(e)){var a=n+1;for(r=0,i=e.length;r<i;r++)e[r]=Yn(e[r],t,a)}else for(var o=n;o<t;o++)e=[e];return e}function Xn(e){if(!Array.isArray(e))return e;var t=[];return e.forEach(function e(n){Array.isArray(n)?n.forEach(e):t.push(n)}),t}function Zn(e,t){for(var n,r=0,i=0;i<e.length;i++){var a=e[i],o=Array.isArray(a);if(i===0&&o&&(r=a.length),o&&a.length!==r)return;var s=o?Zn(a,t):t(a);if(n===void 0)n=s;else if(n!==s)return`mixed`}return n}function Qn(e,t,n,r){if(r<n){if(e.length!==t.length)throw new F(e.length,t.length);for(var i=[],a=0;a<e.length;a++)i[a]=Qn(e[a],t[a],n,r+1);return i}else return e.concat(t)}function $n(){var e=Array.prototype.slice.call(arguments,0,-1),t=Array.prototype.slice.call(arguments,-1);if(e.length===1)return e[0];if(e.length>1)return e.slice(1).reduce(function(e,n){return Qn(e,n,t,0)},e[0]);throw Error(`Wrong number of arguments in function concat`)}function er(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=t.map(e=>e.length),i=Math.max(...r),a=Array(i).fill(null),o=0;o<t.length;o++)for(var s=t[o],c=r[o],l=0;l<c;l++){var u=i-c+l;s[l]>a[u]&&(a[u]=s[l])}for(var d=0;d<t.length;d++)tr(t[d],a);return a}function tr(e,t){for(var n=t.length,r=e.length,i=0;i<r;i++){var a=n-r+i;if(e[i]<t[a]&&e[i]>1||e[i]>t[a])throw Error(`shape missmatch: missmatch is found in arg with shape (${e}) not possible to broadcast dimension ${r} with size ${e[i]} to size ${t[a]}`)}}function nr(e,t){var n=zn(e);if(sn(n,t))return e;tr(n,t);var r=er(n,t),i=r.length,a=[...Array(i-n.length).fill(1),...n],o=ir(e);n.length<i&&(o=Wn(o,a),n=zn(o));for(var s=0;s<i;s++)n[s]<r[s]&&(o=rr(o,r[s],s),n=zn(o));return o}function rr(e,t,n){return $n(...Array(t).fill(e),n)}function ir(e){return(0,Rn.default)([],e)}function ar(e,t,n,r){function i(r){var i=ln(r,t.map(cr));return or(e,t,r),n(i)}return i.isFactory=!0,i.fn=e,i.dependencies=t.slice().sort(),r&&(i.meta=r),i}function or(e,t,n){var r=t.filter(e=>!sr(e)).every(e=>n[e]!==void 0);if(!r){var i=t.filter(e=>n[e]===void 0);throw Error(`Cannot create function "${e}", some dependencies are missing: ${i.map(e=>`"${e}"`).join(`, `)}.`)}}function sr(e){return e&&e[0]===`?`}function cr(e){return e&&e[0]===`?`?e.slice(1):e}function lr(e,t){if(mr(e)&&fr(e,t))return e[t];throw typeof e[t]==`function`&&pr(e,t)?Error(`Cannot access method "`+t+`" as a property`):Error(`No access to property "`+t+`"`)}function ur(e,t,n){if(mr(e)&&fr(e,t))return e[t]=n,n;throw Error(`No access to property "`+t+`"`)}function dr(e,t){return t in e}function fr(e,t){return!e||typeof e!=`object`?!1:cn(hr,t)?!0:!(t in Object.prototype||t in Function.prototype)}function pr(e,t){return e==null||typeof e[t]!=`function`||cn(e,t)&&Object.getPrototypeOf&&t in Object.getPrototypeOf(e)?!1:cn(gr,t)?!0:!(t in Object.prototype||t in Function.prototype)}function mr(e){return typeof e==`object`&&e&&e.constructor===Object}var hr={length:!0,name:!0},gr={toString:!0,valueOf:!0,toLocaleString:!0},_r=class{constructor(e){this.wrappedObject=e}keys(){return Object.keys(this.wrappedObject)}get(e){return lr(this.wrappedObject,e)}set(e,t){return ur(this.wrappedObject,e,t),this}has(e){return dr(this.wrappedObject,e)}};function vr(e){return e?e instanceof Map||e instanceof _r||typeof e.set==`function`&&typeof e.get==`function`&&typeof e.keys==`function`&&typeof e.has==`function`:!1}var yr=c(mn(),1),br=function(){return br=yr.default.create,yr.default},xr=[`?BigNumber`,`?Complex`,`?DenseMatrix`,`?Fraction`],Sr=ar(`typed`,xr,function(e){var{BigNumber:t,Complex:n,DenseMatrix:r,Fraction:i}=e,a=br();return a.clear(),a.addTypes([{name:`number`,test:M},{name:`Complex`,test:xt},{name:`BigNumber`,test:bt},{name:`Fraction`,test:St},{name:`Unit`,test:Ct},{name:`identifier`,test:e=>wt&&/^(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(e)},{name:`string`,test:wt},{name:`Chain`,test:nn},{name:`Array`,test:N},{name:`Matrix`,test:Tt},{name:`DenseMatrix`,test:Dt},{name:`SparseMatrix`,test:Ot},{name:`Range`,test:kt},{name:`Index`,test:At},{name:`boolean`,test:jt},{name:`ResultSet`,test:Mt},{name:`Help`,test:Nt},{name:`function`,test:Pt},{name:`Date`,test:Ft},{name:`RegExp`,test:It},{name:`null`,test:Rt},{name:`undefined`,test:zt},{name:`AccessorNode`,test:Bt},{name:`ArrayNode`,test:Vt},{name:`AssignmentNode`,test:Ht},{name:`BlockNode`,test:Ut},{name:`ConditionalNode`,test:Wt},{name:`ConstantNode`,test:Gt},{name:`FunctionNode`,test:qt},{name:`FunctionAssignmentNode`,test:Kt},{name:`IndexNode`,test:Jt},{name:`Node`,test:Yt},{name:`ObjectNode`,test:Xt},{name:`OperatorNode`,test:Zt},{name:`ParenthesisNode`,test:Qt},{name:`RangeNode`,test:$t},{name:`RelationalNode`,test:en},{name:`SymbolNode`,test:tn},{name:`Map`,test:vr},{name:`Object`,test:Lt}]),a.addConversions([{from:`number`,to:`BigNumber`,convert:function(e){if(t||Cr(e),wn(e)>15)throw TypeError(`Cannot implicitly convert a number with >15 significant digits to BigNumber (value: `+e+`). Use function bignumber(x) to convert to BigNumber.`);return new t(e)}},{from:`number`,to:`Complex`,convert:function(e){return n||wr(e),new n(e,0)}},{from:`BigNumber`,to:`Complex`,convert:function(e){return n||wr(e),new n(e.toNumber(),0)}},{from:`Fraction`,to:`BigNumber`,convert:function(e){throw TypeError(`Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.`)}},{from:`Fraction`,to:`Complex`,convert:function(e){return n||wr(e),new n(e.valueOf(),0)}},{from:`number`,to:`Fraction`,convert:function(e){i||Er(e);var t=new i(e);if(t.valueOf()!==e)throw TypeError(`Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: `+e+`). Use function fraction(x) to convert to Fraction.`);return t}},{from:`string`,to:`number`,convert:function(e){var t=Number(e);if(isNaN(t))throw Error(`Cannot convert "`+e+`" to a number`);return t}},{from:`string`,to:`BigNumber`,convert:function(e){t||Cr(e);try{return new t(e)}catch{throw Error(`Cannot convert "`+e+`" to BigNumber`)}}},{from:`string`,to:`Fraction`,convert:function(e){i||Er(e);try{return new i(e)}catch{throw Error(`Cannot convert "`+e+`" to Fraction`)}}},{from:`string`,to:`Complex`,convert:function(e){n||wr(e);try{return new n(e)}catch{throw Error(`Cannot convert "`+e+`" to Complex`)}}},{from:`boolean`,to:`number`,convert:function(e){return+e}},{from:`boolean`,to:`BigNumber`,convert:function(e){return t||Cr(e),new t(+e)}},{from:`boolean`,to:`Fraction`,convert:function(e){return i||Er(e),new i(+e)}},{from:`boolean`,to:`string`,convert:function(e){return String(e)}},{from:`Array`,to:`Matrix`,convert:function(e){return r||Tr(),new r(e)}},{from:`Matrix`,to:`Array`,convert:function(e){return e.valueOf()}}]),a.onMismatch=(e,t,n)=>{var r=a.createError(e,t,n);if([`wrongType`,`mismatch`].includes(r.data.category)&&t.length===1&&Et(t[0])&&n.some(e=>!e.params.includes(`,`))){var i=TypeError(`Function '${e}' doesn't apply to matrices. To call it elementwise on a matrix 'M', try 'map(M, ${e})'.`);throw i.data=r.data,i}throw r},a.onMismatch=(e,t,n)=>{var r=a.createError(e,t,n);if([`wrongType`,`mismatch`].includes(r.data.category)&&t.length===1&&Et(t[0])&&n.some(e=>!e.params.includes(`,`))){var i=TypeError(`Function '${e}' doesn't apply to matrices. To call it elementwise on a matrix 'M', try 'map(M, ${e})'.`);throw i.data=r.data,i}throw r},a});function Cr(e){throw Error(`Cannot convert value ${e} into a BigNumber: no class 'BigNumber' provided`)}function wr(e){throw Error(`Cannot convert value ${e} into a Complex number: no class 'Complex' provided`)}function Tr(){throw Error(`Cannot convert array into a Matrix: no class 'DenseMatrix' provided`)}function Er(e){throw Error(`Cannot convert value ${e} into a Fraction, no class 'Fraction' provided.`)}
|
|
109
|
+
/*!
|
|
110
|
+
|
|
111
|
+
* decimal.js v10.6.0
|
|
112
|
+
|
|
113
|
+
* An arbitrary-precision Decimal type for JavaScript.
|
|
114
|
+
|
|
115
|
+
* https://github.com/MikeMcl/decimal.js
|
|
116
|
+
|
|
117
|
+
* Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>
|
|
118
|
+
|
|
119
|
+
* MIT Licence
|
|
120
|
+
|
|
121
|
+
*/
|
|
122
|
+
var Dr=9e15,Or=1e9,kr=`0123456789abcdef`,Ar=`2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058`,jr=`3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789`,Mr={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Dr,maxE:Dr,crypto:!1},Nr,L,R=!0,Pr=`[DecimalError] `,Fr=Pr+`Invalid argument: `,Ir=Pr+`Precision limit exceeded`,Lr=Pr+`crypto unavailable`,Rr=`[object Decimal]`,z=Math.floor,B=Math.pow,zr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Br=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Vr=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Hr=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,V=1e7,H=7,Ur=9007199254740991,Wr=Ar.length-1,Gr=jr.length-1,U={toStringTag:Rr};U.absoluteValue=U.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),q(e)},U.ceil=function(){return q(new this.constructor(this),this.e+1,2)},U.clampedTo=U.clamp=function(e,t){var n,r=this,i=r.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(Fr+t);return n=r.cmp(e),n<0?e:r.cmp(t)>0?t:new i(r)},U.comparedTo=U.cmp=function(e){var t,n,r,i,a=this,o=a.d,s=(e=new a.constructor(e)).d,c=a.s,l=e.s;if(!o||!s)return!c||!l?NaN:c===l?o===s?0:!o^c<0?1:-1:c;if(!o[0]||!s[0])return o[0]?c:s[0]?-l:0;if(c!==l)return c;if(a.e!==e.e)return a.e>e.e^c<0?1:-1;for(r=o.length,i=s.length,t=0,n=r<i?r:i;t<n;++t)if(o[t]!==s[t])return o[t]>s[t]^c<0?1:-1;return r===i?0:r>i^c<0?1:-1},U.cosine=U.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+H,r.rounding=1,n=Jr(r,ui(r,n)),r.precision=e,r.rounding=t,q(L==2||L==3?n.neg():n,e,t,!0)):new r(1):new r(NaN)},U.cubeRoot=U.cbrt=function(){var e,t,n,r,i,a,o,s,c,l,u=this,d=u.constructor;if(!u.isFinite()||u.isZero())return new d(u);for(R=!1,a=u.s*B(u.s*u,1/3),!a||Math.abs(a)==1/0?(n=W(u.d),e=u.e,(a=(e-n.length+1)%3)&&(n+=a==1||a==-2?`0`:`00`),a=B(n,1/3),e=z((e+1)/3)-(e%3==(e<0?-1:2)),a==1/0?n=`5e`+e:(n=a.toExponential(),n=n.slice(0,n.indexOf(`e`)+1)+e),r=new d(n),r.s=u.s):r=new d(a.toString()),o=(e=d.precision)+3;;)if(s=r,c=s.times(s).times(s),l=c.plus(u),r=K(l.plus(u).times(s),l.plus(c),o+2,1),W(s.d).slice(0,o)===(n=W(r.d)).slice(0,o))if(n=n.slice(o-3,o+1),n==`9999`||!i&&n==`4999`){if(!i&&(q(s,e+1,0),s.times(s).times(s).eq(u))){r=s;break}o+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)==`5`)&&(q(r,e+1,1),t=!r.times(r).times(r).eq(u));break}return R=!0,q(r,e,d.rounding,t)},U.decimalPlaces=U.dp=function(){var e,t=this.d,n=NaN;if(t){if(e=t.length-1,n=(e-z(this.e/H))*H,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n},U.dividedBy=U.div=function(e){return K(this,new this.constructor(e))},U.dividedToIntegerBy=U.divToInt=function(e){var t=this,n=t.constructor;return q(K(t,new n(e),0,1,1),n.precision,n.rounding)},U.equals=U.eq=function(e){return this.cmp(e)===0},U.floor=function(){return q(new this.constructor(this),this.e+1,3)},U.greaterThan=U.gt=function(e){return this.cmp(e)>0},U.greaterThanOrEqualTo=U.gte=function(e){var t=this.cmp(e);return t==1||t===0},U.hyperbolicCosine=U.cosh=function(){var e,t,n,r,i,a=this,o=a.constructor,s=new o(1);if(!a.isFinite())return new o(a.s?1/0:NaN);if(a.isZero())return s;n=o.precision,r=o.rounding,o.precision=n+Math.max(a.e,a.sd())+4,o.rounding=1,i=a.d.length,i<32?(e=Math.ceil(i/3),t=(1/li(4,e)).toString()):(e=16,t=`2.3283064365386962890625e-10`),a=ci(o,1,a.times(t),new o(1),!0);for(var c,l=e,u=new o(8);l--;)c=a.times(a),a=s.minus(c.times(u.minus(c.times(u))));return q(a,o.precision=n,o.rounding=r,!0)},U.hyperbolicSine=U.sinh=function(){var e,t,n,r,i=this,a=i.constructor;if(!i.isFinite()||i.isZero())return new a(i);if(t=a.precision,n=a.rounding,a.precision=t+Math.max(i.e,i.sd())+4,a.rounding=1,r=i.d.length,r<3)i=ci(a,2,i,i,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,i=i.times(1/li(5,e)),i=ci(a,2,i,i,!0);for(var o,s=new a(5),c=new a(16),l=new a(20);e--;)o=i.times(i),i=i.times(s.plus(o.times(c.times(o).plus(l))))}return a.precision=t,a.rounding=n,q(i,t,n,!0)},U.hyperbolicTangent=U.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,K(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)},U.inverseCosine=U.acos=function(){var e=this,t=e.constructor,n=e.abs().cmp(1),r=t.precision,i=t.rounding;return n===-1?e.isZero()?Y(t,r+4,i).times(.5):(t.precision=r+6,t.rounding=1,e=new t(1).minus(e).div(e.plus(1)).sqrt().atan(),t.precision=r,t.rounding=i,e.times(2)):n===0?e.isNeg()?Y(t,r,i):new t(0):new t(NaN)},U.inverseHyperbolicCosine=U.acosh=function(){var e,t,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(e=r.precision,t=r.rounding,r.precision=e+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,R=!1,n=n.times(n).minus(1).sqrt().plus(n),R=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)},U.inverseHyperbolicSine=U.asinh=function(){var e,t,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,R=!1,n=n.times(n).plus(1).sqrt().plus(n),R=!0,r.precision=e,r.rounding=t,n.ln())},U.inverseHyperbolicTangent=U.atanh=function(){var e,t,n,r,i=this,a=i.constructor;return i.isFinite()?i.e>=0?new a(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=a.precision,t=a.rounding,r=i.sd(),Math.max(r,e)<2*-i.e-1?q(new a(i),e,t,!0):(a.precision=n=r-i.e,i=K(i.plus(1),new a(1).minus(i),n+e,1),a.precision=e+4,a.rounding=1,i=i.ln(),a.precision=e,a.rounding=t,i.times(.5))):new a(NaN)},U.inverseSine=U.asin=function(){var e,t,n,r,i=this,a=i.constructor;return i.isZero()?new a(i):(t=i.abs().cmp(1),n=a.precision,r=a.rounding,t===-1?(a.precision=n+6,a.rounding=1,i=i.div(new a(1).minus(i.times(i)).sqrt().plus(1)).atan(),a.precision=n,a.rounding=r,i.times(2)):t===0?(e=Y(a,n+4,r).times(.5),e.s=i.s,e):new a(NaN))},U.inverseTangent=U.atan=function(){var e,t,n,r,i,a,o,s,c,l=this,u=l.constructor,d=u.precision,f=u.rounding;if(l.isFinite()){if(l.isZero())return new u(l);if(l.abs().eq(1)&&d+4<=Gr)return o=Y(u,d+4,f).times(.25),o.s=l.s,o}else{if(!l.s)return new u(NaN);if(d+4<=Gr)return o=Y(u,d+4,f).times(.5),o.s=l.s,o}for(u.precision=s=d+10,u.rounding=1,n=Math.min(28,s/H+2|0),e=n;e;--e)l=l.div(l.times(l).plus(1).sqrt().plus(1));for(R=!1,t=Math.ceil(s/H),r=1,c=l.times(l),o=new u(l),i=l;e!==-1;)if(i=i.times(c),a=o.minus(i.div(r+=2)),i=i.times(c),o=a.plus(i.div(r+=2)),o.d[t]!==void 0)for(e=t;o.d[e]===a.d[e]&&e--;);return n&&(o=o.times(2<<n-1)),R=!0,q(o,u.precision=d,u.rounding=f,!0)},U.isFinite=function(){return!!this.d},U.isInteger=U.isInt=function(){return!!this.d&&z(this.e/H)>this.d.length-2},U.isNaN=function(){return!this.s},U.isNegative=U.isNeg=function(){return this.s<0},U.isPositive=U.isPos=function(){return this.s>0},U.isZero=function(){return!!this.d&&this.d[0]===0},U.lessThan=U.lt=function(e){return this.cmp(e)<0},U.lessThanOrEqualTo=U.lte=function(e){return this.cmp(e)<1},U.logarithm=U.log=function(e){var t,n,r,i,a,o,s,c,l=this,u=l.constructor,d=u.precision,f=u.rounding,p=5;if(e==null)e=new u(10),t=!0;else{if(e=new u(e),n=e.d,e.s<0||!n||!n[0]||e.eq(1))return new u(NaN);t=e.eq(10)}if(n=l.d,l.s<0||!n||!n[0]||l.eq(1))return new u(n&&!n[0]?-1/0:l.s==1?n?0:1/0:NaN);if(t)if(n.length>1)a=!0;else{for(i=n[0];i%10==0;)i/=10;a=i!==1}if(R=!1,s=d+p,o=ri(l,s),r=t?Xr(u,s+10):ri(e,s),c=K(o,r,s,1),Kr(c.d,i=d,f))do if(s+=10,o=ri(l,s),r=t?Xr(u,s+10):ri(e,s),c=K(o,r,s,1),!a){+W(c.d).slice(i+1,i+15)+1==1e14&&(c=q(c,d+1,0));break}while(Kr(c.d,i+=10,f));return R=!0,q(c,d,f)},U.minus=U.sub=function(e){var t,n,r,i,a,o,s,c,l,u,d,f,p=this,m=p.constructor;if(e=new m(e),!p.d||!e.d)return!p.s||!e.s?e=new m(NaN):p.d?e.s=-e.s:e=new m(e.d||p.s!==e.s?p:NaN),e;if(p.s!=e.s)return e.s=-e.s,p.plus(e);if(l=p.d,f=e.d,s=m.precision,c=m.rounding,!l[0]||!f[0]){if(f[0])e.s=-e.s;else if(l[0])e=new m(p);else return new m(c===3?-0:0);return R?q(e,s,c):e}if(n=z(e.e/H),u=z(p.e/H),l=l.slice(),a=u-n,a){for(d=a<0,d?(t=l,a=-a,o=f.length):(t=f,n=u,o=l.length),r=Math.max(Math.ceil(s/H),o)+2,a>r&&(a=r,t.length=1),t.reverse(),r=a;r--;)t.push(0);t.reverse()}else{for(r=l.length,o=f.length,d=r<o,d&&(o=r),r=0;r<o;r++)if(l[r]!=f[r]){d=l[r]<f[r];break}a=0}for(d&&(t=l,l=f,f=t,e.s=-e.s),o=l.length,r=f.length-o;r>0;--r)l[o++]=0;for(r=f.length;r>a;){if(l[--r]<f[r]){for(i=r;i&&l[--i]===0;)l[i]=V-1;--l[i],l[r]+=V}l[r]-=f[r]}for(;l[--o]===0;)l.pop();for(;l[0]===0;l.shift())--n;return l[0]?(e.d=l,e.e=Yr(l,n),R?q(e,s,c):e):new m(c===3?-0:0)},U.modulo=U.mod=function(e){var t,n=this,r=n.constructor;return e=new r(e),!n.d||!e.s||e.d&&!e.d[0]?new r(NaN):!e.d||n.d&&!n.d[0]?q(new r(n),r.precision,r.rounding):(R=!1,r.modulo==9?(t=K(n,e.abs(),0,3,1),t.s*=e.s):t=K(n,e,0,r.modulo,1),t=t.times(e),R=!0,n.minus(t))},U.naturalExponential=U.exp=function(){return ni(this)},U.naturalLogarithm=U.ln=function(){return ri(this)},U.negated=U.neg=function(){var e=new this.constructor(this);return e.s=-e.s,q(e)},U.plus=U.add=function(e){var t,n,r,i,a,o,s,c,l,u,d=this,f=d.constructor;if(e=new f(e),!d.d||!e.d)return!d.s||!e.s?e=new f(NaN):d.d||(e=new f(e.d||d.s===e.s?d:NaN)),e;if(d.s!=e.s)return e.s=-e.s,d.minus(e);if(l=d.d,u=e.d,s=f.precision,c=f.rounding,!l[0]||!u[0])return u[0]||(e=new f(d)),R?q(e,s,c):e;if(a=z(d.e/H),r=z(e.e/H),l=l.slice(),i=a-r,i){for(i<0?(n=l,i=-i,o=u.length):(n=u,r=a,o=l.length),a=Math.ceil(s/H),o=a>o?a+1:o+1,i>o&&(i=o,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(o=l.length,i=u.length,o-i<0&&(i=o,n=u,u=l,l=n),t=0;i;)t=(l[--i]=l[i]+u[i]+t)/V|0,l[i]%=V;for(t&&(l.unshift(t),++r),o=l.length;l[--o]==0;)l.pop();return e.d=l,e.e=Yr(l,r),R?q(e,s,c):e},U.precision=U.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Fr+e);return n.d?(t=Zr(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t},U.round=function(){var e=this,t=e.constructor;return q(new t(e),e.e+1,t.rounding)},U.sine=U.sin=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+H,r.rounding=1,n=si(r,ui(r,n)),r.precision=e,r.rounding=t,q(L>2?n.neg():n,e,t,!0)):new r(NaN)},U.squareRoot=U.sqrt=function(){var e,t,n,r,i,a,o=this,s=o.d,c=o.e,l=o.s,u=o.constructor;if(l!==1||!s||!s[0])return new u(!l||l<0&&(!s||s[0])?NaN:s?o:1/0);for(R=!1,l=Math.sqrt(+o),l==0||l==1/0?(t=W(s),(t.length+c)%2==0&&(t+=`0`),l=Math.sqrt(t),c=z((c+1)/2)-(c<0||c%2),l==1/0?t=`5e`+c:(t=l.toExponential(),t=t.slice(0,t.indexOf(`e`)+1)+c),r=new u(t)):r=new u(l.toString()),n=(c=u.precision)+3;;)if(a=r,r=a.plus(K(o,a,n+2,1)).times(.5),W(a.d).slice(0,n)===(t=W(r.d)).slice(0,n))if(t=t.slice(n-3,n+1),t==`9999`||!i&&t==`4999`){if(!i&&(q(a,c+1,0),a.times(a).eq(o))){r=a;break}n+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)==`5`)&&(q(r,c+1,1),e=!r.times(r).eq(o));break}return R=!0,q(r,c,u.rounding,e)},U.tangent=U.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,n=n.sin(),n.s=1,n=K(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,q(L==2||L==4?n.neg():n,e,t,!0)):new r(NaN)},U.times=U.mul=function(e){var t,n,r,i,a,o,s,c,l,u=this,d=u.constructor,f=u.d,p=(e=new d(e)).d;if(e.s*=u.s,!f||!f[0]||!p||!p[0])return new d(!e.s||f&&!f[0]&&!p||p&&!p[0]&&!f?NaN:!f||!p?e.s/0:e.s*0);for(n=z(u.e/H)+z(e.e/H),c=f.length,l=p.length,c<l&&(a=f,f=p,p=a,o=c,c=l,l=o),a=[],o=c+l,r=o;r--;)a.push(0);for(r=l;--r>=0;){for(t=0,i=c+r;i>r;)s=a[i]+p[r]*f[i-r-1]+t,a[i--]=s%V|0,t=s/V|0;a[i]=(a[i]+t)%V|0}for(;!a[--o];)a.pop();return t?++n:a.shift(),e.d=a,e.e=Yr(a,n),R?q(e,d.precision,d.rounding):e},U.toBinary=function(e,t){return di(this,2,e,t)},U.toDecimalPlaces=U.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(G(e,0,Or),t===void 0?t=r.rounding:G(t,0,8),q(n,e+n.e+1,t))},U.toExponential=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=J(r,!0):(G(e,0,Or),t===void 0?t=i.rounding:G(t,0,8),r=q(new i(r),e+1,t),n=J(r,!0,e+1)),r.isNeg()&&!r.isZero()?`-`+n:n},U.toFixed=function(e,t){var n,r,i=this,a=i.constructor;return e===void 0?n=J(i):(G(e,0,Or),t===void 0?t=a.rounding:G(t,0,8),r=q(new a(i),e+i.e+1,t),n=J(r,!1,e+r.e+1)),i.isNeg()&&!i.isZero()?`-`+n:n},U.toFraction=function(e){var t,n,r,i,a,o,s,c,l,u,d,f,p=this,m=p.d,h=p.constructor;if(!m)return new h(p);if(l=n=new h(1),r=c=new h(0),t=new h(r),a=t.e=Zr(m)-p.e-1,o=a%H,t.d[0]=B(10,o<0?H+o:o),e==null)e=a>0?t:l;else{if(s=new h(e),!s.isInt()||s.lt(l))throw Error(Fr+s);e=s.gt(t)?a>0?t:l:s}for(R=!1,s=new h(W(m)),u=h.precision,h.precision=a=m.length*H*2;d=K(s,t,0,1,1),i=n.plus(d.times(r)),i.cmp(e)!=1;)n=r,r=i,i=l,l=c.plus(d.times(i)),c=i,i=t,t=s.minus(d.times(i)),s=i;return i=K(e.minus(n),r,0,1,1),c=c.plus(i.times(l)),n=n.plus(i.times(r)),c.s=l.s=p.s,f=K(l,r,a,1).minus(p).abs().cmp(K(c,n,a,1).minus(p).abs())<1?[l,r]:[c,n],h.precision=u,R=!0,f},U.toHexadecimal=U.toHex=function(e,t){return di(this,16,e,t)},U.toNearest=function(e,t){var n=this,r=n.constructor;if(n=new r(n),e==null){if(!n.d)return n;e=new r(1),t=r.rounding}else{if(e=new r(e),t===void 0?t=r.rounding:G(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&=n.s,e}return e.d[0]?(R=!1,n=K(n,e,0,t,1).times(e),R=!0,q(n)):(e.s=n.s,n=e),n},U.toNumber=function(){return+this},U.toOctal=function(e,t){return di(this,8,e,t)},U.toPower=U.pow=function(e){var t,n,r,i,a,o,s=this,c=s.constructor,l=+(e=new c(e));if(!s.d||!e.d||!s.d[0]||!e.d[0])return new c(B(+s,l));if(s=new c(s),s.eq(1))return s;if(r=c.precision,a=c.rounding,e.eq(1))return q(s,r,a);if(t=z(e.e/H),t>=e.d.length-1&&(n=l<0?-l:l)<=Ur)return i=$r(c,s,n,r),e.s<0?new c(1).div(i):q(i,r,a);if(o=s.s,o<0){if(t<e.d.length-1)return new c(NaN);if(e.d[t]&1||(o=1),s.e==0&&s.d[0]==1&&s.d.length==1)return s.s=o,s}return n=B(+s,l),t=n==0||!isFinite(n)?z(l*(Math.log(`0.`+W(s.d))/Math.LN10+s.e+1)):new c(n+``).e,t>c.maxE+1||t<c.minE-1?new c(t>0?o/0:0):(R=!1,c.rounding=s.s=1,n=Math.min(12,(t+``).length),i=ni(e.times(ri(s,r+n)),r),i.d&&(i=q(i,r+5,1),Kr(i.d,r,a)&&(t=r+10,i=q(ni(e.times(ri(s,t+n)),t),t+5,1),+W(i.d).slice(r+1,r+15)+1==1e14&&(i=q(i,r+1,0)))),i.s=o,R=!0,c.rounding=a,q(i,r,a))},U.toPrecision=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=J(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(G(e,1,Or),t===void 0?t=i.rounding:G(t,0,8),r=q(new i(r),e,t),n=J(r,e<=r.e||r.e<=i.toExpNeg,e)),r.isNeg()&&!r.isZero()?`-`+n:n},U.toSignificantDigits=U.toSD=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(G(e,1,Or),t===void 0?t=r.rounding:G(t,0,8)),q(new r(n),e,t)},U.toString=function(){var e=this,t=e.constructor,n=J(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?`-`+n:n},U.truncated=U.trunc=function(){return q(new this.constructor(this),this.e+1,1)},U.valueOf=U.toJSON=function(){var e=this,t=e.constructor,n=J(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?`-`+n:n};function W(e){var t,n,r,i=e.length-1,a=``,o=e[0];if(i>0){for(a+=o,t=1;t<i;t++)r=e[t]+``,n=H-r.length,n&&(a+=Qr(n)),a+=r;o=e[t],r=o+``,n=H-r.length,n&&(a+=Qr(n))}else if(o===0)return`0`;for(;o%10==0;)o/=10;return a+o}function G(e,t,n){if(e!==~~e||e<t||e>n)throw Error(Fr+e)}function Kr(e,t,n,r){var i,a,o,s;for(a=e[0];a>=10;a/=10)--t;return--t<0?(t+=H,i=0):(i=Math.ceil((t+1)/H),t%=H),a=B(10,H-t),s=e[i]%a|0,r==null?t<3?(t==0?s=s/100|0:t==1&&(s=s/10|0),o=n<4&&s==99999||n>3&&s==49999||s==5e4||s==0):o=(n<4&&s+1==a||n>3&&s+1==a/2)&&(e[i+1]/a/100|0)==B(10,t-2)-1||(s==a/2||s==0)&&(e[i+1]/a/100|0)==0:t<4?(t==0?s=s/1e3|0:t==1?s=s/100|0:t==2&&(s=s/10|0),o=(r||n<4)&&s==9999||!r&&n>3&&s==4999):o=((r||n<4)&&s+1==a||!r&&n>3&&s+1==a/2)&&(e[i+1]/a/1e3|0)==B(10,t-3)-1,o}function qr(e,t,n){for(var r,i=[0],a,o=0,s=e.length;o<s;){for(a=i.length;a--;)i[a]*=t;for(i[0]+=kr.indexOf(e.charAt(o++)),r=0;r<i.length;r++)i[r]>n-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/n|0,i[r]%=n)}return i.reverse()}function Jr(e,t){var n,r,i;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),i=(1/li(4,n)).toString()):(n=16,i=`2.3283064365386962890625e-10`),e.precision+=n,t=ci(e,1,t.times(i),new e(1));for(var a=n;a--;){var o=t.times(t);t=o.times(o).minus(o).times(8).plus(1)}return e.precision-=n,t}var K=(function(){function e(e,t,n){var r,i=0,a=e.length;for(e=e.slice();a--;)r=e[a]*t+i,e[a]=r%n|0,i=r/n|0;return i&&e.unshift(i),e}function t(e,t,n,r){var i,a;if(n!=r)a=n>r?1:-1;else for(i=a=0;i<n;i++)if(e[i]!=t[i]){a=e[i]>t[i]?1:-1;break}return a}function n(e,t,n,r){for(var i=0;n--;)e[n]-=i,i=e[n]<t[n]?1:0,e[n]=i*r+e[n]-t[n];for(;!e[0]&&e.length>1;)e.shift()}return function(r,i,a,o,s,c){var l,u,d,f,p,m,h,g,_,v,y,b,x,S,ee,C,te,w,T,ne,E=r.constructor,re=r.s==i.s?1:-1,D=r.d,O=i.d;if(!D||!D[0]||!O||!O[0])return new E(!r.s||!i.s||(D?O&&D[0]==O[0]:!O)?NaN:D&&D[0]==0||!O?re*0:re/0);for(c?(p=1,u=r.e-i.e):(c=V,p=H,u=z(r.e/p)-z(i.e/p)),T=O.length,te=D.length,_=new E(re),v=_.d=[],d=0;O[d]==(D[d]||0);d++);if(O[d]>(D[d]||0)&&u--,a==null?(S=a=E.precision,o=E.rounding):S=s?a+(r.e-i.e)+1:a,S<0)v.push(1),m=!0;else{if(S=S/p+2|0,d=0,T==1){for(f=0,O=O[0],S++;(d<te||f)&&S--;d++)ee=f*c+(D[d]||0),v[d]=ee/O|0,f=ee%O|0;m=f||d<te}else{for(f=c/(O[0]+1)|0,f>1&&(O=e(O,f,c),D=e(D,f,c),T=O.length,te=D.length),C=T,y=D.slice(0,T),b=y.length;b<T;)y[b++]=0;ne=O.slice(),ne.unshift(0),w=O[0],O[1]>=c/2&&++w;do f=0,l=t(O,y,T,b),l<0?(x=y[0],T!=b&&(x=x*c+(y[1]||0)),f=x/w|0,f>1?(f>=c&&(f=c-1),h=e(O,f,c),g=h.length,b=y.length,l=t(h,y,g,b),l==1&&(f--,n(h,T<g?ne:O,g,c))):(f==0&&(l=f=1),h=O.slice()),g=h.length,g<b&&h.unshift(0),n(y,h,b,c),l==-1&&(b=y.length,l=t(O,y,T,b),l<1&&(f++,n(y,T<b?ne:O,b,c))),b=y.length):l===0&&(f++,y=[0]),v[d++]=f,l&&y[0]?y[b++]=D[C]||0:(y=[D[C]],b=1);while((C++<te||y[0]!==void 0)&&S--);m=y[0]!==void 0}v[0]||v.shift()}if(p==1)_.e=u,Nr=m;else{for(d=1,f=v[0];f>=10;f/=10)d++;_.e=d+u*p-1,q(_,s?a+_.e+1:a,o,m)}return _}})();function q(e,t,n,r){var i,a,o,s,c,l,u,d,f,p=e.constructor;out:if(t!=null){if(d=e.d,!d)return e;for(i=1,s=d[0];s>=10;s/=10)i++;if(a=t-i,a<0)a+=H,o=t,u=d[f=0],c=u/B(10,i-o-1)%10|0;else if(f=Math.ceil((a+1)/H),s=d.length,f>=s)if(r){for(;s++<=f;)d.push(0);u=c=0,i=1,a%=H,o=a-H+1}else break out;else{for(u=s=d[f],i=1;s>=10;s/=10)i++;a%=H,o=a-H+i,c=o<0?0:u/B(10,i-o-1)%10|0}if(r=r||t<0||d[f+1]!==void 0||(o<0?u:u%B(10,i-o-1)),l=n<4?(c||r)&&(n==0||n==(e.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(a>0?o>0?u/B(10,i-o):0:d[f-1])%10&1||n==(e.s<0?8:7)),t<1||!d[0])return d.length=0,l?(t-=e.e+1,d[0]=B(10,(H-t%H)%H),e.e=-t||0):d[0]=e.e=0,e;if(a==0?(d.length=f,s=1,f--):(d.length=f+1,s=B(10,H-a),d[f]=o>0?(u/B(10,i-o)%B(10,o)|0)*s:0),l)for(;;)if(f==0){for(a=1,o=d[0];o>=10;o/=10)a++;for(o=d[0]+=s,s=1;o>=10;o/=10)s++;a!=s&&(e.e++,d[0]==V&&(d[0]=1));break}else{if(d[f]+=s,d[f]!=V)break;d[f--]=0,s=1}for(a=d.length;d[--a]===0;)d.pop()}return R&&(e.e>p.maxE?(e.d=null,e.e=NaN):e.e<p.minE&&(e.e=0,e.d=[0])),e}function J(e,t,n){if(!e.isFinite())return ii(e);var r,i=e.e,a=W(e.d),o=a.length;return t?(n&&(r=n-o)>0?a=a.charAt(0)+`.`+a.slice(1)+Qr(r):o>1&&(a=a.charAt(0)+`.`+a.slice(1)),a=a+(e.e<0?`e`:`e+`)+e.e):i<0?(a=`0.`+Qr(-i-1)+a,n&&(r=n-o)>0&&(a+=Qr(r))):i>=o?(a+=Qr(i+1-o),n&&(r=n-i-1)>0&&(a=a+`.`+Qr(r))):((r=i+1)<o&&(a=a.slice(0,r)+`.`+a.slice(r)),n&&(r=n-o)>0&&(i+1===o&&(a+=`.`),a+=Qr(r))),a}function Yr(e,t){var n=e[0];for(t*=H;n>=10;n/=10)t++;return t}function Xr(e,t,n){if(t>Wr)throw R=!0,n&&(e.precision=n),Error(Ir);return q(new e(Ar),t,1,!0)}function Y(e,t,n){if(t>Gr)throw Error(Ir);return q(new e(jr),t,n,!0)}function Zr(e){var t=e.length-1,n=t*H+1;if(t=e[t],t){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function Qr(e){for(var t=``;e--;)t+=`0`;return t}function $r(e,t,n,r){var i,a=new e(1),o=Math.ceil(r/H+4);for(R=!1;;){if(n%2&&(a=a.times(t),fi(a.d,o)&&(i=!0)),n=z(n/2),n===0){n=a.d.length-1,i&&a.d[n]===0&&++a.d[n];break}t=t.times(t),fi(t.d,o)}return R=!0,a}function ei(e){return e.d[e.d.length-1]&1}function ti(e,t,n){for(var r,i,a=new e(t[0]),o=0;++o<t.length;){if(i=new e(t[o]),!i.s){a=i;break}r=a.cmp(i),(r===n||r===0&&a.s===n)&&(a=i)}return a}function ni(e,t){var n,r,i,a,o,s,c,l=0,u=0,d=0,f=e.constructor,p=f.rounding,m=f.precision;if(!e.d||!e.d[0]||e.e>17)return new f(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(R=!1,c=m):c=t,s=new f(.03125);e.e>-2;)e=e.times(s),d+=5;for(r=Math.log(B(2,d))/Math.LN10*2+5|0,c+=r,n=a=o=new f(1),f.precision=c;;){if(a=q(a.times(e),c,1),n=n.times(++u),s=o.plus(K(a,n,c,1)),W(s.d).slice(0,c)===W(o.d).slice(0,c)){for(i=d;i--;)o=q(o.times(o),c,1);if(t==null)if(l<3&&Kr(o.d,c-r,p,l))f.precision=c+=10,n=a=s=new f(1),u=0,l++;else return q(o,f.precision=m,p,R=!0);else return f.precision=m,o}o=s}}function ri(e,t){var n,r,i,a,o,s,c,l,u,d,f,p=1,m=10,h=e,g=h.d,_=h.constructor,v=_.rounding,y=_.precision;if(h.s<0||!g||!g[0]||!h.e&&g[0]==1&&g.length==1)return new _(g&&!g[0]?-1/0:h.s==1?g?0:h:NaN);if(t==null?(R=!1,u=y):u=t,_.precision=u+=m,n=W(g),r=n.charAt(0),Math.abs(a=h.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)h=h.times(e),n=W(h.d),r=n.charAt(0),p++;a=h.e,r>1?(h=new _(`0.`+n),a++):h=new _(r+`.`+n.slice(1))}else return l=Xr(_,u+2,y).times(a+``),h=ri(new _(r+`.`+n.slice(1)),u-m).plus(l),_.precision=y,t==null?q(h,y,v,R=!0):h;for(d=h,c=o=h=K(h.minus(1),h.plus(1),u,1),f=q(h.times(h),u,1),i=3;;){if(o=q(o.times(f),u,1),l=c.plus(K(o,new _(i),u,1)),W(l.d).slice(0,u)===W(c.d).slice(0,u))if(c=c.times(2),a!==0&&(c=c.plus(Xr(_,u+2,y).times(a+``))),c=K(c,new _(p),u,1),t==null)if(Kr(c.d,u-m,v,s))_.precision=u+=m,l=o=h=K(d.minus(1),d.plus(1),u,1),f=q(h.times(h),u,1),i=s=1;else return q(c,_.precision=y,v,R=!0);else return _.precision=y,c;c=l,i+=2}}function ii(e){return String(e.s*e.s/0)}function ai(e,t){var n,r,i;for((n=t.indexOf(`.`))>-1&&(t=t.replace(`.`,``)),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;r++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(r,i),t){if(i-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%H,n<0&&(r+=H),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=H;r<i;)e.d.push(+t.slice(r,r+=H));t=t.slice(r),r=H-t.length}else r-=i;for(;r--;)t+=`0`;e.d.push(+t),R&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function oi(e,t){var n,r,i,a,o,s,c,l,u;if(t.indexOf(`_`)>-1){if(t=t.replace(/(\d)_(?=\d)/g,`$1`),Hr.test(t))return ai(e,t)}else if(t===`Infinity`||t===`NaN`)return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Br.test(t))n=16,t=t.toLowerCase();else if(zr.test(t))n=2;else if(Vr.test(t))n=8;else throw Error(Fr+t);for(a=t.search(/p/i),a>0?(c=+t.slice(a+1),t=t.substring(2,a)):t=t.slice(2),a=t.indexOf(`.`),o=a>=0,r=e.constructor,o&&(t=t.replace(`.`,``),s=t.length,a=s-a,i=$r(r,new r(n),a,a*2)),l=qr(t,n,V),u=l.length-1,a=u;l[a]===0;--a)l.pop();return a<0?new r(e.s*0):(e.e=Yr(l,u),e.d=l,R=!1,o&&(e=K(e,i,s*4)),c&&(e=e.times(Math.abs(c)<54?B(2,c):ea.pow(2,c))),R=!0,e)}function si(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:ci(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/li(5,n)),t=ci(e,2,t,t);for(var i,a=new e(5),o=new e(16),s=new e(20);n--;)i=t.times(t),t=t.times(a.plus(i.times(o.times(i).minus(s))));return t}function ci(e,t,n,r,i){var a,o,s,c,l=1,u=e.precision,d=Math.ceil(u/H);for(R=!1,c=n.times(n),s=new e(r);;){if(o=K(s.times(c),new e(t++*t++),u,1),s=i?r.plus(o):r.minus(o),r=K(o.times(c),new e(t++*t++),u,1),o=s.plus(r),o.d[d]!==void 0){for(a=d;o.d[a]===s.d[a]&&a--;);if(a==-1)break}a=s,s=r,r=o,o=a,l++}return R=!0,o.d.length=d+1,o}function li(e,t){for(var n=e;--t;)n*=e;return n}function ui(e,t){var n,r=t.s<0,i=Y(e,e.precision,1),a=i.times(.5);if(t=t.abs(),t.lte(a))return L=r?4:1,t;if(n=t.divToInt(i),n.isZero())L=r?3:2;else{if(t=t.minus(n.times(i)),t.lte(a))return L=ei(n)?r?2:3:r?4:1,t;L=ei(n)?r?1:4:r?3:2}return t.minus(i).abs()}function di(e,t,n,r){var i,a,o,s,c,l,u,d,f,p=e.constructor,m=n!==void 0;if(m?(G(n,1,Or),r===void 0?r=p.rounding:G(r,0,8)):(n=p.precision,r=p.rounding),!e.isFinite())u=ii(e);else{for(u=J(e),o=u.indexOf(`.`),m?(i=2,t==16?n=n*4-3:t==8&&(n=n*3-2)):i=t,o>=0&&(u=u.replace(`.`,``),f=new p(1),f.e=u.length-o,f.d=qr(J(f),10,i),f.e=f.d.length),d=qr(u,10,i),a=c=d.length;d[--c]==0;)d.pop();if(!d[0])u=m?`0p+0`:`0`;else{if(o<0?a--:(e=new p(e),e.d=d,e.e=a,e=K(e,f,n,r,0,i),d=e.d,a=e.e,l=Nr),o=d[n],s=i/2,l||=d[n+1]!==void 0,l=r<4?(o!==void 0||l)&&(r===0||r===(e.s<0?3:2)):o>s||o===s&&(r===4||l||r===6&&d[n-1]&1||r===(e.s<0?8:7)),d.length=n,l)for(;++d[--n]>i-1;)d[n]=0,n||(++a,d.unshift(1));for(c=d.length;!d[c-1];--c);for(o=0,u=``;o<c;o++)u+=kr.charAt(d[o]);if(m){if(c>1)if(t==16||t==8){for(o=t==16?4:3,--c;c%o;c++)u+=`0`;for(d=qr(u,i,t),c=d.length;!d[c-1];--c);for(o=1,u=`1.`;o<c;o++)u+=kr.charAt(d[o])}else u=u.charAt(0)+`.`+u.slice(1);u=u+(a<0?`p`:`p+`)+a}else if(a<0){for(;++a;)u=`0`+u;u=`0.`+u}else if(++a>c)for(a-=c;a--;)u+=`0`;else a<c&&(u=u.slice(0,a)+`.`+u.slice(a))}u=(t==16?`0x`:t==2?`0b`:t==8?`0o`:``)+u}return e.s<0?`-`+u:u}function fi(e,t){if(e.length>t)return e.length=t,!0}function pi(e){return new this(e).abs()}function mi(e){return new this(e).acos()}function hi(e){return new this(e).acosh()}function gi(e,t){return new this(e).plus(t)}function _i(e){return new this(e).asin()}function vi(e){return new this(e).asinh()}function yi(e){return new this(e).atan()}function bi(e){return new this(e).atanh()}function xi(e,t){e=new this(e),t=new this(t);var n,r=this.precision,i=this.rounding,a=r+4;return!e.s||!t.s?n=new this(NaN):!e.d&&!t.d?(n=Y(this,a,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?Y(this,r,i):new this(0),n.s=e.s):!e.d||t.isZero()?(n=Y(this,a,1).times(.5),n.s=e.s):t.s<0?(this.precision=a,this.rounding=1,n=this.atan(K(e,t,a,1)),t=Y(this,a,1),this.precision=r,this.rounding=i,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(K(e,t,a,1)),n}function Si(e){return new this(e).cbrt()}function Ci(e){return q(e=new this(e),e.e+1,2)}function wi(e,t,n){return new this(e).clamp(t,n)}function Ti(e){if(!e||typeof e!=`object`)throw Error(Pr+`Object expected`);var t,n,r,i=e.defaults===!0,a=[`precision`,1,Or,`rounding`,0,8,`toExpNeg`,-Dr,0,`toExpPos`,0,Dr,`maxE`,0,Dr,`minE`,-Dr,0,`modulo`,0,9];for(t=0;t<a.length;t+=3)if(n=a[t],i&&(this[n]=Mr[n]),(r=e[n])!==void 0)if(z(r)===r&&r>=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(Fr+n+`: `+r);if(n=`crypto`,i&&(this[n]=Mr[n]),(r=e[n])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(p!==void 0&&p&&(p.getRandomValues||p.randomBytes))this[n]=!0;else throw Error(Lr);else this[n]=!1;else throw Error(Fr+n+`: `+r);return this}function Ei(e){return new this(e).cos()}function Di(e){return new this(e).cosh()}function Oi(e){var t,n,r;function i(e){var t,n,r,a=this;if(!(a instanceof i))return new i(e);if(a.constructor=i,Ni(e)){a.s=e.s,R?!e.d||e.e>i.maxE?(a.e=NaN,a.d=null):e.e<i.minE?(a.e=0,a.d=[0]):(a.e=e.e,a.d=e.d.slice()):(a.e=e.e,a.d=e.d?e.d.slice():e.d);return}if(r=typeof e,r===`number`){if(e===0){a.s=1/e<0?-1:1,a.e=0,a.d=[0];return}if(e<0?(e=-e,a.s=-1):a.s=1,e===~~e&&e<1e7){for(t=0,n=e;n>=10;n/=10)t++;R?t>i.maxE?(a.e=NaN,a.d=null):t<i.minE?(a.e=0,a.d=[0]):(a.e=t,a.d=[e]):(a.e=t,a.d=[e]);return}if(e*0!=0){e||(a.s=NaN),a.e=NaN,a.d=null;return}return ai(a,e.toString())}if(r===`string`)return(n=e.charCodeAt(0))===45?(e=e.slice(1),a.s=-1):(n===43&&(e=e.slice(1)),a.s=1),Hr.test(e)?ai(a,e):oi(a,e);if(r===`bigint`)return e<0?(e=-e,a.s=-1):a.s=1,ai(a,e.toString());throw Error(Fr+e)}if(i.prototype=U,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=Ti,i.clone=Oi,i.isDecimal=Ni,i.abs=pi,i.acos=mi,i.acosh=hi,i.add=gi,i.asin=_i,i.asinh=vi,i.atan=yi,i.atanh=bi,i.atan2=xi,i.cbrt=Si,i.ceil=Ci,i.clamp=wi,i.cos=Ei,i.cosh=Di,i.div=ki,i.exp=Ai,i.floor=ji,i.hypot=Mi,i.ln=Pi,i.log=Fi,i.log10=Li,i.log2=Ii,i.max=Ri,i.min=zi,i.mod=Bi,i.mul=Vi,i.pow=Hi,i.random=Ui,i.round=Wi,i.sign=Gi,i.sin=Ki,i.sinh=qi,i.sqrt=Ji,i.sub=Yi,i.sum=Xi,i.tan=Zi,i.tanh=Qi,i.trunc=$i,e===void 0&&(e={}),e&&e.defaults!==!0)for(r=[`precision`,`rounding`,`toExpNeg`,`toExpPos`,`maxE`,`minE`,`modulo`,`crypto`],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return i.config(e),i}function ki(e,t){return new this(e).div(t)}function Ai(e){return new this(e).exp()}function ji(e){return q(e=new this(e),e.e+1,3)}function Mi(){var e,t,n=new this(0);for(R=!1,e=0;e<arguments.length;)if(t=new this(arguments[e++]),t.d)n.d&&(n=n.plus(t.times(t)));else{if(t.s)return R=!0,new this(1/0);n=t}return R=!0,n.sqrt()}function Ni(e){return e instanceof ea||e&&e.toStringTag===Rr||!1}function Pi(e){return new this(e).ln()}function Fi(e,t){return new this(e).log(t)}function Ii(e){return new this(e).log(2)}function Li(e){return new this(e).log(10)}function Ri(){return ti(this,arguments,-1)}function zi(){return ti(this,arguments,1)}function Bi(e,t){return new this(e).mod(t)}function Vi(e,t){return new this(e).mul(t)}function Hi(e,t){return new this(e).pow(t)}function Ui(e){var t,n,r,i,a=0,o=new this(1),s=[];if(e===void 0?e=this.precision:G(e,1,Or),r=Math.ceil(e/H),this.crypto)if(p.getRandomValues)for(t=p.getRandomValues(new Uint32Array(r));a<r;)i=t[a],i>=429e7?t[a]=p.getRandomValues(new Uint32Array(1))[0]:s[a++]=i%1e7;else if(p.randomBytes){for(t=p.randomBytes(r*=4);a<r;)i=t[a]+(t[a+1]<<8)+(t[a+2]<<16)+((t[a+3]&127)<<24),i>=214e7?p.randomBytes(4).copy(t,a):(s.push(i%1e7),a+=4);a=r/4}else throw Error(Lr);else for(;a<r;)s[a++]=Math.random()*1e7|0;for(r=s[--a],e%=H,r&&e&&(i=B(10,H-e),s[a]=(r/i|0)*i);s[a]===0;a--)s.pop();if(a<0)n=0,s=[0];else{for(n=-1;s[0]===0;n-=H)s.shift();for(r=1,i=s[0];i>=10;i/=10)r++;r<H&&(n-=H-r)}return o.e=n,o.d=s,o}function Wi(e){return q(e=new this(e),e.e+1,this.rounding)}function Gi(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Ki(e){return new this(e).sin()}function qi(e){return new this(e).sinh()}function Ji(e){return new this(e).sqrt()}function Yi(e,t){return new this(e).sub(t)}function Xi(){var e=0,t=arguments,n=new this(t[e]);for(R=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return R=!0,q(n,this.precision,this.rounding)}function Zi(e){return new this(e).tan()}function Qi(e){return new this(e).tanh()}function $i(e){return q(e=new this(e),e.e+1,1)}U[Symbol.for(`nodejs.util.inspect.custom`)]=U.toString,U[Symbol.toStringTag]=`Decimal`;var ea=U.constructor=Oi(Mr);Ar=new ea(Ar),jr=new ea(jr);var ta=ea,na=`BigNumber`,ra=[`?on`,`config`],ia=ar(na,ra,e=>{var{on:t,config:n}=e,r=ta.clone({precision:n.precision,modulo:ta.EUCLID});return r.prototype=Object.create(r.prototype),r.prototype.type=`BigNumber`,r.prototype.isBigNumber=!0,r.prototype.toJSON=function(){return{mathjs:`BigNumber`,value:this.toString()}},r.fromJSON=function(e){return new r(e.value)},t&&t(`config`,function(e,t){e.precision!==t.precision&&r.config({precision:e.precision})}),r},{isClass:!0});const X=Math.cosh||function(e){return Math.abs(e)<1e-9?1-e:(Math.exp(e)+Math.exp(-e))*.5},Z=Math.sinh||function(e){return Math.abs(e)<1e-9?e:(Math.exp(e)-Math.exp(-e))*.5},aa=function(e){let t=Math.PI/4;if(-t>e||e>t)return Math.cos(e)-1;let n=e*e;return n*(n*(n*(n*(n*(n*(n*(n/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-1/2)},oa=function(e,t){return e=Math.abs(e),t=Math.abs(t),e<t&&([e,t]=[t,e]),e<1e8?Math.sqrt(e*e+t*t):(t/=e,e*Math.sqrt(1+t*t))},sa=function(){throw SyntaxError(`Invalid Param`)};function ca(e,t){let n=Math.abs(e),r=Math.abs(t);return e===0?Math.log(r):t===0?Math.log(n):n<3e3&&r<3e3?Math.log(e*e+t*t)*.5:(e*=.5,t*=.5,.5*Math.log(e*e+t*t)+Math.LN2)}const la={re:0,im:0},ua=function(e,t){let n=la;if(e==null)n.re=n.im=0;else if(t!==void 0)n.re=e,n.im=t;else switch(typeof e){case`object`:if(`im`in e&&`re`in e)n.re=e.re,n.im=e.im;else if(`abs`in e&&`arg`in e){if(!isFinite(e.abs)&&isFinite(e.arg))return Q.INFINITY;n.re=e.abs*Math.cos(e.arg),n.im=e.abs*Math.sin(e.arg)}else if(`r`in e&&`phi`in e){if(!isFinite(e.r)&&isFinite(e.phi))return Q.INFINITY;n.re=e.r*Math.cos(e.phi),n.im=e.r*Math.sin(e.phi)}else e.length===2?(n.re=e[0],n.im=e[1]):sa();break;case`string`:n.im=n.re=0;let t=e.replace(/_/g,``).match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),r=1,i=0;t===null&&sa();for(let e=0;e<t.length;e++){let a=t[e];a===` `||a===` `||a===`
|
|
123
|
+
`||(a===`+`?r++:a===`-`?i++:a===`i`||a===`I`?(r+i===0&&sa(),t[e+1]!==` `&&!isNaN(t[e+1])?(n.im+=parseFloat((i%2?`-`:``)+t[e+1]),e++):n.im+=parseFloat((i%2?`-`:``)+`1`),r=i=0):((r+i===0||isNaN(a))&&sa(),t[e+1]===`i`||t[e+1]===`I`?(n.im+=parseFloat((i%2?`-`:``)+a),e++):n.re+=parseFloat((i%2?`-`:``)+a),r=i=0))}r+i>0&&sa();break;case`number`:n.im=0,n.re=e;break;default:sa()}return isNaN(n.re)||isNaN(n.im),n};function Q(e,t){if(!(this instanceof Q))return new Q(e,t);let n=ua(e,t);this.re=n.re,this.im=n.im}Q.prototype={re:0,im:0,sign:function(){let e=oa(this.re,this.im);return new Q(this.re/e,this.im/e)},add:function(e,t){let n=ua(e,t),r=this.isInfinite(),i=!(isFinite(n.re)&&isFinite(n.im));return r||i?r&&i?Q.NAN:Q.INFINITY:new Q(this.re+n.re,this.im+n.im)},sub:function(e,t){let n=ua(e,t),r=this.isInfinite(),i=!(isFinite(n.re)&&isFinite(n.im));return r||i?r&&i?Q.NAN:Q.INFINITY:new Q(this.re-n.re,this.im-n.im)},mul:function(e,t){let n=ua(e,t),r=this.isInfinite(),i=!(isFinite(n.re)&&isFinite(n.im)),a=this.re===0&&this.im===0,o=n.re===0&&n.im===0;return r&&o||i&&a?Q.NAN:r||i?Q.INFINITY:n.im===0&&this.im===0?new Q(this.re*n.re,0):new Q(this.re*n.re-this.im*n.im,this.re*n.im+this.im*n.re)},div:function(e,t){let n=ua(e,t),r=this.isInfinite(),i=!(isFinite(n.re)&&isFinite(n.im)),a=this.re===0&&this.im===0,o=n.re===0&&n.im===0;if(a&&o||r&&i)return Q.NAN;if(o||r)return Q.INFINITY;if(a||i)return Q.ZERO;if(n.im===0)return new Q(this.re/n.re,this.im/n.re);if(Math.abs(n.re)<Math.abs(n.im)){let e=n.re/n.im,t=n.re*e+n.im;return new Q((this.re*e+this.im)/t,(this.im*e-this.re)/t)}else{let e=n.im/n.re,t=n.im*e+n.re;return new Q((this.re+this.im*e)/t,(this.im-this.re*e)/t)}},pow:function(e,t){let n=ua(e,t),r=this.re===0&&this.im===0,i=n.re===0&&n.im===0;if(i)return Q.ONE;if(n.im===0){if(this.im===0&&this.re>0)return new Q(this.re**+n.re,0);if(this.re===0)switch((n.re%4+4)%4){case 0:return new Q(this.im**+n.re,0);case 1:return new Q(0,this.im**+n.re);case 2:return new Q(-(this.im**+n.re),0);case 3:return new Q(0,-(this.im**+n.re))}}if(r&&n.re>0)return Q.ZERO;let a=Math.atan2(this.im,this.re),o=ca(this.re,this.im),s=Math.exp(n.re*o-n.im*a),c=n.im*o+n.re*a;return new Q(s*Math.cos(c),s*Math.sin(c))},sqrt:function(){let e=this.re,t=this.im;if(t===0)return e>=0?new Q(Math.sqrt(e),0):new Q(0,Math.sqrt(-e));let n=oa(e,t),r=Math.sqrt(.5*(n+Math.abs(e))),i=Math.abs(t)/(2*r);return e>=0?new Q(r,t<0?-i:i):new Q(i,t<0?-r:r)},exp:function(){let e=Math.exp(this.re);return this.im===0?new Q(e,0):new Q(e*Math.cos(this.im),e*Math.sin(this.im))},expm1:function(){let e=this.re,t=this.im;return new Q(Math.expm1(e)*Math.cos(t)+aa(t),Math.exp(e)*Math.sin(t))},log:function(){let e=this.re,t=this.im;return t===0&&e>0?new Q(Math.log(e),0):new Q(ca(e,t),Math.atan2(t,e))},abs:function(){return oa(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){let e=this.re,t=this.im;return new Q(Math.sin(e)*X(t),Math.cos(e)*Z(t))},cos:function(){let e=this.re,t=this.im;return new Q(Math.cos(e)*X(t),-Math.sin(e)*Z(t))},tan:function(){let e=2*this.re,t=2*this.im,n=Math.cos(e)+X(t);return new Q(Math.sin(e)/n,Z(t)/n)},cot:function(){let e=2*this.re,t=2*this.im,n=Math.cos(e)-X(t);return new Q(-Math.sin(e)/n,Z(t)/n)},sec:function(){let e=this.re,t=this.im,n=.5*X(2*t)+.5*Math.cos(2*e);return new Q(Math.cos(e)*X(t)/n,Math.sin(e)*Z(t)/n)},csc:function(){let e=this.re,t=this.im,n=.5*X(2*t)-.5*Math.cos(2*e);return new Q(Math.sin(e)*X(t)/n,-Math.cos(e)*Z(t)/n)},asin:function(){let e=this.re,t=this.im,n=new Q(t*t-e*e+1,-2*e*t).sqrt(),r=new Q(n.re-t,n.im+e).log();return new Q(r.im,-r.re)},acos:function(){let e=this.re,t=this.im,n=new Q(t*t-e*e+1,-2*e*t).sqrt(),r=new Q(n.re-t,n.im+e).log();return new Q(Math.PI/2-r.im,r.re)},atan:function(){let e=this.re,t=this.im;if(e===0){if(t===1)return new Q(0,1/0);if(t===-1)return new Q(0,-1/0)}let n=e*e+(1-t)*(1-t),r=new Q((1-t*t-e*e)/n,-2*e/n).log();return new Q(-.5*r.im,.5*r.re)},acot:function(){let e=this.re,t=this.im;if(t===0)return new Q(Math.atan2(1,e),0);let n=e*e+t*t;return n===0?new Q(e===0?0:e/0,t===0?0:-t/0).atan():new Q(e/n,-t/n).atan()},asec:function(){let e=this.re,t=this.im;if(e===0&&t===0)return new Q(0,1/0);let n=e*e+t*t;return n===0?new Q(e===0?0:e/0,t===0?0:-t/0).acos():new Q(e/n,-t/n).acos()},acsc:function(){let e=this.re,t=this.im;if(e===0&&t===0)return new Q(Math.PI/2,1/0);let n=e*e+t*t;return n===0?new Q(e===0?0:e/0,t===0?0:-t/0).asin():new Q(e/n,-t/n).asin()},sinh:function(){let e=this.re,t=this.im;return new Q(Z(e)*Math.cos(t),X(e)*Math.sin(t))},cosh:function(){let e=this.re,t=this.im;return new Q(X(e)*Math.cos(t),Z(e)*Math.sin(t))},tanh:function(){let e=2*this.re,t=2*this.im,n=X(e)+Math.cos(t);return new Q(Z(e)/n,Math.sin(t)/n)},coth:function(){let e=2*this.re,t=2*this.im,n=X(e)-Math.cos(t);return new Q(Z(e)/n,-Math.sin(t)/n)},csch:function(){let e=this.re,t=this.im,n=Math.cos(2*t)-X(2*e);return new Q(-2*Z(e)*Math.cos(t)/n,2*X(e)*Math.sin(t)/n)},sech:function(){let e=this.re,t=this.im,n=Math.cos(2*t)+X(2*e);return new Q(2*X(e)*Math.cos(t)/n,-2*Z(e)*Math.sin(t)/n)},asinh:function(){let e=this.im;this.im=-this.re,this.re=e;let t=this.asin();return this.re=-this.im,this.im=e,e=t.re,t.re=-t.im,t.im=e,t},acosh:function(){let e=this.acos();if(e.im<=0){let t=e.re;e.re=-e.im,e.im=t}else{let t=e.im;e.im=-e.re,e.re=t}return e},atanh:function(){let e=this.re,t=this.im,n=e>1&&t===0,r=1-e,i=1+e,a=r*r+t*t,o=a===0?new Q(e===-1?0:e/0,t===0?0:t/0):new Q((i*r-t*t)/a,(t*r+i*t)/a),s=o.re;return o.re=ca(o.re,o.im)/2,o.im=Math.atan2(o.im,s)/2,n&&(o.im=-o.im),o},acoth:function(){let e=this.re,t=this.im;if(e===0&&t===0)return new Q(0,Math.PI/2);let n=e*e+t*t;return n===0?new Q(e===0?0:e/0,t===0?0:-t/0).atanh():new Q(e/n,-t/n).atanh()},acsch:function(){let e=this.re,t=this.im;if(t===0)return new Q(e===0?1/0:Math.log(e+Math.sqrt(e*e+1)),0);let n=e*e+t*t;return n===0?new Q(e===0?0:e/0,t===0?0:-t/0).asinh():new Q(e/n,-t/n).asinh()},asech:function(){let e=this.re,t=this.im;if(this.isZero())return Q.INFINITY;let n=e*e+t*t;return n===0?new Q(e===0?0:e/0,t===0?0:-t/0).acosh():new Q(e/n,-t/n).acosh()},inverse:function(){if(this.isZero())return Q.INFINITY;if(this.isInfinite())return Q.ZERO;let e=this.re,t=this.im,n=e*e+t*t;return new Q(e/n,-t/n)},conjugate:function(){return new Q(this.re,-this.im)},neg:function(){return new Q(-this.re,-this.im)},ceil:function(e){return e=10**(e||0),new Q(Math.ceil(this.re*e)/e,Math.ceil(this.im*e)/e)},floor:function(e){return e=10**(e||0),new Q(Math.floor(this.re*e)/e,Math.floor(this.im*e)/e)},round:function(e){return e=10**(e||0),new Q(Math.round(this.re*e)/e,Math.round(this.im*e)/e)},equals:function(e,t){let n=ua(e,t);return Math.abs(n.re-this.re)<=Q.EPSILON&&Math.abs(n.im-this.im)<=Q.EPSILON},clone:function(){return new Q(this.re,this.im)},toString:function(){let e=this.re,t=this.im,n=``;return this.isNaN()?`NaN`:this.isInfinite()?`Infinity`:(Math.abs(e)<Q.EPSILON&&(e=0),Math.abs(t)<Q.EPSILON&&(t=0),t===0?n+e:(e===0?t<0&&(t=-t,n+=`-`):(n+=e,n+=` `,t<0?(t=-t,n+=`-`):n+=`+`,n+=` `),t!==1&&(n+=t),n+`i`))},toVector:function(){return[this.re,this.im]},valueOf:function(){return this.im===0?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return this.im===0&&this.re===0},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!this.isFinite()}},Q.ZERO=new Q(0,0),Q.ONE=new Q(1,0),Q.I=new Q(0,1),Q.PI=new Q(Math.PI,0),Q.E=new Q(Math.E,0),Q.INFINITY=new Q(1/0,1/0),Q.NAN=new Q(NaN,NaN),Q.EPSILON=1e-15;var da=`Complex`,fa=[],pa=ar(da,fa,()=>(Object.defineProperty(Q,`name`,{value:`Complex`}),Q.prototype.constructor=Q,Q.prototype.type=`Complex`,Q.prototype.isComplex=!0,Q.prototype.toJSON=function(){return{mathjs:`Complex`,re:this.re,im:this.im}},Q.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},Q.prototype.format=function(e){var t=``,n=this.im,r=this.re,i=gn(this.re,e),a=gn(this.im,e),o=M(e)?e:e?e.precision:null;if(o!==null){var s=10**-o;Math.abs(r/n)<s&&(r=0),Math.abs(n/r)<s&&(n=0)}return t=n===0?i:r===0?n===1?`i`:n===-1?`-i`:a+`i`:n<0?n===-1?i+` - i`:i+` - `+a.substring(1)+`i`:n===1?i+` + i`:i+` + `+a+`i`,t},Q.fromPolar=function(e){switch(arguments.length){case 1:var t=arguments[0];if(typeof t==`object`)return Q(t);throw TypeError(`Input has to be an object with r and phi keys.`);case 2:var n=arguments[0],r=arguments[1];if(M(n)){if(Ct(r)&&r.hasBase(`ANGLE`)&&(r=r.toNumber(`rad`)),M(r))return new Q({r:n,phi:r});throw TypeError(`Phi is not a number nor an angle unit.`)}else throw TypeError(`Radius r is not a number.`);default:throw SyntaxError(`Wrong number of arguments in function fromPolar`)}},Q.prototype.valueOf=Q.prototype.toString,Q.fromJSON=function(e){return new Q(e)},Q.compare=function(e,t){return e.re>t.re?1:e.re<t.re?-1:e.im>t.im?1:e.im<t.im?-1:0},Q),{isClass:!0}),ma=o(((exports,t)=>{
|
|
124
|
+
/**
|
|
125
|
+
* @license Fraction.js v4.3.0 20/08/2023
|
|
126
|
+
* https://www.xarg.org/2014/03/rational-numbers-in-javascript/
|
|
127
|
+
*
|
|
128
|
+
* Copyright (c) 2023, Robert Eisele (robert@raw.org)
|
|
129
|
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
130
|
+
**/
|
|
131
|
+
(function(n){"use strict";var r=2e3,i={s:1,n:0,d:1};function a(e,t){if(isNaN(e=parseInt(e,10)))throw h();return e*t}function o(e,t){if(t===0)throw m();var n=Object.create(p.prototype);n.s=e<0?-1:1,e=e<0?-e:e;var r=f(e,t);return n.n=e/r,n.d=t/r,n}function s(e){for(var t={},n=e,r=2,i=4;i<=n;){for(;n%r===0;)n/=r,t[r]=(t[r]||0)+1;i+=1+2*r++}return n===e?t[e]=(t[e]||0)+1:n>1&&(t[n]=(t[n]||0)+1),t}var c=function(e,t){var n=0,r=1,o=1,s=0,c=0,l=0,u=1,d=1,f=0,p=1,_=1,v=1,y=1e7,b;if(e!=null)if(t!==void 0){if(n=e,r=t,o=n*r,n%1!=0||r%1!=0)throw g()}else switch(typeof e){case`object`:if(`d`in e&&`n`in e)n=e.n,r=e.d,`s`in e&&(n*=e.s);else if(0 in e)n=e[0],1 in e&&(r=e[1]);else throw h();o=n*r;break;case`number`:if(e<0&&(o=e,e=-e),e%1==0)n=e;else if(e>0){for(e>=1&&(d=10**Math.floor(1+Math.log(e)/Math.LN10),e/=d);p<=y&&v<=y;)if(b=(f+_)/(p+v),e===b){p+v<=y?(n=f+_,r=p+v):v>p?(n=_,r=v):(n=f,r=p);break}else e>b?(f+=_,p+=v):(_+=f,v+=p),p>y?(n=_,r=v):(n=f,r=p);n*=d}else (isNaN(e)||isNaN(t))&&(r=n=NaN);break;case`string`:if(p=e.match(/\d+|./g),p===null)throw h();if(p[f]===`-`?(o=-1,f++):p[f]===`+`&&f++,p.length===f+1?c=a(p[f++],o):p[f+1]===`.`||p[f]===`.`?(p[f]!==`.`&&(s=a(p[f++],o)),f++,(f+1===p.length||p[f+1]===`(`&&p[f+3]===`)`||p[f+1]===`'`&&p[f+3]===`'`)&&(c=a(p[f],o),u=10**p[f].length,f++),(p[f]===`(`&&p[f+2]===`)`||p[f]===`'`&&p[f+2]===`'`)&&(l=a(p[f+1],o),d=10**p[f+1].length-1,f+=3)):p[f+1]===`/`||p[f+1]===`:`?(c=a(p[f],o),u=a(p[f+2],1),f+=3):p[f+3]===`/`&&p[f+1]===` `&&(s=a(p[f],o),c=a(p[f+2],o),u=a(p[f+4],1),f+=5),p.length<=f){r=u*d,o=n=l+r*s+d*c;break}default:throw h()}if(r===0)throw m();i.s=o<0?-1:1,i.n=Math.abs(n),i.d=Math.abs(r)};function l(e,t,n){for(var r=1;t>0;e=e*e%n,t>>=1)t&1&&(r=r*e%n);return r}function u(e,t){for(;t%2==0;t/=2);for(;t%5==0;t/=5);if(t===1)return 0;for(var n=10%t,i=1;n!==1;i++)if(n=n*10%t,i>r)return 0;return i}function d(e,t,n){for(var r=1,i=l(10,n,t),a=0;a<300;a++){if(r===i)return a;r=r*10%t,i=i*10%t}return 0}function f(e,t){if(!e)return t;if(!t)return e;for(;;){if(e%=t,!e)return t;if(t%=e,!t)return e}}function p(e,t){if(c(e,t),this instanceof p)e=f(i.d,i.n),this.s=i.s,this.n=i.n/e,this.d=i.d/e;else return o(i.s*i.n,i.d)}var m=function(){return Error(`Division by Zero`)},h=function(){return Error(`Invalid argument`)},g=function(){return Error(`Parameters must be integer`)};p.prototype={s:1,n:0,d:1,abs:function(){return o(this.n,this.d)},neg:function(){return o(-this.s*this.n,this.d)},add:function(e,t){return c(e,t),o(this.s*this.n*i.d+i.s*this.d*i.n,this.d*i.d)},sub:function(e,t){return c(e,t),o(this.s*this.n*i.d-i.s*this.d*i.n,this.d*i.d)},mul:function(e,t){return c(e,t),o(this.s*i.s*this.n*i.n,this.d*i.d)},div:function(e,t){return c(e,t),o(this.s*i.s*this.n*i.d,this.d*i.n)},clone:function(){return o(this.s*this.n,this.d)},mod:function(e,t){if(isNaN(this.n)||isNaN(this.d))return new p(NaN);if(e===void 0)return o(this.s*this.n%this.d,1);if(c(e,t),i.n===0&&this.d===0)throw m();return o(this.s*(i.d*this.n)%(i.n*this.d),i.d*this.d)},gcd:function(e,t){return c(e,t),o(f(i.n,this.n)*f(i.d,this.d),i.d*this.d)},lcm:function(e,t){return c(e,t),i.n===0&&this.n===0?o(0,1):o(i.n*this.n,f(i.n,this.n)*f(i.d,this.d))},ceil:function(e){return e=10**(e||0),isNaN(this.n)||isNaN(this.d)?new p(NaN):o(Math.ceil(e*this.s*this.n/this.d),e)},floor:function(e){return e=10**(e||0),isNaN(this.n)||isNaN(this.d)?new p(NaN):o(Math.floor(e*this.s*this.n/this.d),e)},round:function(e){return e=10**(e||0),isNaN(this.n)||isNaN(this.d)?new p(NaN):o(Math.round(e*this.s*this.n/this.d),e)},inverse:function(){return o(this.s*this.d,this.n)},pow:function(e,t){if(c(e,t),i.d===1)return i.s<0?o((this.s*this.d)**+i.n,this.n**+i.n):o((this.s*this.n)**+i.n,this.d**+i.n);if(this.s<0)return null;var n=s(this.n),r=s(this.d),a=1,l=1;for(var u in n){if(u===`1`)continue;if(u===`0`){a=0;break}if(n[u]*=i.n,n[u]%i.d===0)n[u]/=i.d;else return null;a*=u**+n[u]}for(var u in r){if(u===`1`)continue;if(r[u]*=i.n,r[u]%i.d===0)r[u]/=i.d;else return null;l*=u**+r[u]}return i.s<0?o(l,a):o(a,l)},equals:function(e,t){return c(e,t),this.s*this.n*i.d===i.s*i.n*this.d},compare:function(e,t){c(e,t);var n=this.s*this.n*i.d-i.s*i.n*this.d;return(0<n)-(n<0)},simplify:function(e){if(isNaN(this.n)||isNaN(this.d))return this;e||=.001;for(var t=this.abs(),n=t.toContinued(),r=1;r<n.length;r++){for(var i=o(n[r-1],1),a=r-2;a>=0;a--)i=i.inverse().add(n[a]);if(Math.abs(i.sub(t).valueOf())<e)return i.mul(this.s)}return this},divisible:function(e,t){return c(e,t),!(!(i.n*this.d)||this.n*i.d%(i.n*this.d))},valueOf:function(){return this.s*this.n/this.d},toFraction:function(e){var t,n=``,r=this.n,i=this.d;return this.s<0&&(n+=`-`),i===1?n+=r:(e&&(t=Math.floor(r/i))>0&&(n+=t,n+=` `,r%=i),n+=r,n+=`/`,n+=i),n},toLatex:function(e){var t,n=``,r=this.n,i=this.d;return this.s<0&&(n+=`-`),i===1?n+=r:(e&&(t=Math.floor(r/i))>0&&(n+=t,r%=i),n+=`\\frac{`,n+=r,n+=`}{`,n+=i,n+=`}`),n},toContinued:function(){var e,t=this.n,n=this.d,r=[];if(isNaN(t)||isNaN(n))return r;do r.push(Math.floor(t/n)),e=t%n,t=n,n=e;while(t!==1);return r},toString:function(e){var t=this.n,n=this.d;if(isNaN(t)||isNaN(n))return`NaN`;e||=15;var r=u(t,n),i=d(t,n,r),a=this.s<0?`-`:``;if(a+=t/n|0,t%=n,t*=10,t&&(a+=`.`),r){for(var o=i;o--;)a+=t/n|0,t%=n,t*=10;a+=`(`;for(var o=r;o--;)a+=t/n|0,t%=n,t*=10;a+=`)`}else for(var o=e;t&&o--;)a+=t/n|0,t%=n,t*=10;return a}},typeof exports==`object`?(Object.defineProperty(p,`__esModule`,{value:!0}),p.default=p,p.Fraction=p,t.exports=p):n.Fraction=p})(exports)})),ha=c(ma(),1),ga=`Fraction`,_a=[],va=ar(ga,_a,()=>(Object.defineProperty(ha.default,`name`,{value:`Fraction`}),ha.default.prototype.constructor=ha.default,ha.default.prototype.type=`Fraction`,ha.default.prototype.isFraction=!0,ha.default.prototype.toJSON=function(){return{mathjs:`Fraction`,n:this.s*this.n,d:this.d}},ha.default.fromJSON=function(e){return new ha.default(e)},ha.default),{isClass:!0}),ya=`Matrix`,ba=[],xa=ar(ya,ba,()=>{function e(){if(!(this instanceof e))throw SyntaxError(`Constructor must be called with the new operator`)}return e.prototype.type=`Matrix`,e.prototype.isMatrix=!0,e.prototype.storage=function(){throw Error(`Cannot invoke storage on a Matrix interface`)},e.prototype.datatype=function(){throw Error(`Cannot invoke datatype on a Matrix interface`)},e.prototype.create=function(e,t){throw Error(`Cannot invoke create on a Matrix interface`)},e.prototype.subset=function(e,t,n){throw Error(`Cannot invoke subset on a Matrix interface`)},e.prototype.get=function(e){throw Error(`Cannot invoke get on a Matrix interface`)},e.prototype.set=function(e,t,n){throw Error(`Cannot invoke set on a Matrix interface`)},e.prototype.resize=function(e,t){throw Error(`Cannot invoke resize on a Matrix interface`)},e.prototype.reshape=function(e,t){throw Error(`Cannot invoke reshape on a Matrix interface`)},e.prototype.clone=function(){throw Error(`Cannot invoke clone on a Matrix interface`)},e.prototype.size=function(){throw Error(`Cannot invoke size on a Matrix interface`)},e.prototype.map=function(e,t){throw Error(`Cannot invoke map on a Matrix interface`)},e.prototype.forEach=function(e){throw Error(`Cannot invoke forEach on a Matrix interface`)},e.prototype[Symbol.iterator]=function(){throw Error(`Cannot iterate a Matrix interface`)},e.prototype.toArray=function(){throw Error(`Cannot invoke toArray on a Matrix interface`)},e.prototype.valueOf=function(){throw Error(`Cannot invoke valueOf on a Matrix interface`)},e.prototype.format=function(e){throw Error(`Cannot invoke format on a Matrix interface`)},e.prototype.toString=function(){throw Error(`Cannot invoke toString on a Matrix interface`)},e},{isClass:!0});function Sa(e){return Object.keys(e.signatures||{}).reduce(function(e,t){var n=(t.match(/,/g)||[]).length+1;return Math.max(e,n)},-1)}var Ca=`DenseMatrix`,wa=[`Matrix`],Ta=ar(Ca,wa,e=>{var{Matrix:t}=e;function n(e,t){if(!(this instanceof n))throw SyntaxError(`Constructor must be called with the new operator`);if(t&&!wt(t))throw Error(`Invalid datatype: `+t);if(Tt(e))e.type===`DenseMatrix`?(this._data=an(e._data),this._size=an(e._size),this._datatype=t||e._datatype):(this._data=e.toArray(),this._size=e.size(),this._datatype=t||e._datatype);else if(e&&N(e.data)&&N(e.size))this._data=e.data,this._size=e.size,Vn(this._data,this._size),this._datatype=t||e.datatype;else if(N(e))this._data=l(e),this._size=zn(this._data),Vn(this._data,this._size),this._datatype=t;else if(e)throw TypeError(`Unsupported type of data (`+rn(e)+`)`);else this._data=[],this._size=[0],this._datatype=t}n.prototype=new t,n.prototype.createDenseMatrix=function(e,t){return new n(e,t)},Object.defineProperty(n,`name`,{value:`DenseMatrix`}),n.prototype.constructor=n,n.prototype.type=`DenseMatrix`,n.prototype.isDenseMatrix=!0,n.prototype.getDataType=function(){return Zn(this._data,rn)},n.prototype.storage=function(){return`dense`},n.prototype.datatype=function(){return this._datatype},n.prototype.create=function(e,t){return new n(e,t)},n.prototype.subset=function(e,t,n){switch(arguments.length){case 1:return r(this,e);case 2:case 3:return a(this,e,t,n);default:throw SyntaxError(`Wrong number of arguments`)}},n.prototype.get=function(e){if(!N(e))throw TypeError(`Array expected`);if(e.length!==this._size.length)throw new F(e.length,this._size.length);for(var t=0;t<e.length;t++)I(e[t],this._size[t]);for(var n=this._data,r=0,i=e.length;r<i;r++){var a=e[r];I(a,n.length),n=n[a]}return n},n.prototype.set=function(e,t,n){if(!N(e))throw TypeError(`Array expected`);if(e.length<this._size.length)throw new F(e.length,this._size.length,`<`);var r,i,a,o=e.map(function(e){return e+1});c(this,o,n);var s=this._data;for(r=0,i=e.length-1;r<i;r++)a=e[r],I(a,s.length),s=s[a];return a=e[e.length-1],I(a,s.length),s[a]=t,this};function r(e,t){if(!At(t))throw TypeError(`Invalid index`);var r=t.isScalar();if(r)return e.get(t.min());var a=t.size();if(a.length!==e._size.length)throw new F(a.length,e._size.length);for(var o=t.min(),s=t.max(),c=0,l=e._size.length;c<l;c++)I(o[c],e._size[c]),I(s[c],e._size[c]);return new n(i(e._data,t,a.length,0),e._datatype)}function i(e,t,n,r){var a=r===n-1,o=t.dimension(r);return a?o.map(function(t){return I(t,e.length),e[t]}).valueOf():o.map(function(a){I(a,e.length);var o=e[a];return i(o,t,n,r+1)}).valueOf()}function a(e,t,n,r){if(!t||t.isIndex!==!0)throw TypeError(`Invalid index`);var i=t.size(),a=t.isScalar(),s;if(Tt(n)?(s=n.size(),n=n.valueOf()):s=zn(n),a){if(s.length!==0)throw TypeError(`Scalar expected`);e.set(t.min(),n,r)}else{if(!sn(s,i))try{n=s.length===0?nr([n],i):nr(n,i),s=zn(n)}catch{}if(i.length<e._size.length)throw new F(i.length,e._size.length,`<`);if(s.length<i.length){for(var l=0,u=0;i[l]===1&&s[l]===1;)l++;for(;i[l]===1;)u++,l++;n=Jn(n,i.length,u,s)}if(!sn(i,s))throw new F(i,s,`>`);var d=t.max().map(function(e){return e+1});c(e,d,r);var f=i.length,p=0;o(e._data,t,n,f,p)}return e}function o(e,t,n,r,i){var a=i===r-1,s=t.dimension(i);a?s.forEach(function(t,r){I(t),e[t]=n[r[0]]}):s.forEach(function(a,s){I(a),o(e[a],t,n[s[0]],r,i+1)})}n.prototype.resize=function(e,t,n){if(!Et(e))throw TypeError(`Array or Matrix expected`);var r=e.valueOf().map(e=>Array.isArray(e)&&e.length===1?e[0]:e),i=n?this.clone():this;return s(i,r,t)};function s(e,t,n){if(t.length===0){for(var r=e._data;N(r);)r=r[0];return r}return e._size=t.slice(0),e._data=Hn(e._data,e._size,n),e}n.prototype.reshape=function(e,t){var n=t?this.clone():this;n._data=Wn(n._data,e);var r=n._size.reduce((e,t)=>e*t);return n._size=Gn(e,r),n};function c(e,t,n){for(var r=e._size.slice(0),i=!1;r.length<t.length;)r.push(0),i=!0;for(var a=0,o=t.length;a<o;a++)t[a]>r[a]&&(r[a]=t[a],i=!0);i&&s(e,r,n)}n.prototype.clone=function(){var e=new n({data:an(this._data),size:an(this._size),datatype:this._datatype});return e},n.prototype.size=function(){return this._size.slice(0)},n.prototype.map=function(e){var t=this,r=Sa(e),i=function n(i,a){return N(i)?i.map(function(e,t){return n(e,a.concat(t))}):r===1?e(i):r===2?e(i,a):e(i,a,t)},a=i(this._data,[]),o=this._datatype===void 0?void 0:Zn(a,rn);return new n(a,o)},n.prototype.forEach=function(e){var t=this,n=function n(r,i){N(r)?r.forEach(function(e,t){n(e,i.concat(t))}):e(r,i,t)};n(this._data,[])},n.prototype[Symbol.iterator]=function*(){var e=function*e(t,n){if(N(t))for(var r=0;r<t.length;r++)yield*e(t[r],n.concat(r));else yield{value:t,index:n}};yield*e(this._data,[])},n.prototype.rows=function(){var e=[],t=this.size();if(t.length!==2)throw TypeError(`Rows can only be returned for a 2D matrix.`);var r=this._data;for(var i of r)e.push(new n([i],this._datatype));return e},n.prototype.columns=function(){var e=this,t=[],r=this.size();if(r.length!==2)throw TypeError(`Rows can only be returned for a 2D matrix.`);for(var i=this._data,a=function(r){var a=i.map(e=>[e[r]]);t.push(new n(a,e._datatype))},o=0;o<r[1];o++)a(o);return t},n.prototype.toArray=function(){return an(this._data)},n.prototype.valueOf=function(){return this._data},n.prototype.format=function(e){return jn(this._data,e)},n.prototype.toString=function(){return jn(this._data)},n.prototype.toJSON=function(){return{mathjs:`DenseMatrix`,data:this._data,size:this._size,datatype:this._datatype}},n.prototype.diagonal=function(e){if(e){if(bt(e)&&(e=e.toNumber()),!M(e)||!P(e))throw TypeError(`The parameter k must be an integer number`)}else e=0;for(var t=e>0?e:0,r=e<0?-e:0,i=this._size[0],a=this._size[1],o=Math.min(i-r,a-t),s=[],c=0;c<o;c++)s[c]=this._data[c+r][c+t];return new n({data:s,size:[o],datatype:this._datatype})},n.diagonal=function(e,t,r,i){if(!N(e))throw TypeError(`Array expected, size parameter`);if(e.length!==2)throw Error(`Only two dimensions matrix are supported`);if(e=e.map(function(e){if(bt(e)&&(e=e.toNumber()),!M(e)||!P(e)||e<1)throw Error(`Size values must be positive integers`);return e}),r){if(bt(r)&&(r=r.toNumber()),!M(r)||!P(r))throw TypeError(`The parameter k must be an integer number`)}else r=0;var a=r>0?r:0,o=r<0?-r:0,s=e[0],c=e[1],l=Math.min(s-o,c-a),u;if(N(t)){if(t.length!==l)throw Error(`Invalid value array length`);u=function(e){return t[e]}}else if(Tt(t)){var d=t.size();if(d.length!==1||d[0]!==l)throw Error(`Invalid matrix length`);u=function(e){return t.get([e])}}else u=function(){return t};i||=bt(u(0))?u(0).mul(0):0;var f=[];if(e.length>0){f=Hn(f,e,i);for(var p=0;p<l;p++)f[p+o][p+a]=u(p)}return new n({data:f,size:[s,c]})},n.fromJSON=function(e){return new n(e)},n.prototype.swapRows=function(e,t){if(!M(e)||!P(e)||!M(t)||!P(t))throw Error(`Row index must be positive integers`);if(this._size.length!==2)throw Error(`Only two dimensional matrix is supported`);return I(e,this._size[0]),I(t,this._size[0]),n._swapRows(e,t,this._data),this},n._swapRows=function(e,t,n){var r=n[e];n[e]=n[t],n[t]=r};function l(e){return Tt(e)?l(e.valueOf()):N(e)?e.map(l):e}return n},{isClass:!0});function Ea(e,t,n){return e&&typeof e.map==`function`?e.map(function(e){return Ea(e,t,n)}):t(e)}var Da=`isNumeric`,Oa=[`typed`],ka=ar(Da,Oa,e=>{var{typed:t}=e;return t(Da,{"number | BigNumber | Fraction | boolean":()=>!0,"Complex | Unit | string | null | undefined | Node":()=>!1,"Array | Matrix":t.referToSelf(e=>t=>Ea(t,e))})}),Aa=`hasNumericValue`,ja=[`typed`,`isNumeric`],Ma=ar(Aa,ja,e=>{var{typed:t,isNumeric:n}=e;return t(Aa,{boolean:()=>!0,string:function(e){return e.trim().length>0&&!isNaN(Number(e))},any:function(e){return n(e)}})}),Na=ia({config:pn}),Pa=pa({}),Fa=va({}),Ia=xa({}),La=Ta({Matrix:Ia}),Ra=Sr({BigNumber:Na,Complex:Pa,DenseMatrix:La,Fraction:Fa}),za=ka({typed:Ra}),Ba=Ma({isNumeric:za,typed:Ra});const Va=e=>{let t=Number(e);return Number.isNaN(t)?!1:t>=120&&t<=36e4},Ha=e=>{let t=Number(e),n=Date.now();if(Number.isNaN(t))return n+gt;if(!Va(t)&&(0,l.isFutureUnixTimestamp)(t))return _t(t);if(Va(t))return n+t;{let e=t*mt;return n+e}},Ua=`ratelimitlimit`,Wa=`ratelimitremaining`,Ga=`ratelimitreset`,Ka=`ratelimitconcurrencylimit`,qa=`ratelimitconcurrencyremaining`,Ja=`ratelimitconcurrencyreset`,Ya=e=>{let t={};for(let[n,r]of Object.entries(e)){let e=n.toLowerCase().replace(/^x-/,``).replace(/concurren.+-/g,`concurrency-`).replace(/-/g,``),i=Ba(r)?Number(r):null;t[e]=i}return t},Xa=e=>{let t=Ya(e);return{rateLimitLimit:t[Ua],rateLimitRemaining:t[Wa],rateLimitReset:Ha(t[Ga]),concurrencyLimit:t[Ka],concurrencyRemaining:t[qa],concurrencyReset:Ha(t[Ja])}},Za=e=>{let{accountSecureId:t,service:n,resource:r,subResource:i,childResource:a,action:o,behaviours:s}=e??{};return[t,n,r,o].some(l.isMissing)?null:[t,n,r,i,a,o,...s??[]].filter(Boolean).join(`-`)},Qa=(e,t=dt,n=ut)=>{let r=Date.now();return(0,l.isFutureUnixTimestamp)(e)||(0,l.isNumber)(e)?$a(Number(e),r,t,n):wt(e)&&e!==``?eo(e,r,t,n):n},$a=(e,t,n=dt,r=ut)=>{if(e<n)return e;let i=_t(e);if(i>t){let e=Math.floor((i-t)/mt);return e>0&&e<n?e:r}return r},eo=(e,t,n=dt,r=ut)=>{if(ht.test(e)){let t=parseFloat(e);return t>0&&t<n?t:r}let i=new Date(e);if(Number.isNaN(i.getTime()))return r;let a=i.getTime();if(a>t){let e=Math.floor((a-t)/mt);return e>0&&e<n?e:r}return r},to=({axiosInstance:e,logger:t,requestConfig:n,context:r})=>{let i=async i=>{let{response:a,config:o}=i,s=o?.signal;if(s?.aborted)return Promise.reject(ot(`Request aborted`,o,`ERR_CANCELED`,a));let{status:c,retryAfter:u}=no(a,r,n,t);if(c===429&&(0,l.notMissing)(o)){let n=Qa(u);if(o._retryCount>=ft)return t?.warning({category:`http-transport`,message:`Max retries exceeded for ${o?.url}. Aborting.`,context:{...r??{},retryAfterHeader:u,retryAfterAsNumber:n}}),Promise.reject(i);let s=o._retryCount??0,c={...o,_retryCount:s+1},d=u?n*mt:(0,l.exponentialBackoffInMS)(c._retryCount);return t?.debug({category:`http-transport`,message:`Received 429 error from ${o?.url}`,context:{...r??{},retryAfterHeader:u,calculatedRetryAfter:d}}),await st(d*1e3,o,a),e?.request(c)}return Promise.reject(i)};return i},no=(e,t,n,r)=>{let{provider:i}=t??{},{status:a,headers:o,data:s}=e??{},{retryafter:c}=Ya(o??{});if((0,l.isMissing)(i)||(0,l.isMissing)(e))return r?.warning({category:`http-transport`,message:`Invalid parameters for convertError`,context:{...t,responseIsMissing:(0,l.isMissing)(e),providerIsMissing:(0,l.isMissing)(i),status:e?.status??`undefined`,statusText:e?.statusText??`undefined`,retryafter:c??`undefined`}}),{status:a,retryAfter:c};let u=n?.rateLimits?.mappedRateLimitErrors;if((0,l.notMissing)(u)&&(0,l.notMissing)(s))for(let e of u){let{errorStatus:t,errorMessagePath:n,errorMessage:r,retryAfterPath:i,retryAfterUnit:u,retryAfterValue:d}=e;if(t!==a)continue;let f=n??`message`,p=(0,l.isObject)(s)?h.default.query(s,f)[0]:s,m=ro(p,r);if(t===a&&m){let e=d??io(o,i),t=ao(e,u);return{status:429,retryAfter:c??t}}}return{status:a,retryAfter:c}},ro=(e,t)=>t instanceof RegExp?t.test(e??``):e?.includes(t)??!1,io=(e,t)=>(0,l.notMissing)(t)&&(0,l.notMissing)(e)?h.default.query(e,t)[0]:null,ao=(e,t=`seconds`)=>(0,l.notMissing)(e)?oo(e,t):null,oo=(e,t)=>{if(t===`seconds`)return typeof e==`string`?parseFloat(e):e;if(t===`milliseconds`){let t=typeof e==`string`?parseFloat(e):e;return t/mt}if(t===`date`){let t=typeof e==`string`&&!isNaN(Number(e))?parseFloat(e):e,n=new Date(t);if(isNaN(n.getTime()))throw Error(`Invalid date value`);return n.getTime()}throw Error(`Invalid type`)},so=`rateLimitErrorInterceptor`,co=({axiosInstance:e,logger:t,requestConfig:n,context:r,concurrencyManager:i})=>{let a=async a=>{let{response:o,config:s}=a,c=s?.signal;if((0,l.isMissing)(r)||(0,l.isMissing)(s))return t?.warning({category:`HttpClient`,message:`No context or config for this response - that doesn't seem right.`,context:{interceptor:so,...s,headers:void 0,hasContext:(0,l.notMissing)(r),hasConfig:(0,l.notMissing)(s)},code:at.InterceptorContextNotPresent}),Promise.reject(a);if((0,l.isMissing)(i))return t?.error({category:`HttpClient`,message:`ConcurrencyManager is not initialized`,context:{interceptor:so,...s,headers:void 0,concurrencyManagerInitialized:(0,l.notMissing)(i)},code:at.RateLimitOrConcurrencyManagerNotInitialized}),Promise.reject(a);let{requestId:u,targetConcurrencyKey:d,leaseSubscription:f,setRemovalSubscription:p}=s?.requestMetadata??{},m=(0,l.notMissing)(u)&&(0,l.notMissing)(d)?await i.releaseRequest(u,d):!1;if(!m&&(0,l.notMissing)(s?.requestMetadata)&&t?.error({category:`HttpClient`,message:`Failed to release request from concurrency manager`,context:{...r,interceptor:so,requestId:u,targetConcurrencyKey:d,leaseSubscription:f,setRemovalSubscription:p},code:at.RateLimiterReleaseRequestFailed}),c?.aborted)return Promise.reject(ot(`Request aborted`,s,`ERR_CANCELED`,o));let{status:h,retryAfter:g}=no(o,r,n,t);if(h===429&&(0,l.notMissing)(s)){let n=Qa(g);if(s._retryCount>=ft)return t?.warning({category:`HttpClient`,message:`Max retries exceeded for ${s.url}. Aborting.`,context:{...r??{},...s.requestMetadata??{},retryAfterHeader:g,retryAfterAsNumber:n}}),Promise.reject(a);let i=s?._retryCount??0,c={...s,_retryCount:i+1},u=g?n*mt:(0,l.exponentialBackoffInMS)(c._retryCount);return t?.debug({category:`HttpClient`,message:`Received 429 error from ${s.url}`,context:{...r,retryAfterHeader:g,calculatedRetryAfter:u}}),await st(u*1e3,s,o),e?.request(c)}return Promise.reject(a)};return a},lo=`rateLimitResponseInterceptor`,uo=({logger:e,context:t,concurrencyManager:n})=>{let r=async r=>{let i=r?.config,a=i?.signal;if((0,l.isMissing)(t))e?.warning({category:`HttpClient`,message:`No context for this response - that doesn't seem right.`,context:{...i,interceptor:lo,headers:void 0}});else if((0,l.isMissing)(n))return e?.error({category:`HttpClient`,message:`ConcurrencyManager is not initialized`,context:{interceptor:lo,...i,headers:void 0,concurrencyManagerInitialized:(0,l.notMissing)(n)},code:at.RateLimitOrConcurrencyManagerNotInitialized}),r;else if((0,l.notMissing)(t.provider)&&(0,l.notMissing)(t.accountSecureId)){let t=r?.headers;if((0,l.notMissing)(t)){let n=Xa(t);e?.debug({category:`HttpClient`,message:`Rate limit headers extracted`,context:{interceptor:lo,rateLimitHeaders:n}})}let{requestId:o,targetConcurrencyKey:s,leaseSubscription:c,setRemovalSubscription:u}=i?.requestMetadata??{},d=await n.releaseRequest(o,s);if(d||e?.error({category:`HttpClient`,message:`Failed to release request from concurrency manager`,context:{interceptor:lo,requestId:o,targetConcurrencyKey:s,leaseSubscription:c,setRemovalSubscription:u},code:at.RateLimiterReleaseRequestFailed}),a?.aborted)return Promise.reject(ot(`Request aborted`,i,`ERR_CANCELED`,r))}return r};return r},fo=e=>(e.validateStatus??=e=>e>=200&&e<300,e),po=[{onFulfilled:fo,onRejected:null,options:void 0}],mo=[{onFulfilled:null,onRejected:to},{onFulfilled:null,onRejected:tt}],ho=[{onFulfilled:fo,onRejected:null,options:void 0},{onFulfilled:lt,onRejected:null,options:void 0}],go=[{onFulfilled:uo,onRejected:co},{onFulfilled:null,onRejected:tt}],_o=1,vo=1e3,yo=0,bo=59,xo=.8,So=500;var Co=class extends he{name=`RateLimitManager`;async additionalInitialization(){}getDynamicMaxWaitTime(e,t,n,r=bo,i=xo,a=So){this.readyCheck();let o=e.subPools?.find(e=>e.urlPattern instanceof RegExp?e.urlPattern.test(n??``):n?.includes(e.urlPattern))?.rateLimit??e.mainRatelimit;if(o<=yo)throw Error(`Requests per second (rps) must be greater than 0.`);let s=t.subPools?.find(e=>e.urlPattern instanceof RegExp?e.urlPattern.test(n??``):n?.includes(e.urlPattern))?.maxConcurrency??t.mainMaxConcurrency;if(s<=yo)throw Error(`Concurrency must be greater than 0.`);let c=r*i,l=Math.min(o,s/(a/vo)),u=_o/l,d=Math.max(nt,c*u);return Math.min(c,d)}async getWaitTime(e,t,n){this.readyCheck();let r=`rateLimit:${e}`,i=t.subPools?.find(e=>e.urlPattern instanceof RegExp?e.urlPattern.test(n??``):n?.includes(e.urlPattern))?.subPoolKey,a=(0,l.notMissing)(i)?`${r}-${i}`:r,{mainRatelimit:o,subPools:s}=t,c=[{key:r,rateLimit:o},...s?.map(e=>{let{subPoolKey:t,rateLimit:n}=e;return{key:`${r}-${t}`,rateLimit:n}})??[]],u=c.map(e=>e.key),d=c.map(e=>e.rateLimit);return await this.executeScript(it.incr,[a,...u],[o.toString(),...d.map(String)])??0}readyCheck(){if(!this.cacheClient||!this.scriptMap?.size)throw Error(`RateLimitManager not ready`)}isReady(){return!!this?.cacheClient&&!!this?.scriptMap?.size}close(){this.scriptMap?.clear(),this.reset()}},$=class{static instances=new Map;static async prepare(e,t,...n){if(!this.instances.has(e)){let t=new e;t.getSingleton=e=>{let t=this.instances.get(e);if((0,l.isMissing)(t))throw Error(`Singleton ${e.name} not prepared yet`);if(t.hasInitFailed?.())throw Error(`${e.name} initialization failed`);let n=t.getInstanceIfReady?.();if((0,l.notMissing)(n))return n;throw Error(`${e.name} not ready`)},this.instances.set(e,t)}let r=this.instances.get(e);try{return await r.getInstance(t,...n)}catch(t){throw r.hasInitFailed?.()&&this.instances.delete(e),t}}static getIfReady(e){let t=this.instances.get(e);return t?.getInstanceIfReady?.()??null}static reset(e){let t=this.instances.get(e);t?.reset?.(),this.instances.delete(e)}static cleanupFailed(){let e=0;for(let[t,n]of this.instances){let r=n;r?.hasInitFailed?.()&&(r?.reset?.(),this.instances.delete(t),e++)}return e}};let wo=function(e){return e.HttpTransportInstanceCreateError=`HttpTransportInstanceCreateError`,e}({});const To=async({logger:e,redisClientConfig:t,context:n,requestConfig:r,httpsAgentConfig:i}={})=>{let a,{NODE_ENV:o}=process.env,s=n?.behaviours??[`CONCURRENCY`,`RETRY`];try{if(a=s.includes(`RETRY`)?Do(e,n):Eo(e,n),(0,l.isMissing)(n?.service)||(0,l.isMissing)(n?.organizationId)||o===`test`||(0,l.isMissing)(t)||(0,l.isMissing)(e))return a;let c=$.getIfReady(Co)??void 0,u=$.getIfReady(We)??void 0,d=c?.isReady(),f=u?.isRedisConfigured(),p=[],m=[];if(s.includes(`CONCURRENCY`)){if(!f)throw Error(`Concurrency Manager cannot connect to Redis. Cannot create advanced transport instance.`);if(!d)throw Error(`RateLimitManager is not ready. Cannot create advanced transport instance.`);p.push(...ho),m.push(...go)}let h=Za(n);if((0,l.isMissing)(h))return e?.warning({category:`http-transport`,message:`Unable to create a key for transport instance - Invalid state. Using base default instance.`,context:{...n,defaultInstanceInitialized:(0,l.notMissing)(a)}}),a;let g=await et.get(h);if((0,l.notMissing)(g))return g;let _={interceptors:{requestConfigs:p,responseConfigs:m},instanceConfig:{maxBodyLength:1/0},logger:e,context:n,requestConfig:r,httpsAgentConfig:i,concurrencyManager:u,rateLimitManager:c},v=Ze.createInstance(_);return e?.debug({category:`http-transport`,message:`Creating new Axios instance and caching it for key: [${h}]`,context:{...n}}),await et.set(h,v),v}catch(t){return e?.error({category:`http-transport`,message:`Failed to create advanced transport instance. Using default instance.`,context:{...n,usingDefaultInstance:(0,l.notMissing)(a)},error:t,code:wo.HttpTransportInstanceCreateError}),(0,l.notMissing)(a)?a:Oo()}},Eo=(e,t)=>{let n={instanceConfig:{maxBodyLength:1/0},logger:e,context:t};return Ze.createInstance(n)??Oo()},Do=(e,t)=>{let n={interceptors:{requestConfigs:po,responseConfigs:mo},instanceConfig:{maxBodyLength:1/0},logger:e,context:t};return Ze.createInstance(n)??Oo()},Oo=()=>{let e=d.default.create({maxBodyLength:1/0});return e};var ko=class e{#transportFactory;#getRedisClient;#logger;#redisClientConfig;#errorMappingFn;#redisClient;constructor({transportFactory:e=To,getRedisClient:t=ue,logger:n,redisClientConfig:r,errorMappingFn:i}={}){this.#transportFactory=e,this.#getRedisClient=t,this.#logger=n,this.#redisClientConfig=r,this.#errorMappingFn=i}#generateCacheKey({url:e,payload:t,method:n,context:r}){let i=20;if(!r?.accountSecureId||r.accountSecureId.length<i||!e||!n)return null;let a=t?(0,l.getContentHash)(t):``;return`${r.accountSecureId}-${n.toUpperCase()}${a}-${e}`}async#getCachedResponse({url:t,payload:n,method:r,cacheTTL:i,context:a}){if(!this.#redisClient||!i||i<=0)return null;let o=this.#generateCacheKey({url:t,payload:n,method:r,context:a});if(!o)return null;let s=await this.#redisClient.getData(o);return s?(this.#logger?.debug({category:e.name,message:`Cache hit for key [${o}].`}),s):(this.#logger?.debug({category:e.name,message:`Cache miss for key [${o}].`}),null)}async#cacheResponse({url:t,payload:n,method:r,cacheTTL:i,context:a,response:o}){if(!this.#redisClient||!i||i<=0)return!1;let s=this.#generateCacheKey({url:t,payload:n,method:r,context:a});return s?(this.#logger?.debug({category:e.name,message:`Caching result for key [${s}].`}),this.#redisClient.setData({key:s,value:o,cacheTTL:i*60})):!1}async request({headers:t={},url:n,method:r=`get`,queryParams:i,maxRedirects:a=0,responseType:o,cacheTTL:s,context:c,traceId:u,payload:d,httpsAgent:f,httpAgent:p,requestConfig:m,httpsAgentConfig:h}){try{(0,l.notMissing)(this.#redisClientConfig)&&(0,l.isMissing)(this.#redisClient)&&(this.#redisClient=await this.#getRedisClient(this.#redisClientConfig,this.#logger));let e=this.#buildUrlWithQueryParams(n,i),g=this.#normalizeHeaders(t),_=this.#getSafePayload(d,t),v=await this.#getCachedResponse({url:e,payload:_,method:r,cacheTTL:s,context:c});if(v)return{...v,responseTime:new Date};let y=$e.getInstance(),b=(0,l.notMissing)(u)?await y.get(u):null,x=b?.signal,S=await this.#transportFactory({redisClientConfig:this.#redisClientConfig,logger:this.#logger,context:c,requestConfig:m,httpsAgentConfig:h}),ee=await S.request({headers:g,url:e,method:r,maxRedirects:a,responseType:o,data:_,httpsAgent:f,httpAgent:p,signal:x}),C={data:ee.data,status:ee.status,body:_,method:r,headers:this.#extractAxiosHeaders(ee.headers),requestUrl:n,responseType:ee?.config?.responseType,responseTime:new Date};return await this.#cacheResponse({url:e,payload:_,method:r,cacheTTL:s,context:c,response:C}),C}catch(t){let i=t;i.url=(0,g.redactUrl)(n),this.#logger?.warning({category:e.name,message:`Request error [${r?.toUpperCase()} ${i.url}]: ${i.message}.`,error:i});let a=this.#mapErrorToHttpException(i);throw(0,l.notMissing)(a)?a:t}}async get({headers:e,url:t,queryParams:n,maxRedirects:r,cacheTTL:i,context:a,traceId:o,requestConfig:s}){return this.request({url:t,method:`get`,queryParams:n,headers:e,maxRedirects:r,cacheTTL:i,context:a,traceId:o,requestConfig:s})}async post({headers:e,url:t,maxRedirects:n,cacheTTL:r,context:i,traceId:a,payload:o,requestConfig:s}){return this.request({url:t,method:`post`,headers:e,maxRedirects:n,cacheTTL:r,context:i,traceId:a,payload:o,requestConfig:s})}#normalizeHeaders(e){if(!e)return{};let t={};return Object.keys(e).forEach(n=>{t[n.toLowerCase()]=e[n]||``}),t}#extractAxiosHeaders(e){if(!e)return{};let t={};return Object.keys(e).forEach(n=>{t[n]=e[n]||``}),t}#isFormUrlEncoded(e){return e[`content-type`]===`application/x-www-form-urlencoded`}#getSafePayload(e,t){if(!((0,l.isMissing)(e)||(0,l.isObject)(e)&&Object.keys(e).length===0))return this.#isFormUrlEncoded(t)?_.default.stringify(e):e}#mapErrorToHttpException(e){if((0,d.isAxiosError)(e)&&this.#errorMappingFn)return this.#errorMappingFn(e)}#buildUrlWithQueryParams(e,t){if((0,l.isMissing)(t)||Object.keys(t).length===0)return e;let n=_.default.stringify(t);return`${e}?${n}`}};const Ao=(e,t,n)=>new ko({redisClientConfig:e,logger:t,errorMappingFn:n});var jo=class{static httpClientInstance=null;static async getInstance({redisClientConfig:e,logger:t,errorMappingFn:n,getHttpClient:r=Ao}){return this.httpClientInstance??=r(e,t,n),this.httpClientInstance}static resetInstance(){this.httpClientInstance=null}};const Mo=[`get`,`post`,`put`,`delete`,`patch`],No={[A.rPush]:`
|
|
132
|
+
local queueLength = redis.call('RPUSH', KEYS[1], ARGV[1])
|
|
133
|
+
|
|
134
|
+
redis.call('PEXPIRE', KEYS[1], ARGV[2])
|
|
135
|
+
|
|
136
|
+
return queueLength
|
|
137
|
+
`,[A.lPush]:`
|
|
138
|
+
local queueLength = redis.call('LPUSH', KEYS[1], ARGV[1])
|
|
139
|
+
|
|
140
|
+
redis.call('PEXPIRE', KEYS[1], ARGV[2])
|
|
141
|
+
|
|
142
|
+
return queueLength
|
|
143
|
+
`,[A.lPop]:`
|
|
144
|
+
local queueKey = KEYS[1]
|
|
145
|
+
|
|
146
|
+
return redis.call("lpop", queueKey)
|
|
147
|
+
`,[A.llen]:`return redis.call("llen", KEYS[1])`},Po={[it.incr]:`
|
|
143
148
|
local targetKey = KEYS[1]
|
|
144
149
|
local totalLimit = tonumber(ARGV[1])
|
|
145
150
|
|
|
@@ -181,34 +186,4 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
|
|
|
181
186
|
end
|
|
182
187
|
|
|
183
188
|
return nil
|
|
184
|
-
`},
|
|
185
|
-
Please create a mathjs instance if you want to change the default configuration.
|
|
186
|
-
Example:
|
|
187
|
-
|
|
188
|
-
import { create, all } from 'mathjs';
|
|
189
|
-
const mathjs = create(all);
|
|
190
|
-
mathjs.config({ number: 'BigNumber' });
|
|
191
|
-
`);return Object.freeze(Jo)};(0,Hs.default)(Us,Jo,{MATRIX_OPTIONS:Bs,NUMBER_OPTIONS:Vs});var Ws=o(((exports,t)=>{(function(n,r){typeof exports==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self,n[`'typed'`]=r())})(exports,(function(){"use strict";function e(){return!0}function t(){return!1}function n(){}let r=`Argument is not a typed-function.`;function i(){function a(e){return typeof e==`object`&&!!e&&e.constructor===Object}let o=[{name:`number`,test:function(e){return typeof e==`number`}},{name:`string`,test:function(e){return typeof e==`string`}},{name:`boolean`,test:function(e){return typeof e==`boolean`}},{name:`Function`,test:function(e){return typeof e==`function`}},{name:`Array`,test:Array.isArray},{name:`Date`,test:function(e){return e instanceof Date}},{name:`RegExp`,test:function(e){return e instanceof RegExp}},{name:`Object`,test:a},{name:`null`,test:function(e){return e===null}},{name:`undefined`,test:function(e){return e===void 0}}],s={name:`any`,test:e,isAny:!0},c,l,u=0,d={createCount:0};function f(e){let t=c.get(e);if(t)return t;let n=`Unknown type "`+e+`"`,r=e.toLowerCase(),i;for(i of l)if(i.toLowerCase()===r){n+=`. Did you mean "`+i+`" ?`;break}throw TypeError(n)}function p(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`any`,n=t?f(t).index:l.length,r=[];for(let t=0;t<e.length;++t){if(!e[t]||typeof e[t].name!=`string`||typeof e[t].test!=`function`)throw TypeError(`Object with properties {name: string, test: function} expected`);let i=e[t].name;if(c.has(i))throw TypeError(`Duplicate type name "`+i+`"`);r.push(i),c.set(i,{name:i,test:e[t].test,isAny:e[t].isAny,index:n+t,conversionsTo:[]})}let i=l.slice(n);l=l.slice(0,n).concat(r).concat(i);for(let e=n+r.length;e<l.length;++e)c.get(l[e]).index=e}function m(){c=new Map,l=[],u=0,p([s],!1)}m(),p(o);function h(){let e;for(e of l)c.get(e).conversionsTo=[];u=0}function g(e){let t=l.filter(t=>{let n=c.get(t);return!n.isAny&&n.test(e)});return t.length?t:[`any`]}function _(e){return e&&typeof e==`function`&&`_typedFunctionData`in e}function v(e,t,n){if(!_(e))throw TypeError(r);let i=n&&n.exact,a=Array.isArray(t)?t.join(`,`):t,o=te(a),s=x(o);if(!i||s in e.signatures){let t=e._typedFunctionData.signatureMap.get(s);if(t)return t}let c=o.length,l;if(i){l=[];let t;for(t in e.signatures)l.push(e._typedFunctionData.signatureMap.get(t))}else l=e._typedFunctionData.signatures;for(let e=0;e<c;++e){let t=o[e],n=[],r;for(r of l){let i=re(r.params,e);if(!i||t.restParam&&!i.restParam)continue;if(!i.hasAny){let e=C(i);if(t.types.some(t=>!e.has(t.name)))continue}n.push(r)}if(l=n,l.length===0)break}let u;for(u of l)if(u.params.length<=c)return u;throw TypeError(`Signature not found (signature: `+(e.name||`unnamed`)+`(`+x(o,`, `)+`))`)}function y(e,t,n){return v(e,t,n).implementation}function b(e,t){let n=f(t);if(n.test(e))return e;let r=n.conversionsTo;if(r.length===0)throw Error(`There are no conversions to `+t+` defined.`);for(let t=0;t<r.length;t++){let n=f(r[t].from);if(n.test(e))return r[t].convert(e)}throw Error(`Cannot convert `+e+` to `+t)}function x(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`,`;return e.map(e=>e.name).join(t)}function S(e){let t=e.indexOf(`...`)===0,n=t?e.length>3?e.slice(3):`any`:e,r=n.split(`|`).map(e=>f(e.trim())),i=!1,a=t?`...`:``,o=r.map(function(e){return i=e.isAny||i,a+=e.name+`|`,{name:e.name,typeIndex:e.index,test:e.test,isAny:e.isAny,conversion:null,conversionIndex:-1}});return{types:o,name:a.slice(0,-1),hasAny:i,hasConversion:!1,restParam:t}}function ee(e){let t=e.types.map(e=>e.name),n=O(t),r=e.hasAny,i=e.name,a=n.map(function(e){let t=f(e.from);return r=t.isAny||r,i+=`|`+e.from,{name:e.from,typeIndex:t.index,test:t.test,isAny:t.isAny,conversion:e,conversionIndex:e.index}});return{types:e.types.concat(a),name:i,hasAny:r,hasConversion:a.length>0,restParam:e.restParam}}function C(e){return e.typeSet||(e.typeSet=new Set,e.types.forEach(t=>e.typeSet.add(t.name))),e.typeSet}function te(e){let t=[];if(typeof e!=`string`)throw TypeError(`Signatures must be strings`);let n=e.trim();if(n===``)return t;let r=n.split(`,`);for(let e=0;e<r.length;++e){let n=S(r[e].trim());if(n.restParam&&e!==r.length-1)throw SyntaxError(`Unexpected rest parameter "`+r[e]+`": only allowed for the last parameter`);if(n.types.length===0)return null;t.push(n)}return t}function w(e){let t=xe(e);return t?t.restParam:!1}function T(t){if(!t||t.types.length===0)return e;if(t.types.length===1)return f(t.types[0].name).test;if(t.types.length===2){let e=f(t.types[0].name).test,n=f(t.types[1].name).test;return function(t){return e(t)||n(t)}}else{let e=t.types.map(function(e){return f(e.name).test});return function(t){for(let n=0;n<e.length;n++)if(e[n](t))return!0;return!1}}}function ne(e){let t,n,r;if(w(e)){t=be(e).map(T);let n=t.length,r=T(xe(e)),i=function(e){for(let t=n;t<e.length;t++)if(!r(e[t]))return!1;return!0};return function(e){for(let n=0;n<t.length;n++)if(!t[n](e[n]))return!1;return i(e)&&e.length>=n+1}}else if(e.length===0)return function(e){return e.length===0};else if(e.length===1)return n=T(e[0]),function(e){return n(e[0])&&e.length===1};else if(e.length===2)return n=T(e[0]),r=T(e[1]),function(e){return n(e[0])&&r(e[1])&&e.length===2};else return t=e.map(T),function(e){for(let n=0;n<t.length;n++)if(!t[n](e[n]))return!1;return e.length===t.length}}function re(e,t){return t<e.length?e[t]:w(e)?xe(e):null}function ie(e,t){let n=re(e,t);return n?C(n):new Set}function E(e){return e.conversion===null||e.conversion===void 0}function D(e,t){let n=new Set;return e.forEach(e=>{let r=ie(e.params,t),i;for(i of r)n.add(i)}),n.has(`any`)?[`any`]:Array.from(n)}function ae(e,t,n){let r,i,a=e||`unnamed`,o=n,s;for(s=0;s<t.length;s++){let e=[];if(o.forEach(n=>{let r=re(n.params,s),i=T(r);(s<n.params.length||w(n.params))&&i(t[s])&&e.push(n)}),e.length===0){if(i=D(o,s),i.length>0){let e=g(t[s]);return r=TypeError(`Unexpected type of argument in function `+a+` (expected: `+i.join(` or `)+`, actual: `+e.join(` | `)+`, index: `+s+`)`),r.data={category:`wrongType`,fn:a,index:s,actual:e,expected:i},r}}else o=e}let c=o.map(function(e){return w(e.params)?1/0:e.params.length});if(t.length<Math.min.apply(null,c))return i=D(o,s),r=TypeError(`Too few arguments in function `+a+` (expected: `+i.join(` or `)+`, index: `+t.length+`)`),r.data={category:`tooFewArgs`,fn:a,index:t.length,expected:i},r;let l=Math.max.apply(null,c);if(t.length>l)return r=TypeError(`Too many arguments in function `+a+` (expected: `+l+`, actual: `+t.length+`)`),r.data={category:`tooManyArgs`,fn:a,index:t.length,expectedLength:l},r;let u=[];for(let e=0;e<t.length;++e)u.push(g(t[e]).join(`|`));return r=TypeError(`Arguments of type "`+u.join(`, `)+`" do not match any of the defined signatures of function `+a+`.`),r.data={category:`mismatch`,actual:u},r}function oe(e){let t=l.length+1;for(let n=0;n<e.types.length;n++)E(e.types[n])&&(t=Math.min(t,e.types[n].typeIndex));return t}function se(e){let t=u+1;for(let n=0;n<e.types.length;n++)E(e.types[n])||(t=Math.min(t,e.types[n].conversionIndex));return t}function ce(e,t){if(e.hasAny){if(!t.hasAny)return 1}else if(t.hasAny)return-1;if(e.restParam){if(!t.restParam)return 1}else if(t.restParam)return-1;if(e.hasConversion){if(!t.hasConversion)return 1}else if(t.hasConversion)return-1;let n=oe(e)-oe(t);if(n<0)return-1;if(n>0)return 1;let r=se(e)-se(t);return r<0?-1:r>0?1:0}function le(e,t){let n=e.params,r=t.params,i=xe(n),a=xe(r),o=w(n),s=w(r);if(o&&i.hasAny){if(!s||!a.hasAny)return 1}else if(s&&a.hasAny)return-1;let c=0,l=0,u;for(u of n)u.hasAny&&++c,u.hasConversion&&++l;let d=0,f=0;for(u of r)u.hasAny&&++d,u.hasConversion&&++f;if(c!==d)return c-d;if(o&&i.hasConversion){if(!s||!a.hasConversion)return 1}else if(s&&a.hasConversion)return-1;if(l!==f)return l-f;if(o){if(!s)return 1}else if(s)return-1;let p=(n.length-r.length)*(o?-1:1);if(p!==0)return p;let m=[],h=0;for(let e=0;e<n.length;++e){let t=ce(n[e],r[e]);m.push(t),h+=t}if(h!==0)return h;let g;for(g of m)if(g!==0)return g;return 0}function O(e){if(e.length===0)return[];let t=e.map(f);e.length>1&&t.sort((e,t)=>e.index-t.index);let n=t[0].conversionsTo;if(e.length===1)return n;n=n.concat([]);let r=new Set(e);for(let e=1;e<t.length;++e){let i;for(i of t[e].conversionsTo)r.has(i.from)||(n.push(i),r.add(i.from))}return n}function ue(e,t){let n=t;if(e.some(e=>e.hasConversion)){let r=w(e),i=e.map(de);n=function(){let e=[],n=r?arguments.length-1:arguments.length;for(let t=0;t<n;t++)e[t]=i[t](arguments[t]);return r&&(e[n]=arguments[n].map(i[n])),t.apply(this,e)}}let r=n;if(w(e)){let t=e.length-1;r=function(){return n.apply(this,Se(arguments,0,t).concat([Se(arguments,t)]))}}return r}function de(e){let t,n,r,i,a=[],o=[];switch(e.types.forEach(function(e){e.conversion&&(a.push(f(e.conversion.from).test),o.push(e.conversion.convert))}),o.length){case 0:return function(e){return e};case 1:return t=a[0],r=o[0],function(e){return t(e)?r(e):e};case 2:return t=a[0],n=a[1],r=o[0],i=o[1],function(e){return t(e)?r(e):n(e)?i(e):e};default:return function(e){for(let t=0;t<o.length;t++)if(a[t](e))return o[t](e);return e}}}function fe(e){function t(e,n,r){if(n<e.length){let i=e[n],a=[];if(i.restParam){let e=i.types.filter(E);e.length<i.types.length&&a.push({types:e,name:`...`+e.map(e=>e.name).join(`|`),hasAny:e.some(e=>e.isAny),hasConversion:!1,restParam:!0}),a.push(i)}else a=i.types.map(function(e){return{types:[e],name:e.name,hasAny:e.isAny,hasConversion:e.conversion,restParam:!1}});return we(a,function(i){return t(e,n+1,r.concat([i]))})}else return[r]}return t(e,0,[])}function pe(e,t){let n=Math.max(e.length,t.length);for(let r=0;r<n;r++){let n=ie(e,r),i=ie(t,r),a=!1,o;for(o of i)if(n.has(o)){a=!0;break}if(!a)return!1}let r=e.length,i=t.length,a=w(e),o=w(t);return a?o?r===i:i>=r:o?r>=i:r===i}function me(e){return e.map(e=>ke(e)?De(e.referToSelf.callback):Oe(e)?Ee(e.referTo.references,e.referTo.callback):e)}function he(e,t,n){let r=[],i;for(i of e){let e=n[i];if(typeof e!=`number`)throw TypeError(`No definition for referenced signature "`+i+`"`);if(e=t[e],typeof e!=`function`)return!1;r.push(e)}return r}function ge(e,t,n){let r=me(e),i=Array(r.length).fill(!1),a=!0;for(;a;){a=!1;let e=!0;for(let o=0;o<r.length;++o){if(i[o])continue;let s=r[o];if(ke(s))r[o]=s.referToSelf.callback(n),r[o].referToSelf=s.referToSelf,i[o]=!0,e=!1;else if(Oe(s)){let n=he(s.referTo.references,r,t);n?(r[o]=s.referTo.callback.apply(this,n),r[o].referTo=s.referTo,i[o]=!0,e=!1):a=!0}}if(e&&a)throw SyntaxError(`Circular reference detected in resolving typed.referTo`)}return r}function _e(e){let t=/\bthis(\(|\.signatures\b)/;Object.keys(e).forEach(n=>{let r=e[n];if(t.test(r.toString()))throw SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.")})}function ve(e,r){if(d.createCount++,Object.keys(r).length===0)throw SyntaxError(`No signatures provided`);d.warnAgainstDeprecatedThis&&_e(r);let i=[],a=[],o={},s=[],c;for(c in r){if(!Object.prototype.hasOwnProperty.call(r,c))continue;let e=te(c);if(!e)continue;i.forEach(function(t){if(pe(t,e))throw TypeError(`Conflicting signatures "`+x(t)+`" and "`+x(e)+`".`)}),i.push(e);let t=a.length;a.push(r[c]);let n=e.map(ee),l;for(l of fe(n)){let e=x(l);s.push({params:l,name:e,fn:t}),l.every(e=>!e.hasConversion)&&(o[e]=t)}}s.sort(le);let l=ge(a,o,Ne),u;for(u in o)Object.prototype.hasOwnProperty.call(o,u)&&(o[u]=l[o[u]]);let f=[],p=new Map;for(u of s)p.has(u.name)||(u.fn=l[u.fn],f.push(u),p.set(u.name,u));let m=f[0]&&f[0].params.length<=2&&!w(f[0].params),h=f[1]&&f[1].params.length<=2&&!w(f[1].params),g=f[2]&&f[2].params.length<=2&&!w(f[2].params),_=f[3]&&f[3].params.length<=2&&!w(f[3].params),v=f[4]&&f[4].params.length<=2&&!w(f[4].params),y=f[5]&&f[5].params.length<=2&&!w(f[5].params),b=m&&h&&g&&_&&v&&y;for(let e=0;e<f.length;++e)f[e].test=ne(f[e].params);let S=m?T(f[0].params[0]):t,C=h?T(f[1].params[0]):t,re=g?T(f[2].params[0]):t,ie=_?T(f[3].params[0]):t,E=v?T(f[4].params[0]):t,D=y?T(f[5].params[0]):t,ae=m?T(f[0].params[1]):t,oe=h?T(f[1].params[1]):t,se=g?T(f[2].params[1]):t,ce=_?T(f[3].params[1]):t,O=v?T(f[4].params[1]):t,de=y?T(f[5].params[1]):t;for(let e=0;e<f.length;++e)f[e].implementation=ue(f[e].params,f[e].fn);let me=m?f[0].implementation:n,he=h?f[1].implementation:n,ve=g?f[2].implementation:n,ye=_?f[3].implementation:n,be=v?f[4].implementation:n,xe=y?f[5].implementation:n,Se=m?f[0].params.length:-1,Ce=h?f[1].params.length:-1,we=g?f[2].params.length:-1,Te=_?f[3].params.length:-1,Ee=v?f[4].params.length:-1,De=y?f[5].params.length:-1,Oe=b?6:0,ke=f.length,Ae=f.map(e=>e.test),je=f.map(e=>e.implementation),Me=function(){for(let e=Oe;e<ke;e++)if(Ae[e](arguments))return je[e].apply(this,arguments);return d.onMismatch(e,arguments,f)};function Ne(e,t){return arguments.length===Se&&S(e)&&ae(t)?me.apply(this,arguments):arguments.length===Ce&&C(e)&&oe(t)?he.apply(this,arguments):arguments.length===we&&re(e)&&se(t)?ve.apply(this,arguments):arguments.length===Te&&ie(e)&&ce(t)?ye.apply(this,arguments):arguments.length===Ee&&E(e)&&O(t)?be.apply(this,arguments):arguments.length===De&&D(e)&&de(t)?xe.apply(this,arguments):Me.apply(this,arguments)}try{Object.defineProperty(Ne,`name`,{value:e})}catch{}return Ne.signatures=o,Ne._typedFunctionData={signatures:f,signatureMap:p},Ne}function ye(e,t,n){throw ae(e,t,n)}function be(e){return Se(e,0,e.length-1)}function xe(e){return e[e.length-1]}function Se(e,t,n){return Array.prototype.slice.call(e,t,n)}function Ce(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return e[n]}function we(e,t){return Array.prototype.concat.apply([],e.map(t))}function Te(){let e=be(arguments).map(e=>x(te(e))),t=xe(arguments);if(typeof t!=`function`)throw TypeError(`Callback function expected as last argument`);return Ee(e,t)}function Ee(e,t){return{referTo:{references:e,callback:t}}}function De(e){if(typeof e!=`function`)throw TypeError(`Callback function expected as first argument`);return{referToSelf:{callback:e}}}function Oe(e){return e&&typeof e.referTo==`object`&&Array.isArray(e.referTo.references)&&typeof e.referTo.callback==`function`}function ke(e){return e&&typeof e.referToSelf==`object`&&typeof e.referToSelf.callback==`function`}function Ae(e,t){if(!e)return t;if(t&&t!==e){let n=Error(`Function names do not match (expected: `+e+`, actual: `+t+`)`);throw n.data={actual:t,expected:e},n}return e}function je(e){let t;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(_(e[n])||typeof e[n].signature==`string`)&&(t=Ae(t,e[n].name));return t}function Me(e,t){let n;for(n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(n in e&&t[n]!==e[n]){let r=Error(`Signature "`+n+`" is defined twice`);throw r.data={signature:n,sourceFunction:t[n],destFunction:e[n]},r}e[n]=t[n]}}let Ne=d;d=function(e){let t=typeof e==`string`,n=t?1:0,r=t?e:``,i={};for(let e=n;e<arguments.length;++e){let n=arguments[e],o={},s;if(typeof n==`function`?(s=n.name,typeof n.signature==`string`?o[n.signature]=n:_(n)&&(o=n.signatures)):a(n)&&(o=n,t||(s=je(n))),Object.keys(o).length===0){let t=TypeError(`Argument to 'typed' at index `+e+` is not a (typed) function, nor an object with signatures as keys and functions as values.`);throw t.data={index:e,argument:n},t}t||(r=Ae(r,s)),Me(i,o)}return ve(r||``,i)},d.create=i,d.createCount=Ne.createCount,d.onMismatch=ye,d.throwMismatchError=ye,d.createError=ae,d.clear=m,d.clearConversions=h,d.addTypes=p,d._findType=f,d.referTo=Te,d.referToSelf=De,d.convert=b,d.findSignature=v,d.find=y,d.isTypedFunction=_,d.warnAgainstDeprecatedThis=!0,d.addType=function(e,t){let n=`any`;t!==!1&&c.has(`Object`)&&(n=`Object`),d.addTypes([e],n)};function Pe(e){if(!e||typeof e.from!=`string`||typeof e.to!=`string`||typeof e.convert!=`function`)throw TypeError(`Object with properties {from: string, to: string, convert: function} expected`);if(e.to===e.from)throw SyntaxError(`Illegal to define conversion from "`+e.from+`" to itself.`)}return d.addConversion=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{override:!1};Pe(e);let n=f(e.to),r=n.conversionsTo.find(t=>t.from===e.from);if(r)if(t&&t.override)d.removeConversion({from:r.from,to:e.to,convert:r.convert});else throw Error(`There is already a conversion from "`+e.from+`" to "`+n.name+`"`);n.conversionsTo.push({from:e.from,convert:e.convert,index:u++})},d.addConversions=function(e,t){e.forEach(e=>d.addConversion(e,t))},d.removeConversion=function(e){Pe(e);let t=f(e.to),n=Ce(t.conversionsTo,t=>t.from===e.from);if(!n)throw Error(`Attempt to remove nonexistent conversion from `+e.from+` to `+e.to);if(n.convert!==e.convert)throw Error(`Conversion to remove does not match existing conversion`);let r=t.conversionsTo.indexOf(n);t.conversionsTo.splice(r,1)},d.resolve=function(e,t){if(!_(e))throw TypeError(r);let n=e._typedFunctionData.signatures;for(let e=0;e<n.length;++e)if(n[e].test(t))return n[e];return null},d}var a=i();return a}))}));function Gs(e){return typeof e==`boolean`?!0:isFinite(e)?e===Math.round(e):!1}function Ks(e,t,n){var r={2:`0b`,8:`0o`,16:`0x`},i=r[t],a=``;if(n){if(n<1)throw Error(`size must be in greater than 0`);if(!Gs(n))throw Error(`size must be an integer`);if(e>2**(n-1)-1||e<-(2**(n-1)))throw Error(`Value must be in range [-2^${n-1}, 2^${n-1}-1]`);if(!Gs(e))throw Error(`Value must be an integer`);e<0&&(e+=2**n),a=`i${n}`}var o=``;return e<0&&(e=-e,o=`-`),`${o}${i}${e.toString(t)}${a}`}function qs(e,t){if(typeof t==`function`)return t(e);if(e===1/0)return`Infinity`;if(e===-1/0)return`-Infinity`;if(isNaN(e))return`NaN`;var n=`auto`,r,i;if(t&&(t.notation&&(n=t.notation),L(t)?r=t:L(t.precision)&&(r=t.precision),t.wordSize&&(i=t.wordSize,typeof i!=`number`)))throw Error(`Option "wordSize" must be a number`);switch(n){case`fixed`:return Xs(e,r);case`exponential`:return Zs(e,r);case`engineering`:return Ys(e,r);case`bin`:return Ks(e,2,i);case`oct`:return Ks(e,8,i);case`hex`:return Ks(e,16,i);case`auto`:return Qs(e,r,t&&t).replace(/((\.\d*?)(0+))($|e)/,function(){var e=arguments[2],t=arguments[4];return e===`.`?t:e+t});default:throw Error(`Unknown notation "`+n+`". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.`)}}function Js(e){var t=String(e).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!t)throw SyntaxError(`Invalid number `+e);var n=t[1],r=t[2],i=parseFloat(t[4]||`0`),a=r.indexOf(`.`);i+=a===-1?r.length-1:a-1;var o=r.replace(`.`,``).replace(/^0*/,function(e){return i-=e.length,``}).replace(/0*$/,``).split(``).map(function(e){return parseInt(e)});return o.length===0&&(o.push(0),i++),{sign:n,coefficients:o,exponent:i}}function Ys(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=Js(e),r=$s(n,t),i=r.exponent,a=r.coefficients,o=i%3==0?i:i<0?i-3-i%3:i-i%3;if(L(t))for(;t>a.length||i-o+1>a.length;)a.push(0);else for(var s=Math.abs(i-o)-(a.length-1),c=0;c<s;c++)a.push(0);for(var l=Math.abs(i-o),u=1;l>0;)u++,l--;var d=a.slice(u).join(``),f=L(t)&&d.length||d.match(/[1-9]/)?`.`+d:``,p=a.slice(0,u).join(``)+f+`e`+(i>=0?`+`:``)+o.toString();return r.sign+p}function Xs(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=Js(e),r=typeof t==`number`?$s(n,n.exponent+1+t):n,i=r.coefficients,a=r.exponent+1,o=a+(t||0);return i.length<o&&(i=i.concat(ec(o-i.length))),a<0&&(i=ec(-a+1).concat(i),a=1),a<i.length&&i.splice(a,0,a===0?`0.`:`.`),r.sign+i.join(``)}function Zs(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=Js(e),r=t?$s(n,t):n,i=r.coefficients,a=r.exponent;i.length<t&&(i=i.concat(ec(t-i.length)));var o=i.shift();return r.sign+o+(i.length>0?`.`+i.join(``):``)+`e`+(a>=0?`+`:``)+a}function Qs(e,t,n){if(isNaN(e)||!isFinite(e))return String(e);var r=n&&n.lowerExp!==void 0?n.lowerExp:-3,i=n&&n.upperExp!==void 0?n.upperExp:5,a=Js(e),o=t?$s(a,t):a;if(o.exponent<r||o.exponent>=i)return Zs(e,t);var s=o.coefficients,c=o.exponent;s.length<t&&(s=s.concat(ec(t-s.length))),s=s.concat(ec(c-s.length+1+(s.length<t?t-s.length:0))),s=ec(-c).concat(s);var l=c>0?c:0;return l<s.length-1&&s.splice(l+1,0,`.`),o.sign+s.join(``)}function $s(e,t){for(var n={sign:e.sign,coefficients:e.coefficients,exponent:e.exponent},r=n.coefficients;t<=0;)r.unshift(0),n.exponent++,t++;if(r.length>t){var i=r.splice(t,r.length-t);if(i[0]>=5){var a=t-1;for(r[a]++;r[a]===10;)r.pop(),a===0&&(r.unshift(0),n.exponent++,a++),a--,r[a]++}}return n}function ec(e){for(var t=[],n=0;n<e;n++)t.push(0);return t}function tc(e){return e.toExponential().replace(/e.*$/,``).replace(/^0\.?0*|\./,``).length}var nc=2**-52||2220446049250313e-31;function rc(e,t,n){var r=e.constructor,i=new r(2),a=``;if(n){if(n<1)throw Error(`size must be in greater than 0`);if(!Gs(n))throw Error(`size must be an integer`);if(e.greaterThan(i.pow(n-1).sub(1))||e.lessThan(i.pow(n-1).mul(-1)))throw Error(`Value must be in range [-2^${n-1}, 2^${n-1}-1]`);if(!e.isInteger())throw Error(`Value must be an integer`);e.lessThan(0)&&(e=e.add(i.pow(n))),a=`i${n}`}switch(t){case 2:return`${e.toBinary()}${a}`;case 8:return`${e.toOctal()}${a}`;case 16:return`${e.toHexadecimal()}${a}`;default:throw Error(`Base ${t} not supported `)}}function ic(e,t){if(typeof t==`function`)return t(e);if(!e.isFinite())return e.isNaN()?`NaN`:e.gt(0)?`Infinity`:`-Infinity`;var n=`auto`,r,i;if(t!==void 0&&(t.notation&&(n=t.notation),typeof t==`number`?r=t:t.precision!==void 0&&(r=t.precision),t.wordSize&&(i=t.wordSize,typeof i!=`number`)))throw Error(`Option "wordSize" must be a number`);switch(n){case`fixed`:return sc(e,r);case`exponential`:return oc(e,r);case`engineering`:return ac(e,r);case`bin`:return rc(e,2,i);case`oct`:return rc(e,8,i);case`hex`:return rc(e,16,i);case`auto`:var a=t&&t.lowerExp!==void 0?t.lowerExp:-3,o=t&&t.upperExp!==void 0?t.upperExp:5;if(e.isZero())return`0`;var s,c=e.toSignificantDigits(r),l=c.e;return s=l>=a&&l<o?c.toFixed():oc(e,r),s.replace(/((\.\d*?)(0+))($|e)/,function(){var e=arguments[2],t=arguments[4];return e===`.`?t:e+t});default:throw Error(`Unknown notation "`+n+`". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.`)}}function ac(e,t){var n=e.e,r=n%3==0?n:n<0?n-3-n%3:n-n%3,i=e.mul(10**-r),a=i.toPrecision(t);if(a.indexOf(`e`)!==-1){var o=e.constructor;a=new o(a).toFixed()}return a+`e`+(n>=0?`+`:``)+r.toString()}function oc(e,t){return t===void 0?e.toExponential():e.toExponential(t-1)}function sc(e,t){return e.toFixed(t)}function cc(e,t){var n=lc(e,t);return t&&typeof t==`object`&&`truncate`in t&&n.length>t.truncate?n.substring(0,t.truncate-3)+`...`:n}function lc(e,t){if(typeof e==`number`)return qs(e,t);if(Yo(e))return ic(e,t);if(pc(e))return!t||t.fraction!==`decimal`?e.s*e.n+`/`+e.d:e.toString();if(Array.isArray(e))return fc(e,t);if($o(e))return uc(e);if(typeof e==`function`)return e.syntax?String(e.syntax):`function`;if(e&&typeof e==`object`){if(typeof e.format==`function`)return e.format(t);if(e&&e.toString(t)!=={}.toString())return e.toString(t);var n=Object.keys(e).map(n=>uc(n)+`: `+cc(e[n],t));return`{`+n.join(`, `)+`}`}return String(e)}function uc(e){for(var t=String(e),n=``,r=0;r<t.length;){var i=t.charAt(r);n+=i in dc?dc[i]:i,r++}return`"`+n+`"`}var dc={'"':`\\"`,"\\":`\\\\`,"\b":`\\b`,"\f":`\\f`,"\n":`\\n`,"\r":`\\r`," ":`\\t`};function fc(e,t){if(Array.isArray(e)){for(var n=`[`,r=e.length,i=0;i<r;i++)i!==0&&(n+=`, `),n+=fc(e[i],t);return n+=`]`,n}else return cc(e,t)}function pc(e){return e&&typeof e==`object`&&typeof e.s==`number`&&typeof e.n==`number`&&typeof e.d==`number`||!1}function z(e,t,n){if(!(this instanceof z))throw SyntaxError(`Constructor must be called with the new operator`);this.actual=e,this.expected=t,this.relation=n,this.message=`Dimension mismatch (`+(Array.isArray(e)?`[`+e.join(`, `)+`]`:e)+` `+(this.relation||`!=`)+` `+(Array.isArray(t)?`[`+t.join(`, `)+`]`:t)+`)`,this.stack=Error().stack}z.prototype=RangeError(),z.prototype.constructor=RangeError,z.prototype.name=`DimensionError`,z.prototype.isDimensionError=!0;function mc(e,t,n){if(!(this instanceof mc))throw SyntaxError(`Constructor must be called with the new operator`);this.index=e,arguments.length<3?(this.min=0,this.max=t):(this.min=t,this.max=n),this.min!==void 0&&this.index<this.min?this.message=`Index out of range (`+this.index+` < `+this.min+`)`:this.max!==void 0&&this.index>=this.max?this.message=`Index out of range (`+this.index+` > `+(this.max-1)+`)`:this.message=`Index out of range (`+this.index+`)`,this.stack=Error().stack}mc.prototype=RangeError(),mc.prototype.constructor=RangeError,mc.prototype.name=`IndexError`,mc.prototype.isIndexError=!0;var hc=c(qo(),1);function gc(e){for(var t=[];Array.isArray(e);)t.push(e.length),e=e[0];return t}function _c(e,t,n){var r,i=e.length;if(i!==t[n])throw new z(i,t[n]);if(n<t.length-1){var a=n+1;for(r=0;r<i;r++){var o=e[r];if(!Array.isArray(o))throw new z(t.length-1,t.length,`<`);_c(e[r],t,a)}}else for(r=0;r<i;r++)if(Array.isArray(e[r]))throw new z(t.length+1,t.length,`>`)}function vc(e,t){var n=t.length===0;if(n){if(Array.isArray(e))throw new z(e.length,0)}else _c(e,t,0)}function B(e,t){if(e!==void 0){if(!L(e)||!Gs(e))throw TypeError(`Index must be an integer (value: `+e+`)`);if(e<0||typeof t==`number`&&e>=t)throw new mc(e,t)}}function yc(e,t,n){if(!Array.isArray(t))throw TypeError(`Array expected`);if(t.length===0)throw Error(`Resizing to scalar is not supported`);t.forEach(function(e){if(!L(e)||!Gs(e)||e<0)throw TypeError(`Invalid size, must contain positive integers (size: `+cc(t)+`)`)}),(L(e)||Yo(e))&&(e=[e]);var r=n===void 0?0:n;return bc(e,t,0,r),e}function bc(e,t,n,r){var i,a,o=e.length,s=t[n],c=Math.min(o,s);if(e.length=s,n<t.length-1){var l=n+1;for(i=0;i<c;i++)a=e[i],Array.isArray(a)||(a=[a],e[i]=a),bc(a,t,l,r);for(i=c;i<s;i++)a=[],e[i]=a,bc(a,t,l,r)}else{for(i=0;i<c;i++)for(;Array.isArray(e[i]);)e[i]=e[i][0];for(i=c;i<s;i++)e[i]=r}}function xc(e,t){var n=Dc(e),r=n.length;if(!Array.isArray(e)||!Array.isArray(t))throw TypeError(`Array expected`);if(t.length===0)throw new z(0,r,`!=`);t=Sc(t,r);var i=Cc(t);if(r!==i)throw new z(i,r,`!=`);try{return wc(n,t)}catch(e){throw e instanceof z?new z(i,r,`!=`):e}}function Sc(e,t){var n=Cc(e),r=e.slice(),i=-1,a=e.indexOf(i),o=e.indexOf(i,a+1)>=0;if(o)throw Error(`More than one wildcard in sizes`);var s=a>=0,c=t%n===0;if(s)if(c)r[a]=-t/n;else throw Error(`Could not replace wildcard, since `+t+` is no multiple of `+-n);return r}function Cc(e){return e.reduce((e,t)=>e*t,1)}function wc(e,t){for(var n=e,r,i=t.length-1;i>0;i--){var a=t[i];r=[];for(var o=n.length/a,s=0;s<o;s++)r.push(n.slice(s*a,(s+1)*a));n=r}return n}function Tc(e,t,n,r){var i=r||gc(e);if(n)for(var a=0;a<n;a++)e=[e],i.unshift(1);for(e=Ec(e,t,0);i.length<t;)i.push(1);return e}function Ec(e,t,n){var r,i;if(Array.isArray(e)){var a=n+1;for(r=0,i=e.length;r<i;r++)e[r]=Ec(e[r],t,a)}else for(var o=n;o<t;o++)e=[e];return e}function Dc(e){if(!Array.isArray(e))return e;var t=[];return e.forEach(function e(n){Array.isArray(n)?n.forEach(e):t.push(n)}),t}function Oc(e,t){for(var n,r=0,i=0;i<e.length;i++){var a=e[i],o=Array.isArray(a);if(i===0&&o&&(r=a.length),o&&a.length!==r)return;var s=o?Oc(a,t):t(a);if(n===void 0)n=s;else if(n!==s)return`mixed`}return n}function kc(e,t,n,r){if(r<n){if(e.length!==t.length)throw new z(e.length,t.length);for(var i=[],a=0;a<e.length;a++)i[a]=kc(e[a],t[a],n,r+1);return i}else return e.concat(t)}function Ac(){var e=Array.prototype.slice.call(arguments,0,-1),t=Array.prototype.slice.call(arguments,-1);if(e.length===1)return e[0];if(e.length>1)return e.slice(1).reduce(function(e,n){return kc(e,n,t,0)},e[0]);throw Error(`Wrong number of arguments in function concat`)}function jc(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=t.map(e=>e.length),i=Math.max(...r),a=Array(i).fill(null),o=0;o<t.length;o++)for(var s=t[o],c=r[o],l=0;l<c;l++){var u=i-c+l;s[l]>a[u]&&(a[u]=s[l])}for(var d=0;d<t.length;d++)Mc(t[d],a);return a}function Mc(e,t){for(var n=t.length,r=e.length,i=0;i<r;i++){var a=n-r+i;if(e[i]<t[a]&&e[i]>1||e[i]>t[a])throw Error(`shape missmatch: missmatch is found in arg with shape (${e}) not possible to broadcast dimension ${r} with size ${e[i]} to size ${t[a]}`)}}function Nc(e,t){var n=gc(e);if(Ls(n,t))return e;Mc(n,t);var r=jc(n,t),i=r.length,a=[...Array(i-n.length).fill(1),...n],o=Fc(e);n.length<i&&(o=xc(o,a),n=gc(o));for(var s=0;s<i;s++)n[s]<r[s]&&(o=Pc(o,r[s],s),n=gc(o));return o}function Pc(e,t,n){return Ac(...Array(t).fill(e),n)}function Fc(e){return(0,hc.default)([],e)}function Ic(e,t,n,r){function i(r){var i=zs(r,t.map(zc));return Lc(e,t,r),n(i)}return i.isFactory=!0,i.fn=e,i.dependencies=t.slice().sort(),r&&(i.meta=r),i}function Lc(e,t,n){var r=t.filter(e=>!Rc(e)).every(e=>n[e]!==void 0);if(!r){var i=t.filter(e=>n[e]===void 0);throw Error(`Cannot create function "${e}", some dependencies are missing: ${i.map(e=>`"${e}"`).join(`, `)}.`)}}function Rc(e){return e&&e[0]===`?`}function zc(e){return e&&e[0]===`?`?e.slice(1):e}function Bc(e,t){if(Gc(e)&&Uc(e,t))return e[t];throw typeof e[t]==`function`&&Wc(e,t)?Error(`Cannot access method "`+t+`" as a property`):Error(`No access to property "`+t+`"`)}function Vc(e,t,n){if(Gc(e)&&Uc(e,t))return e[t]=n,n;throw Error(`No access to property "`+t+`"`)}function Hc(e,t){return t in e}function Uc(e,t){return!e||typeof e!=`object`?!1:Rs(Kc,t)?!0:!(t in Object.prototype||t in Function.prototype)}function Wc(e,t){return e==null||typeof e[t]!=`function`||Rs(e,t)&&Object.getPrototypeOf&&t in Object.getPrototypeOf(e)?!1:Rs(qc,t)?!0:!(t in Object.prototype||t in Function.prototype)}function Gc(e){return typeof e==`object`&&e&&e.constructor===Object}var Kc={length:!0,name:!0},qc={toString:!0,valueOf:!0,toLocaleString:!0},Jc=class{constructor(e){this.wrappedObject=e}keys(){return Object.keys(this.wrappedObject)}get(e){return Bc(this.wrappedObject,e)}set(e,t){return Vc(this.wrappedObject,e,t),this}has(e){return Hc(this.wrappedObject,e)}};function Yc(e){return e?e instanceof Map||e instanceof Jc||typeof e.set==`function`&&typeof e.get==`function`&&typeof e.keys==`function`&&typeof e.has==`function`:!1}var Xc=c(Ws(),1),Zc=function(){return Zc=Xc.default.create,Xc.default},Qc=[`?BigNumber`,`?Complex`,`?DenseMatrix`,`?Fraction`],$c=Ic(`typed`,Qc,function(e){var{BigNumber:t,Complex:n,DenseMatrix:r,Fraction:i}=e,a=Zc();return a.clear(),a.addTypes([{name:`number`,test:L},{name:`Complex`,test:Xo},{name:`BigNumber`,test:Yo},{name:`Fraction`,test:Zo},{name:`Unit`,test:Qo},{name:`identifier`,test:e=>$o&&/^(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(e)},{name:`string`,test:$o},{name:`Chain`,test:Ns},{name:`Array`,test:R},{name:`Matrix`,test:es},{name:`DenseMatrix`,test:ns},{name:`SparseMatrix`,test:rs},{name:`Range`,test:os},{name:`Index`,test:ss},{name:`boolean`,test:cs},{name:`ResultSet`,test:ls},{name:`Help`,test:us},{name:`function`,test:ds},{name:`Date`,test:fs},{name:`RegExp`,test:ps},{name:`null`,test:hs},{name:`undefined`,test:gs},{name:`AccessorNode`,test:_s},{name:`ArrayNode`,test:vs},{name:`AssignmentNode`,test:ys},{name:`BlockNode`,test:bs},{name:`ConditionalNode`,test:xs},{name:`ConstantNode`,test:Ss},{name:`FunctionNode`,test:ws},{name:`FunctionAssignmentNode`,test:Cs},{name:`IndexNode`,test:Ts},{name:`Node`,test:Es},{name:`ObjectNode`,test:Ds},{name:`OperatorNode`,test:Os},{name:`ParenthesisNode`,test:ks},{name:`RangeNode`,test:As},{name:`RelationalNode`,test:js},{name:`SymbolNode`,test:Ms},{name:`Map`,test:Yc},{name:`Object`,test:ms}]),a.addConversions([{from:`number`,to:`BigNumber`,convert:function(e){if(t||el(e),tc(e)>15)throw TypeError(`Cannot implicitly convert a number with >15 significant digits to BigNumber (value: `+e+`). Use function bignumber(x) to convert to BigNumber.`);return new t(e)}},{from:`number`,to:`Complex`,convert:function(e){return n||tl(e),new n(e,0)}},{from:`BigNumber`,to:`Complex`,convert:function(e){return n||tl(e),new n(e.toNumber(),0)}},{from:`Fraction`,to:`BigNumber`,convert:function(e){throw TypeError(`Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.`)}},{from:`Fraction`,to:`Complex`,convert:function(e){return n||tl(e),new n(e.valueOf(),0)}},{from:`number`,to:`Fraction`,convert:function(e){i||rl(e);var t=new i(e);if(t.valueOf()!==e)throw TypeError(`Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: `+e+`). Use function fraction(x) to convert to Fraction.`);return t}},{from:`string`,to:`number`,convert:function(e){var t=Number(e);if(isNaN(t))throw Error(`Cannot convert "`+e+`" to a number`);return t}},{from:`string`,to:`BigNumber`,convert:function(e){t||el(e);try{return new t(e)}catch{throw Error(`Cannot convert "`+e+`" to BigNumber`)}}},{from:`string`,to:`Fraction`,convert:function(e){i||rl(e);try{return new i(e)}catch{throw Error(`Cannot convert "`+e+`" to Fraction`)}}},{from:`string`,to:`Complex`,convert:function(e){n||tl(e);try{return new n(e)}catch{throw Error(`Cannot convert "`+e+`" to Complex`)}}},{from:`boolean`,to:`number`,convert:function(e){return+e}},{from:`boolean`,to:`BigNumber`,convert:function(e){return t||el(e),new t(+e)}},{from:`boolean`,to:`Fraction`,convert:function(e){return i||rl(e),new i(+e)}},{from:`boolean`,to:`string`,convert:function(e){return String(e)}},{from:`Array`,to:`Matrix`,convert:function(e){return r||nl(),new r(e)}},{from:`Matrix`,to:`Array`,convert:function(e){return e.valueOf()}}]),a.onMismatch=(e,t,n)=>{var r=a.createError(e,t,n);if([`wrongType`,`mismatch`].includes(r.data.category)&&t.length===1&&ts(t[0])&&n.some(e=>!e.params.includes(`,`))){var i=TypeError(`Function '${e}' doesn't apply to matrices. To call it elementwise on a matrix 'M', try 'map(M, ${e})'.`);throw i.data=r.data,i}throw r},a.onMismatch=(e,t,n)=>{var r=a.createError(e,t,n);if([`wrongType`,`mismatch`].includes(r.data.category)&&t.length===1&&ts(t[0])&&n.some(e=>!e.params.includes(`,`))){var i=TypeError(`Function '${e}' doesn't apply to matrices. To call it elementwise on a matrix 'M', try 'map(M, ${e})'.`);throw i.data=r.data,i}throw r},a});function el(e){throw Error(`Cannot convert value ${e} into a BigNumber: no class 'BigNumber' provided`)}function tl(e){throw Error(`Cannot convert value ${e} into a Complex number: no class 'Complex' provided`)}function nl(){throw Error(`Cannot convert array into a Matrix: no class 'DenseMatrix' provided`)}function rl(e){throw Error(`Cannot convert value ${e} into a Fraction, no class 'Fraction' provided.`)}
|
|
192
|
-
/*!
|
|
193
|
-
|
|
194
|
-
* decimal.js v10.6.0
|
|
195
|
-
|
|
196
|
-
* An arbitrary-precision Decimal type for JavaScript.
|
|
197
|
-
|
|
198
|
-
* https://github.com/MikeMcl/decimal.js
|
|
199
|
-
|
|
200
|
-
* Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>
|
|
201
|
-
|
|
202
|
-
* MIT Licence
|
|
203
|
-
|
|
204
|
-
*/
|
|
205
|
-
var il=9e15,al=1e9,ol=`0123456789abcdef`,sl=`2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058`,cl=`3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789`,ll={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-il,maxE:il,crypto:!1},ul,dl,V=!0,fl=`[DecimalError] `,pl=fl+`Invalid argument: `,ml=fl+`Precision limit exceeded`,hl=fl+`crypto unavailable`,gl=`[object Decimal]`,H=Math.floor,U=Math.pow,_l=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,vl=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,yl=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,bl=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,W=1e7,G=7,xl=9007199254740991,Sl=sl.length-1,Cl=cl.length-1,K={toStringTag:gl};K.absoluteValue=K.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),X(e)},K.ceil=function(){return X(new this.constructor(this),this.e+1,2)},K.clampedTo=K.clamp=function(e,t){var n,r=this,i=r.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(pl+t);return n=r.cmp(e),n<0?e:r.cmp(t)>0?t:new i(r)},K.comparedTo=K.cmp=function(e){var t,n,r,i,a=this,o=a.d,s=(e=new a.constructor(e)).d,c=a.s,l=e.s;if(!o||!s)return!c||!l?NaN:c===l?o===s?0:!o^c<0?1:-1:c;if(!o[0]||!s[0])return o[0]?c:s[0]?-l:0;if(c!==l)return c;if(a.e!==e.e)return a.e>e.e^c<0?1:-1;for(r=o.length,i=s.length,t=0,n=r<i?r:i;t<n;++t)if(o[t]!==s[t])return o[t]>s[t]^c<0?1:-1;return r===i?0:r>i^c<0?1:-1},K.cosine=K.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+G,r.rounding=1,n=El(r,Wl(r,n)),r.precision=e,r.rounding=t,X(dl==2||dl==3?n.neg():n,e,t,!0)):new r(1):new r(NaN)},K.cubeRoot=K.cbrt=function(){var e,t,n,r,i,a,o,s,c,l,u=this,d=u.constructor;if(!u.isFinite()||u.isZero())return new d(u);for(V=!1,a=u.s*U(u.s*u,1/3),!a||Math.abs(a)==1/0?(n=q(u.d),e=u.e,(a=(e-n.length+1)%3)&&(n+=a==1||a==-2?`0`:`00`),a=U(n,1/3),e=H((e+1)/3)-(e%3==(e<0?-1:2)),a==1/0?n=`5e`+e:(n=a.toExponential(),n=n.slice(0,n.indexOf(`e`)+1)+e),r=new d(n),r.s=u.s):r=new d(a.toString()),o=(e=d.precision)+3;;)if(s=r,c=s.times(s).times(s),l=c.plus(u),r=Y(l.plus(u).times(s),l.plus(c),o+2,1),q(s.d).slice(0,o)===(n=q(r.d)).slice(0,o))if(n=n.slice(o-3,o+1),n==`9999`||!i&&n==`4999`){if(!i&&(X(s,e+1,0),s.times(s).times(s).eq(u))){r=s;break}o+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)==`5`)&&(X(r,e+1,1),t=!r.times(r).times(r).eq(u));break}return V=!0,X(r,e,d.rounding,t)},K.decimalPlaces=K.dp=function(){var e,t=this.d,n=NaN;if(t){if(e=t.length-1,n=(e-H(this.e/G))*G,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n},K.dividedBy=K.div=function(e){return Y(this,new this.constructor(e))},K.dividedToIntegerBy=K.divToInt=function(e){var t=this,n=t.constructor;return X(Y(t,new n(e),0,1,1),n.precision,n.rounding)},K.equals=K.eq=function(e){return this.cmp(e)===0},K.floor=function(){return X(new this.constructor(this),this.e+1,3)},K.greaterThan=K.gt=function(e){return this.cmp(e)>0},K.greaterThanOrEqualTo=K.gte=function(e){var t=this.cmp(e);return t==1||t===0},K.hyperbolicCosine=K.cosh=function(){var e,t,n,r,i,a=this,o=a.constructor,s=new o(1);if(!a.isFinite())return new o(a.s?1/0:NaN);if(a.isZero())return s;n=o.precision,r=o.rounding,o.precision=n+Math.max(a.e,a.sd())+4,o.rounding=1,i=a.d.length,i<32?(e=Math.ceil(i/3),t=(1/Ul(4,e)).toString()):(e=16,t=`2.3283064365386962890625e-10`),a=Hl(o,1,a.times(t),new o(1),!0);for(var c,l=e,u=new o(8);l--;)c=a.times(a),a=s.minus(c.times(u.minus(c.times(u))));return X(a,o.precision=n,o.rounding=r,!0)},K.hyperbolicSine=K.sinh=function(){var e,t,n,r,i=this,a=i.constructor;if(!i.isFinite()||i.isZero())return new a(i);if(t=a.precision,n=a.rounding,a.precision=t+Math.max(i.e,i.sd())+4,a.rounding=1,r=i.d.length,r<3)i=Hl(a,2,i,i,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,i=i.times(1/Ul(5,e)),i=Hl(a,2,i,i,!0);for(var o,s=new a(5),c=new a(16),l=new a(20);e--;)o=i.times(i),i=i.times(s.plus(o.times(c.times(o).plus(l))))}return a.precision=t,a.rounding=n,X(i,t,n,!0)},K.hyperbolicTangent=K.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,Y(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)},K.inverseCosine=K.acos=function(){var e=this,t=e.constructor,n=e.abs().cmp(1),r=t.precision,i=t.rounding;return n===-1?e.isZero()?Al(t,r+4,i).times(.5):(t.precision=r+6,t.rounding=1,e=new t(1).minus(e).div(e.plus(1)).sqrt().atan(),t.precision=r,t.rounding=i,e.times(2)):n===0?e.isNeg()?Al(t,r,i):new t(0):new t(NaN)},K.inverseHyperbolicCosine=K.acosh=function(){var e,t,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(e=r.precision,t=r.rounding,r.precision=e+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,V=!1,n=n.times(n).minus(1).sqrt().plus(n),V=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)},K.inverseHyperbolicSine=K.asinh=function(){var e,t,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,V=!1,n=n.times(n).plus(1).sqrt().plus(n),V=!0,r.precision=e,r.rounding=t,n.ln())},K.inverseHyperbolicTangent=K.atanh=function(){var e,t,n,r,i=this,a=i.constructor;return i.isFinite()?i.e>=0?new a(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=a.precision,t=a.rounding,r=i.sd(),Math.max(r,e)<2*-i.e-1?X(new a(i),e,t,!0):(a.precision=n=r-i.e,i=Y(i.plus(1),new a(1).minus(i),n+e,1),a.precision=e+4,a.rounding=1,i=i.ln(),a.precision=e,a.rounding=t,i.times(.5))):new a(NaN)},K.inverseSine=K.asin=function(){var e,t,n,r,i=this,a=i.constructor;return i.isZero()?new a(i):(t=i.abs().cmp(1),n=a.precision,r=a.rounding,t===-1?(a.precision=n+6,a.rounding=1,i=i.div(new a(1).minus(i.times(i)).sqrt().plus(1)).atan(),a.precision=n,a.rounding=r,i.times(2)):t===0?(e=Al(a,n+4,r).times(.5),e.s=i.s,e):new a(NaN))},K.inverseTangent=K.atan=function(){var e,t,n,r,i,a,o,s,c,l=this,u=l.constructor,d=u.precision,f=u.rounding;if(l.isFinite()){if(l.isZero())return new u(l);if(l.abs().eq(1)&&d+4<=Cl)return o=Al(u,d+4,f).times(.25),o.s=l.s,o}else{if(!l.s)return new u(NaN);if(d+4<=Cl)return o=Al(u,d+4,f).times(.5),o.s=l.s,o}for(u.precision=s=d+10,u.rounding=1,n=Math.min(28,s/G+2|0),e=n;e;--e)l=l.div(l.times(l).plus(1).sqrt().plus(1));for(V=!1,t=Math.ceil(s/G),r=1,c=l.times(l),o=new u(l),i=l;e!==-1;)if(i=i.times(c),a=o.minus(i.div(r+=2)),i=i.times(c),o=a.plus(i.div(r+=2)),o.d[t]!==void 0)for(e=t;o.d[e]===a.d[e]&&e--;);return n&&(o=o.times(2<<n-1)),V=!0,X(o,u.precision=d,u.rounding=f,!0)},K.isFinite=function(){return!!this.d},K.isInteger=K.isInt=function(){return!!this.d&&H(this.e/G)>this.d.length-2},K.isNaN=function(){return!this.s},K.isNegative=K.isNeg=function(){return this.s<0},K.isPositive=K.isPos=function(){return this.s>0},K.isZero=function(){return!!this.d&&this.d[0]===0},K.lessThan=K.lt=function(e){return this.cmp(e)<0},K.lessThanOrEqualTo=K.lte=function(e){return this.cmp(e)<1},K.logarithm=K.log=function(e){var t,n,r,i,a,o,s,c,l=this,u=l.constructor,d=u.precision,f=u.rounding,p=5;if(e==null)e=new u(10),t=!0;else{if(e=new u(e),n=e.d,e.s<0||!n||!n[0]||e.eq(1))return new u(NaN);t=e.eq(10)}if(n=l.d,l.s<0||!n||!n[0]||l.eq(1))return new u(n&&!n[0]?-1/0:l.s==1?n?0:1/0:NaN);if(t)if(n.length>1)a=!0;else{for(i=n[0];i%10==0;)i/=10;a=i!==1}if(V=!1,s=d+p,o=Ll(l,s),r=t?kl(u,s+10):Ll(e,s),c=Y(o,r,s,1),wl(c.d,i=d,f))do if(s+=10,o=Ll(l,s),r=t?kl(u,s+10):Ll(e,s),c=Y(o,r,s,1),!a){+q(c.d).slice(i+1,i+15)+1==1e14&&(c=X(c,d+1,0));break}while(wl(c.d,i+=10,f));return V=!0,X(c,d,f)},K.minus=K.sub=function(e){var t,n,r,i,a,o,s,c,l,u,d,f,p=this,m=p.constructor;if(e=new m(e),!p.d||!e.d)return!p.s||!e.s?e=new m(NaN):p.d?e.s=-e.s:e=new m(e.d||p.s!==e.s?p:NaN),e;if(p.s!=e.s)return e.s=-e.s,p.plus(e);if(l=p.d,f=e.d,s=m.precision,c=m.rounding,!l[0]||!f[0]){if(f[0])e.s=-e.s;else if(l[0])e=new m(p);else return new m(c===3?-0:0);return V?X(e,s,c):e}if(n=H(e.e/G),u=H(p.e/G),l=l.slice(),a=u-n,a){for(d=a<0,d?(t=l,a=-a,o=f.length):(t=f,n=u,o=l.length),r=Math.max(Math.ceil(s/G),o)+2,a>r&&(a=r,t.length=1),t.reverse(),r=a;r--;)t.push(0);t.reverse()}else{for(r=l.length,o=f.length,d=r<o,d&&(o=r),r=0;r<o;r++)if(l[r]!=f[r]){d=l[r]<f[r];break}a=0}for(d&&(t=l,l=f,f=t,e.s=-e.s),o=l.length,r=f.length-o;r>0;--r)l[o++]=0;for(r=f.length;r>a;){if(l[--r]<f[r]){for(i=r;i&&l[--i]===0;)l[i]=W-1;--l[i],l[r]+=W}l[r]-=f[r]}for(;l[--o]===0;)l.pop();for(;l[0]===0;l.shift())--n;return l[0]?(e.d=l,e.e=Ol(l,n),V?X(e,s,c):e):new m(c===3?-0:0)},K.modulo=K.mod=function(e){var t,n=this,r=n.constructor;return e=new r(e),!n.d||!e.s||e.d&&!e.d[0]?new r(NaN):!e.d||n.d&&!n.d[0]?X(new r(n),r.precision,r.rounding):(V=!1,r.modulo==9?(t=Y(n,e.abs(),0,3,1),t.s*=e.s):t=Y(n,e,0,r.modulo,1),t=t.times(e),V=!0,n.minus(t))},K.naturalExponential=K.exp=function(){return Il(this)},K.naturalLogarithm=K.ln=function(){return Ll(this)},K.negated=K.neg=function(){var e=new this.constructor(this);return e.s=-e.s,X(e)},K.plus=K.add=function(e){var t,n,r,i,a,o,s,c,l,u,d=this,f=d.constructor;if(e=new f(e),!d.d||!e.d)return!d.s||!e.s?e=new f(NaN):d.d||(e=new f(e.d||d.s===e.s?d:NaN)),e;if(d.s!=e.s)return e.s=-e.s,d.minus(e);if(l=d.d,u=e.d,s=f.precision,c=f.rounding,!l[0]||!u[0])return u[0]||(e=new f(d)),V?X(e,s,c):e;if(a=H(d.e/G),r=H(e.e/G),l=l.slice(),i=a-r,i){for(i<0?(n=l,i=-i,o=u.length):(n=u,r=a,o=l.length),a=Math.ceil(s/G),o=a>o?a+1:o+1,i>o&&(i=o,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(o=l.length,i=u.length,o-i<0&&(i=o,n=u,u=l,l=n),t=0;i;)t=(l[--i]=l[i]+u[i]+t)/W|0,l[i]%=W;for(t&&(l.unshift(t),++r),o=l.length;l[--o]==0;)l.pop();return e.d=l,e.e=Ol(l,r),V?X(e,s,c):e},K.precision=K.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(pl+e);return n.d?(t=jl(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t},K.round=function(){var e=this,t=e.constructor;return X(new t(e),e.e+1,t.rounding)},K.sine=K.sin=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+G,r.rounding=1,n=Vl(r,Wl(r,n)),r.precision=e,r.rounding=t,X(dl>2?n.neg():n,e,t,!0)):new r(NaN)},K.squareRoot=K.sqrt=function(){var e,t,n,r,i,a,o=this,s=o.d,c=o.e,l=o.s,u=o.constructor;if(l!==1||!s||!s[0])return new u(!l||l<0&&(!s||s[0])?NaN:s?o:1/0);for(V=!1,l=Math.sqrt(+o),l==0||l==1/0?(t=q(s),(t.length+c)%2==0&&(t+=`0`),l=Math.sqrt(t),c=H((c+1)/2)-(c<0||c%2),l==1/0?t=`5e`+c:(t=l.toExponential(),t=t.slice(0,t.indexOf(`e`)+1)+c),r=new u(t)):r=new u(l.toString()),n=(c=u.precision)+3;;)if(a=r,r=a.plus(Y(o,a,n+2,1)).times(.5),q(a.d).slice(0,n)===(t=q(r.d)).slice(0,n))if(t=t.slice(n-3,n+1),t==`9999`||!i&&t==`4999`){if(!i&&(X(a,c+1,0),a.times(a).eq(o))){r=a;break}n+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)==`5`)&&(X(r,c+1,1),e=!r.times(r).eq(o));break}return V=!0,X(r,c,u.rounding,e)},K.tangent=K.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,n=n.sin(),n.s=1,n=Y(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,X(dl==2||dl==4?n.neg():n,e,t,!0)):new r(NaN)},K.times=K.mul=function(e){var t,n,r,i,a,o,s,c,l,u=this,d=u.constructor,f=u.d,p=(e=new d(e)).d;if(e.s*=u.s,!f||!f[0]||!p||!p[0])return new d(!e.s||f&&!f[0]&&!p||p&&!p[0]&&!f?NaN:!f||!p?e.s/0:e.s*0);for(n=H(u.e/G)+H(e.e/G),c=f.length,l=p.length,c<l&&(a=f,f=p,p=a,o=c,c=l,l=o),a=[],o=c+l,r=o;r--;)a.push(0);for(r=l;--r>=0;){for(t=0,i=c+r;i>r;)s=a[i]+p[r]*f[i-r-1]+t,a[i--]=s%W|0,t=s/W|0;a[i]=(a[i]+t)%W|0}for(;!a[--o];)a.pop();return t?++n:a.shift(),e.d=a,e.e=Ol(a,n),V?X(e,d.precision,d.rounding):e},K.toBinary=function(e,t){return Gl(this,2,e,t)},K.toDecimalPlaces=K.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(J(e,0,al),t===void 0?t=r.rounding:J(t,0,8),X(n,e+n.e+1,t))},K.toExponential=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=Dl(r,!0):(J(e,0,al),t===void 0?t=i.rounding:J(t,0,8),r=X(new i(r),e+1,t),n=Dl(r,!0,e+1)),r.isNeg()&&!r.isZero()?`-`+n:n},K.toFixed=function(e,t){var n,r,i=this,a=i.constructor;return e===void 0?n=Dl(i):(J(e,0,al),t===void 0?t=a.rounding:J(t,0,8),r=X(new a(i),e+i.e+1,t),n=Dl(r,!1,e+r.e+1)),i.isNeg()&&!i.isZero()?`-`+n:n},K.toFraction=function(e){var t,n,r,i,a,o,s,c,l,u,d,f,p=this,m=p.d,h=p.constructor;if(!m)return new h(p);if(l=n=new h(1),r=c=new h(0),t=new h(r),a=t.e=jl(m)-p.e-1,o=a%G,t.d[0]=U(10,o<0?G+o:o),e==null)e=a>0?t:l;else{if(s=new h(e),!s.isInt()||s.lt(l))throw Error(pl+s);e=s.gt(t)?a>0?t:l:s}for(V=!1,s=new h(q(m)),u=h.precision,h.precision=a=m.length*G*2;d=Y(s,t,0,1,1),i=n.plus(d.times(r)),i.cmp(e)!=1;)n=r,r=i,i=l,l=c.plus(d.times(i)),c=i,i=t,t=s.minus(d.times(i)),s=i;return i=Y(e.minus(n),r,0,1,1),c=c.plus(i.times(l)),n=n.plus(i.times(r)),c.s=l.s=p.s,f=Y(l,r,a,1).minus(p).abs().cmp(Y(c,n,a,1).minus(p).abs())<1?[l,r]:[c,n],h.precision=u,V=!0,f},K.toHexadecimal=K.toHex=function(e,t){return Gl(this,16,e,t)},K.toNearest=function(e,t){var n=this,r=n.constructor;if(n=new r(n),e==null){if(!n.d)return n;e=new r(1),t=r.rounding}else{if(e=new r(e),t===void 0?t=r.rounding:J(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&=n.s,e}return e.d[0]?(V=!1,n=Y(n,e,0,t,1).times(e),V=!0,X(n)):(e.s=n.s,n=e),n},K.toNumber=function(){return+this},K.toOctal=function(e,t){return Gl(this,8,e,t)},K.toPower=K.pow=function(e){var t,n,r,i,a,o,s=this,c=s.constructor,l=+(e=new c(e));if(!s.d||!e.d||!s.d[0]||!e.d[0])return new c(U(+s,l));if(s=new c(s),s.eq(1))return s;if(r=c.precision,a=c.rounding,e.eq(1))return X(s,r,a);if(t=H(e.e/G),t>=e.d.length-1&&(n=l<0?-l:l)<=xl)return i=Nl(c,s,n,r),e.s<0?new c(1).div(i):X(i,r,a);if(o=s.s,o<0){if(t<e.d.length-1)return new c(NaN);if(e.d[t]&1||(o=1),s.e==0&&s.d[0]==1&&s.d.length==1)return s.s=o,s}return n=U(+s,l),t=n==0||!isFinite(n)?H(l*(Math.log(`0.`+q(s.d))/Math.LN10+s.e+1)):new c(n+``).e,t>c.maxE+1||t<c.minE-1?new c(t>0?o/0:0):(V=!1,c.rounding=s.s=1,n=Math.min(12,(t+``).length),i=Il(e.times(Ll(s,r+n)),r),i.d&&(i=X(i,r+5,1),wl(i.d,r,a)&&(t=r+10,i=X(Il(e.times(Ll(s,t+n)),t),t+5,1),+q(i.d).slice(r+1,r+15)+1==1e14&&(i=X(i,r+1,0)))),i.s=o,V=!0,c.rounding=a,X(i,r,a))},K.toPrecision=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=Dl(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(J(e,1,al),t===void 0?t=i.rounding:J(t,0,8),r=X(new i(r),e,t),n=Dl(r,e<=r.e||r.e<=i.toExpNeg,e)),r.isNeg()&&!r.isZero()?`-`+n:n},K.toSignificantDigits=K.toSD=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(J(e,1,al),t===void 0?t=r.rounding:J(t,0,8)),X(new r(n),e,t)},K.toString=function(){var e=this,t=e.constructor,n=Dl(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?`-`+n:n},K.truncated=K.trunc=function(){return X(new this.constructor(this),this.e+1,1)},K.valueOf=K.toJSON=function(){var e=this,t=e.constructor,n=Dl(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?`-`+n:n};function q(e){var t,n,r,i=e.length-1,a=``,o=e[0];if(i>0){for(a+=o,t=1;t<i;t++)r=e[t]+``,n=G-r.length,n&&(a+=Ml(n)),a+=r;o=e[t],r=o+``,n=G-r.length,n&&(a+=Ml(n))}else if(o===0)return`0`;for(;o%10==0;)o/=10;return a+o}function J(e,t,n){if(e!==~~e||e<t||e>n)throw Error(pl+e)}function wl(e,t,n,r){var i,a,o,s;for(a=e[0];a>=10;a/=10)--t;return--t<0?(t+=G,i=0):(i=Math.ceil((t+1)/G),t%=G),a=U(10,G-t),s=e[i]%a|0,r==null?t<3?(t==0?s=s/100|0:t==1&&(s=s/10|0),o=n<4&&s==99999||n>3&&s==49999||s==5e4||s==0):o=(n<4&&s+1==a||n>3&&s+1==a/2)&&(e[i+1]/a/100|0)==U(10,t-2)-1||(s==a/2||s==0)&&(e[i+1]/a/100|0)==0:t<4?(t==0?s=s/1e3|0:t==1?s=s/100|0:t==2&&(s=s/10|0),o=(r||n<4)&&s==9999||!r&&n>3&&s==4999):o=((r||n<4)&&s+1==a||!r&&n>3&&s+1==a/2)&&(e[i+1]/a/1e3|0)==U(10,t-3)-1,o}function Tl(e,t,n){for(var r,i=[0],a,o=0,s=e.length;o<s;){for(a=i.length;a--;)i[a]*=t;for(i[0]+=ol.indexOf(e.charAt(o++)),r=0;r<i.length;r++)i[r]>n-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/n|0,i[r]%=n)}return i.reverse()}function El(e,t){var n,r,i;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),i=(1/Ul(4,n)).toString()):(n=16,i=`2.3283064365386962890625e-10`),e.precision+=n,t=Hl(e,1,t.times(i),new e(1));for(var a=n;a--;){var o=t.times(t);t=o.times(o).minus(o).times(8).plus(1)}return e.precision-=n,t}var Y=(function(){function e(e,t,n){var r,i=0,a=e.length;for(e=e.slice();a--;)r=e[a]*t+i,e[a]=r%n|0,i=r/n|0;return i&&e.unshift(i),e}function t(e,t,n,r){var i,a;if(n!=r)a=n>r?1:-1;else for(i=a=0;i<n;i++)if(e[i]!=t[i]){a=e[i]>t[i]?1:-1;break}return a}function n(e,t,n,r){for(var i=0;n--;)e[n]-=i,i=e[n]<t[n]?1:0,e[n]=i*r+e[n]-t[n];for(;!e[0]&&e.length>1;)e.shift()}return function(r,i,a,o,s,c){var l,u,d,f,p,m,h,g,_,v,y,b,x,S,ee,C,te,w,T,ne,re=r.constructor,ie=r.s==i.s?1:-1,E=r.d,D=i.d;if(!E||!E[0]||!D||!D[0])return new re(!r.s||!i.s||(E?D&&E[0]==D[0]:!D)?NaN:E&&E[0]==0||!D?ie*0:ie/0);for(c?(p=1,u=r.e-i.e):(c=W,p=G,u=H(r.e/p)-H(i.e/p)),T=D.length,te=E.length,_=new re(ie),v=_.d=[],d=0;D[d]==(E[d]||0);d++);if(D[d]>(E[d]||0)&&u--,a==null?(S=a=re.precision,o=re.rounding):S=s?a+(r.e-i.e)+1:a,S<0)v.push(1),m=!0;else{if(S=S/p+2|0,d=0,T==1){for(f=0,D=D[0],S++;(d<te||f)&&S--;d++)ee=f*c+(E[d]||0),v[d]=ee/D|0,f=ee%D|0;m=f||d<te}else{for(f=c/(D[0]+1)|0,f>1&&(D=e(D,f,c),E=e(E,f,c),T=D.length,te=E.length),C=T,y=E.slice(0,T),b=y.length;b<T;)y[b++]=0;ne=D.slice(),ne.unshift(0),w=D[0],D[1]>=c/2&&++w;do f=0,l=t(D,y,T,b),l<0?(x=y[0],T!=b&&(x=x*c+(y[1]||0)),f=x/w|0,f>1?(f>=c&&(f=c-1),h=e(D,f,c),g=h.length,b=y.length,l=t(h,y,g,b),l==1&&(f--,n(h,T<g?ne:D,g,c))):(f==0&&(l=f=1),h=D.slice()),g=h.length,g<b&&h.unshift(0),n(y,h,b,c),l==-1&&(b=y.length,l=t(D,y,T,b),l<1&&(f++,n(y,T<b?ne:D,b,c))),b=y.length):l===0&&(f++,y=[0]),v[d++]=f,l&&y[0]?y[b++]=E[C]||0:(y=[E[C]],b=1);while((C++<te||y[0]!==void 0)&&S--);m=y[0]!==void 0}v[0]||v.shift()}if(p==1)_.e=u,ul=m;else{for(d=1,f=v[0];f>=10;f/=10)d++;_.e=d+u*p-1,X(_,s?a+_.e+1:a,o,m)}return _}})();function X(e,t,n,r){var i,a,o,s,c,l,u,d,f,p=e.constructor;out:if(t!=null){if(d=e.d,!d)return e;for(i=1,s=d[0];s>=10;s/=10)i++;if(a=t-i,a<0)a+=G,o=t,u=d[f=0],c=u/U(10,i-o-1)%10|0;else if(f=Math.ceil((a+1)/G),s=d.length,f>=s)if(r){for(;s++<=f;)d.push(0);u=c=0,i=1,a%=G,o=a-G+1}else break out;else{for(u=s=d[f],i=1;s>=10;s/=10)i++;a%=G,o=a-G+i,c=o<0?0:u/U(10,i-o-1)%10|0}if(r=r||t<0||d[f+1]!==void 0||(o<0?u:u%U(10,i-o-1)),l=n<4?(c||r)&&(n==0||n==(e.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(a>0?o>0?u/U(10,i-o):0:d[f-1])%10&1||n==(e.s<0?8:7)),t<1||!d[0])return d.length=0,l?(t-=e.e+1,d[0]=U(10,(G-t%G)%G),e.e=-t||0):d[0]=e.e=0,e;if(a==0?(d.length=f,s=1,f--):(d.length=f+1,s=U(10,G-a),d[f]=o>0?(u/U(10,i-o)%U(10,o)|0)*s:0),l)for(;;)if(f==0){for(a=1,o=d[0];o>=10;o/=10)a++;for(o=d[0]+=s,s=1;o>=10;o/=10)s++;a!=s&&(e.e++,d[0]==W&&(d[0]=1));break}else{if(d[f]+=s,d[f]!=W)break;d[f--]=0,s=1}for(a=d.length;d[--a]===0;)d.pop()}return V&&(e.e>p.maxE?(e.d=null,e.e=NaN):e.e<p.minE&&(e.e=0,e.d=[0])),e}function Dl(e,t,n){if(!e.isFinite())return Rl(e);var r,i=e.e,a=q(e.d),o=a.length;return t?(n&&(r=n-o)>0?a=a.charAt(0)+`.`+a.slice(1)+Ml(r):o>1&&(a=a.charAt(0)+`.`+a.slice(1)),a=a+(e.e<0?`e`:`e+`)+e.e):i<0?(a=`0.`+Ml(-i-1)+a,n&&(r=n-o)>0&&(a+=Ml(r))):i>=o?(a+=Ml(i+1-o),n&&(r=n-i-1)>0&&(a=a+`.`+Ml(r))):((r=i+1)<o&&(a=a.slice(0,r)+`.`+a.slice(r)),n&&(r=n-o)>0&&(i+1===o&&(a+=`.`),a+=Ml(r))),a}function Ol(e,t){var n=e[0];for(t*=G;n>=10;n/=10)t++;return t}function kl(e,t,n){if(t>Sl)throw V=!0,n&&(e.precision=n),Error(ml);return X(new e(sl),t,1,!0)}function Al(e,t,n){if(t>Cl)throw Error(ml);return X(new e(cl),t,n,!0)}function jl(e){var t=e.length-1,n=t*G+1;if(t=e[t],t){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function Ml(e){for(var t=``;e--;)t+=`0`;return t}function Nl(e,t,n,r){var i,a=new e(1),o=Math.ceil(r/G+4);for(V=!1;;){if(n%2&&(a=a.times(t),Kl(a.d,o)&&(i=!0)),n=H(n/2),n===0){n=a.d.length-1,i&&a.d[n]===0&&++a.d[n];break}t=t.times(t),Kl(t.d,o)}return V=!0,a}function Pl(e){return e.d[e.d.length-1]&1}function Fl(e,t,n){for(var r,i,a=new e(t[0]),o=0;++o<t.length;){if(i=new e(t[o]),!i.s){a=i;break}r=a.cmp(i),(r===n||r===0&&a.s===n)&&(a=i)}return a}function Il(e,t){var n,r,i,a,o,s,c,l=0,u=0,d=0,f=e.constructor,p=f.rounding,m=f.precision;if(!e.d||!e.d[0]||e.e>17)return new f(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(V=!1,c=m):c=t,s=new f(.03125);e.e>-2;)e=e.times(s),d+=5;for(r=Math.log(U(2,d))/Math.LN10*2+5|0,c+=r,n=a=o=new f(1),f.precision=c;;){if(a=X(a.times(e),c,1),n=n.times(++u),s=o.plus(Y(a,n,c,1)),q(s.d).slice(0,c)===q(o.d).slice(0,c)){for(i=d;i--;)o=X(o.times(o),c,1);if(t==null)if(l<3&&wl(o.d,c-r,p,l))f.precision=c+=10,n=a=s=new f(1),u=0,l++;else return X(o,f.precision=m,p,V=!0);else return f.precision=m,o}o=s}}function Ll(e,t){var n,r,i,a,o,s,c,l,u,d,f,p=1,m=10,h=e,g=h.d,_=h.constructor,v=_.rounding,y=_.precision;if(h.s<0||!g||!g[0]||!h.e&&g[0]==1&&g.length==1)return new _(g&&!g[0]?-1/0:h.s==1?g?0:h:NaN);if(t==null?(V=!1,u=y):u=t,_.precision=u+=m,n=q(g),r=n.charAt(0),Math.abs(a=h.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)h=h.times(e),n=q(h.d),r=n.charAt(0),p++;a=h.e,r>1?(h=new _(`0.`+n),a++):h=new _(r+`.`+n.slice(1))}else return l=kl(_,u+2,y).times(a+``),h=Ll(new _(r+`.`+n.slice(1)),u-m).plus(l),_.precision=y,t==null?X(h,y,v,V=!0):h;for(d=h,c=o=h=Y(h.minus(1),h.plus(1),u,1),f=X(h.times(h),u,1),i=3;;){if(o=X(o.times(f),u,1),l=c.plus(Y(o,new _(i),u,1)),q(l.d).slice(0,u)===q(c.d).slice(0,u))if(c=c.times(2),a!==0&&(c=c.plus(kl(_,u+2,y).times(a+``))),c=Y(c,new _(p),u,1),t==null)if(wl(c.d,u-m,v,s))_.precision=u+=m,l=o=h=Y(d.minus(1),d.plus(1),u,1),f=X(h.times(h),u,1),i=s=1;else return X(c,_.precision=y,v,V=!0);else return _.precision=y,c;c=l,i+=2}}function Rl(e){return String(e.s*e.s/0)}function zl(e,t){var n,r,i;for((n=t.indexOf(`.`))>-1&&(t=t.replace(`.`,``)),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;r++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(r,i),t){if(i-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%G,n<0&&(r+=G),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=G;r<i;)e.d.push(+t.slice(r,r+=G));t=t.slice(r),r=G-t.length}else r-=i;for(;r--;)t+=`0`;e.d.push(+t),V&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function Bl(e,t){var n,r,i,a,o,s,c,l,u;if(t.indexOf(`_`)>-1){if(t=t.replace(/(\d)_(?=\d)/g,`$1`),bl.test(t))return zl(e,t)}else if(t===`Infinity`||t===`NaN`)return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(vl.test(t))n=16,t=t.toLowerCase();else if(_l.test(t))n=2;else if(yl.test(t))n=8;else throw Error(pl+t);for(a=t.search(/p/i),a>0?(c=+t.slice(a+1),t=t.substring(2,a)):t=t.slice(2),a=t.indexOf(`.`),o=a>=0,r=e.constructor,o&&(t=t.replace(`.`,``),s=t.length,a=s-a,i=Nl(r,new r(n),a,a*2)),l=Tl(t,n,W),u=l.length-1,a=u;l[a]===0;--a)l.pop();return a<0?new r(e.s*0):(e.e=Ol(l,u),e.d=l,V=!1,o&&(e=Y(e,i,s*4)),c&&(e=e.times(Math.abs(c)<54?U(2,c):Pu.pow(2,c))),V=!0,e)}function Vl(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:Hl(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/Ul(5,n)),t=Hl(e,2,t,t);for(var i,a=new e(5),o=new e(16),s=new e(20);n--;)i=t.times(t),t=t.times(a.plus(i.times(o.times(i).minus(s))));return t}function Hl(e,t,n,r,i){var a,o,s,c,l=1,u=e.precision,d=Math.ceil(u/G);for(V=!1,c=n.times(n),s=new e(r);;){if(o=Y(s.times(c),new e(t++*t++),u,1),s=i?r.plus(o):r.minus(o),r=Y(o.times(c),new e(t++*t++),u,1),o=s.plus(r),o.d[d]!==void 0){for(a=d;o.d[a]===s.d[a]&&a--;);if(a==-1)break}a=s,s=r,r=o,o=a,l++}return V=!0,o.d.length=d+1,o}function Ul(e,t){for(var n=e;--t;)n*=e;return n}function Wl(e,t){var n,r=t.s<0,i=Al(e,e.precision,1),a=i.times(.5);if(t=t.abs(),t.lte(a))return dl=r?4:1,t;if(n=t.divToInt(i),n.isZero())dl=r?3:2;else{if(t=t.minus(n.times(i)),t.lte(a))return dl=Pl(n)?r?2:3:r?4:1,t;dl=Pl(n)?r?1:4:r?3:2}return t.minus(i).abs()}function Gl(e,t,n,r){var i,a,o,s,c,l,u,d,f,p=e.constructor,m=n!==void 0;if(m?(J(n,1,al),r===void 0?r=p.rounding:J(r,0,8)):(n=p.precision,r=p.rounding),!e.isFinite())u=Rl(e);else{for(u=Dl(e),o=u.indexOf(`.`),m?(i=2,t==16?n=n*4-3:t==8&&(n=n*3-2)):i=t,o>=0&&(u=u.replace(`.`,``),f=new p(1),f.e=u.length-o,f.d=Tl(Dl(f),10,i),f.e=f.d.length),d=Tl(u,10,i),a=c=d.length;d[--c]==0;)d.pop();if(!d[0])u=m?`0p+0`:`0`;else{if(o<0?a--:(e=new p(e),e.d=d,e.e=a,e=Y(e,f,n,r,0,i),d=e.d,a=e.e,l=ul),o=d[n],s=i/2,l||=d[n+1]!==void 0,l=r<4?(o!==void 0||l)&&(r===0||r===(e.s<0?3:2)):o>s||o===s&&(r===4||l||r===6&&d[n-1]&1||r===(e.s<0?8:7)),d.length=n,l)for(;++d[--n]>i-1;)d[n]=0,n||(++a,d.unshift(1));for(c=d.length;!d[c-1];--c);for(o=0,u=``;o<c;o++)u+=ol.charAt(d[o]);if(m){if(c>1)if(t==16||t==8){for(o=t==16?4:3,--c;c%o;c++)u+=`0`;for(d=Tl(u,i,t),c=d.length;!d[c-1];--c);for(o=1,u=`1.`;o<c;o++)u+=ol.charAt(d[o])}else u=u.charAt(0)+`.`+u.slice(1);u=u+(a<0?`p`:`p+`)+a}else if(a<0){for(;++a;)u=`0`+u;u=`0.`+u}else if(++a>c)for(a-=c;a--;)u+=`0`;else a<c&&(u=u.slice(0,a)+`.`+u.slice(a))}u=(t==16?`0x`:t==2?`0b`:t==8?`0o`:``)+u}return e.s<0?`-`+u:u}function Kl(e,t){if(e.length>t)return e.length=t,!0}function ql(e){return new this(e).abs()}function Jl(e){return new this(e).acos()}function Yl(e){return new this(e).acosh()}function Xl(e,t){return new this(e).plus(t)}function Zl(e){return new this(e).asin()}function Ql(e){return new this(e).asinh()}function $l(e){return new this(e).atan()}function eu(e){return new this(e).atanh()}function tu(e,t){e=new this(e),t=new this(t);var n,r=this.precision,i=this.rounding,a=r+4;return!e.s||!t.s?n=new this(NaN):!e.d&&!t.d?(n=Al(this,a,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?Al(this,r,i):new this(0),n.s=e.s):!e.d||t.isZero()?(n=Al(this,a,1).times(.5),n.s=e.s):t.s<0?(this.precision=a,this.rounding=1,n=this.atan(Y(e,t,a,1)),t=Al(this,a,1),this.precision=r,this.rounding=i,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(Y(e,t,a,1)),n}function nu(e){return new this(e).cbrt()}function ru(e){return X(e=new this(e),e.e+1,2)}function iu(e,t,n){return new this(e).clamp(t,n)}function au(e){if(!e||typeof e!=`object`)throw Error(fl+`Object expected`);var t,n,r,i=e.defaults===!0,a=[`precision`,1,al,`rounding`,0,8,`toExpNeg`,-il,0,`toExpPos`,0,il,`maxE`,0,il,`minE`,-il,0,`modulo`,0,9];for(t=0;t<a.length;t+=3)if(n=a[t],i&&(this[n]=ll[n]),(r=e[n])!==void 0)if(H(r)===r&&r>=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(pl+n+`: `+r);if(n=`crypto`,i&&(this[n]=ll[n]),(r=e[n])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(p!==void 0&&p&&(p.getRandomValues||p.randomBytes))this[n]=!0;else throw Error(hl);else this[n]=!1;else throw Error(pl+n+`: `+r);return this}function ou(e){return new this(e).cos()}function su(e){return new this(e).cosh()}function cu(e){var t,n,r;function i(e){var t,n,r,a=this;if(!(a instanceof i))return new i(e);if(a.constructor=i,pu(e)){a.s=e.s,V?!e.d||e.e>i.maxE?(a.e=NaN,a.d=null):e.e<i.minE?(a.e=0,a.d=[0]):(a.e=e.e,a.d=e.d.slice()):(a.e=e.e,a.d=e.d?e.d.slice():e.d);return}if(r=typeof e,r===`number`){if(e===0){a.s=1/e<0?-1:1,a.e=0,a.d=[0];return}if(e<0?(e=-e,a.s=-1):a.s=1,e===~~e&&e<1e7){for(t=0,n=e;n>=10;n/=10)t++;V?t>i.maxE?(a.e=NaN,a.d=null):t<i.minE?(a.e=0,a.d=[0]):(a.e=t,a.d=[e]):(a.e=t,a.d=[e]);return}if(e*0!=0){e||(a.s=NaN),a.e=NaN,a.d=null;return}return zl(a,e.toString())}if(r===`string`)return(n=e.charCodeAt(0))===45?(e=e.slice(1),a.s=-1):(n===43&&(e=e.slice(1)),a.s=1),bl.test(e)?zl(a,e):Bl(a,e);if(r===`bigint`)return e<0?(e=-e,a.s=-1):a.s=1,zl(a,e.toString());throw Error(pl+e)}if(i.prototype=K,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=au,i.clone=cu,i.isDecimal=pu,i.abs=ql,i.acos=Jl,i.acosh=Yl,i.add=Xl,i.asin=Zl,i.asinh=Ql,i.atan=$l,i.atanh=eu,i.atan2=tu,i.cbrt=nu,i.ceil=ru,i.clamp=iu,i.cos=ou,i.cosh=su,i.div=lu,i.exp=uu,i.floor=du,i.hypot=fu,i.ln=mu,i.log=hu,i.log10=_u,i.log2=gu,i.max=vu,i.min=yu,i.mod=bu,i.mul=xu,i.pow=Su,i.random=Cu,i.round=wu,i.sign=Tu,i.sin=Eu,i.sinh=Du,i.sqrt=Ou,i.sub=ku,i.sum=Au,i.tan=ju,i.tanh=Mu,i.trunc=Nu,e===void 0&&(e={}),e&&e.defaults!==!0)for(r=[`precision`,`rounding`,`toExpNeg`,`toExpPos`,`maxE`,`minE`,`modulo`,`crypto`],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return i.config(e),i}function lu(e,t){return new this(e).div(t)}function uu(e){return new this(e).exp()}function du(e){return X(e=new this(e),e.e+1,3)}function fu(){var e,t,n=new this(0);for(V=!1,e=0;e<arguments.length;)if(t=new this(arguments[e++]),t.d)n.d&&(n=n.plus(t.times(t)));else{if(t.s)return V=!0,new this(1/0);n=t}return V=!0,n.sqrt()}function pu(e){return e instanceof Pu||e&&e.toStringTag===gl||!1}function mu(e){return new this(e).ln()}function hu(e,t){return new this(e).log(t)}function gu(e){return new this(e).log(2)}function _u(e){return new this(e).log(10)}function vu(){return Fl(this,arguments,-1)}function yu(){return Fl(this,arguments,1)}function bu(e,t){return new this(e).mod(t)}function xu(e,t){return new this(e).mul(t)}function Su(e,t){return new this(e).pow(t)}function Cu(e){var t,n,r,i,a=0,o=new this(1),s=[];if(e===void 0?e=this.precision:J(e,1,al),r=Math.ceil(e/G),this.crypto)if(p.getRandomValues)for(t=p.getRandomValues(new Uint32Array(r));a<r;)i=t[a],i>=429e7?t[a]=p.getRandomValues(new Uint32Array(1))[0]:s[a++]=i%1e7;else if(p.randomBytes){for(t=p.randomBytes(r*=4);a<r;)i=t[a]+(t[a+1]<<8)+(t[a+2]<<16)+((t[a+3]&127)<<24),i>=214e7?p.randomBytes(4).copy(t,a):(s.push(i%1e7),a+=4);a=r/4}else throw Error(hl);else for(;a<r;)s[a++]=Math.random()*1e7|0;for(r=s[--a],e%=G,r&&e&&(i=U(10,G-e),s[a]=(r/i|0)*i);s[a]===0;a--)s.pop();if(a<0)n=0,s=[0];else{for(n=-1;s[0]===0;n-=G)s.shift();for(r=1,i=s[0];i>=10;i/=10)r++;r<G&&(n-=G-r)}return o.e=n,o.d=s,o}function wu(e){return X(e=new this(e),e.e+1,this.rounding)}function Tu(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Eu(e){return new this(e).sin()}function Du(e){return new this(e).sinh()}function Ou(e){return new this(e).sqrt()}function ku(e,t){return new this(e).sub(t)}function Au(){var e=0,t=arguments,n=new this(t[e]);for(V=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return V=!0,X(n,this.precision,this.rounding)}function ju(e){return new this(e).tan()}function Mu(e){return new this(e).tanh()}function Nu(e){return X(e=new this(e),e.e+1,1)}K[Symbol.for(`nodejs.util.inspect.custom`)]=K.toString,K[Symbol.toStringTag]=`Decimal`;var Pu=K.constructor=cu(ll);sl=new Pu(sl),cl=new Pu(cl);var Fu=Pu,Iu=`BigNumber`,Lu=[`?on`,`config`],Ru=Ic(Iu,Lu,e=>{var{on:t,config:n}=e,r=Fu.clone({precision:n.precision,modulo:Fu.EUCLID});return r.prototype=Object.create(r.prototype),r.prototype.type=`BigNumber`,r.prototype.isBigNumber=!0,r.prototype.toJSON=function(){return{mathjs:`BigNumber`,value:this.toString()}},r.fromJSON=function(e){return new r(e.value)},t&&t(`config`,function(e,t){e.precision!==t.precision&&r.config({precision:e.precision})}),r},{isClass:!0});const Z=Math.cosh||function(e){return Math.abs(e)<1e-9?1-e:(Math.exp(e)+Math.exp(-e))*.5},Q=Math.sinh||function(e){return Math.abs(e)<1e-9?e:(Math.exp(e)-Math.exp(-e))*.5},zu=function(e){let t=Math.PI/4;if(-t>e||e>t)return Math.cos(e)-1;let n=e*e;return n*(n*(n*(n*(n*(n*(n*(n/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-1/2)},Bu=function(e,t){return e=Math.abs(e),t=Math.abs(t),e<t&&([e,t]=[t,e]),e<1e8?Math.sqrt(e*e+t*t):(t/=e,e*Math.sqrt(1+t*t))},Vu=function(){throw SyntaxError(`Invalid Param`)};function Hu(e,t){let n=Math.abs(e),r=Math.abs(t);return e===0?Math.log(r):t===0?Math.log(n):n<3e3&&r<3e3?Math.log(e*e+t*t)*.5:(e*=.5,t*=.5,.5*Math.log(e*e+t*t)+Math.LN2)}const Uu={re:0,im:0},Wu=function(e,t){let n=Uu;if(e==null)n.re=n.im=0;else if(t!==void 0)n.re=e,n.im=t;else switch(typeof e){case`object`:if(`im`in e&&`re`in e)n.re=e.re,n.im=e.im;else if(`abs`in e&&`arg`in e){if(!isFinite(e.abs)&&isFinite(e.arg))return $.INFINITY;n.re=e.abs*Math.cos(e.arg),n.im=e.abs*Math.sin(e.arg)}else if(`r`in e&&`phi`in e){if(!isFinite(e.r)&&isFinite(e.phi))return $.INFINITY;n.re=e.r*Math.cos(e.phi),n.im=e.r*Math.sin(e.phi)}else e.length===2?(n.re=e[0],n.im=e[1]):Vu();break;case`string`:n.im=n.re=0;let t=e.replace(/_/g,``).match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),r=1,i=0;t===null&&Vu();for(let e=0;e<t.length;e++){let a=t[e];a===` `||a===` `||a===`
|
|
206
|
-
`||(a===`+`?r++:a===`-`?i++:a===`i`||a===`I`?(r+i===0&&Vu(),t[e+1]!==` `&&!isNaN(t[e+1])?(n.im+=parseFloat((i%2?`-`:``)+t[e+1]),e++):n.im+=parseFloat((i%2?`-`:``)+`1`),r=i=0):((r+i===0||isNaN(a))&&Vu(),t[e+1]===`i`||t[e+1]===`I`?(n.im+=parseFloat((i%2?`-`:``)+a),e++):n.re+=parseFloat((i%2?`-`:``)+a),r=i=0))}r+i>0&&Vu();break;case`number`:n.im=0,n.re=e;break;default:Vu()}return isNaN(n.re)||isNaN(n.im),n};function $(e,t){if(!(this instanceof $))return new $(e,t);let n=Wu(e,t);this.re=n.re,this.im=n.im}$.prototype={re:0,im:0,sign:function(){let e=Bu(this.re,this.im);return new $(this.re/e,this.im/e)},add:function(e,t){let n=Wu(e,t),r=this.isInfinite(),i=!(isFinite(n.re)&&isFinite(n.im));return r||i?r&&i?$.NAN:$.INFINITY:new $(this.re+n.re,this.im+n.im)},sub:function(e,t){let n=Wu(e,t),r=this.isInfinite(),i=!(isFinite(n.re)&&isFinite(n.im));return r||i?r&&i?$.NAN:$.INFINITY:new $(this.re-n.re,this.im-n.im)},mul:function(e,t){let n=Wu(e,t),r=this.isInfinite(),i=!(isFinite(n.re)&&isFinite(n.im)),a=this.re===0&&this.im===0,o=n.re===0&&n.im===0;return r&&o||i&&a?$.NAN:r||i?$.INFINITY:n.im===0&&this.im===0?new $(this.re*n.re,0):new $(this.re*n.re-this.im*n.im,this.re*n.im+this.im*n.re)},div:function(e,t){let n=Wu(e,t),r=this.isInfinite(),i=!(isFinite(n.re)&&isFinite(n.im)),a=this.re===0&&this.im===0,o=n.re===0&&n.im===0;if(a&&o||r&&i)return $.NAN;if(o||r)return $.INFINITY;if(a||i)return $.ZERO;if(n.im===0)return new $(this.re/n.re,this.im/n.re);if(Math.abs(n.re)<Math.abs(n.im)){let e=n.re/n.im,t=n.re*e+n.im;return new $((this.re*e+this.im)/t,(this.im*e-this.re)/t)}else{let e=n.im/n.re,t=n.im*e+n.re;return new $((this.re+this.im*e)/t,(this.im-this.re*e)/t)}},pow:function(e,t){let n=Wu(e,t),r=this.re===0&&this.im===0,i=n.re===0&&n.im===0;if(i)return $.ONE;if(n.im===0){if(this.im===0&&this.re>0)return new $(this.re**+n.re,0);if(this.re===0)switch((n.re%4+4)%4){case 0:return new $(this.im**+n.re,0);case 1:return new $(0,this.im**+n.re);case 2:return new $(-(this.im**+n.re),0);case 3:return new $(0,-(this.im**+n.re))}}if(r&&n.re>0)return $.ZERO;let a=Math.atan2(this.im,this.re),o=Hu(this.re,this.im),s=Math.exp(n.re*o-n.im*a),c=n.im*o+n.re*a;return new $(s*Math.cos(c),s*Math.sin(c))},sqrt:function(){let e=this.re,t=this.im;if(t===0)return e>=0?new $(Math.sqrt(e),0):new $(0,Math.sqrt(-e));let n=Bu(e,t),r=Math.sqrt(.5*(n+Math.abs(e))),i=Math.abs(t)/(2*r);return e>=0?new $(r,t<0?-i:i):new $(i,t<0?-r:r)},exp:function(){let e=Math.exp(this.re);return this.im===0?new $(e,0):new $(e*Math.cos(this.im),e*Math.sin(this.im))},expm1:function(){let e=this.re,t=this.im;return new $(Math.expm1(e)*Math.cos(t)+zu(t),Math.exp(e)*Math.sin(t))},log:function(){let e=this.re,t=this.im;return t===0&&e>0?new $(Math.log(e),0):new $(Hu(e,t),Math.atan2(t,e))},abs:function(){return Bu(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){let e=this.re,t=this.im;return new $(Math.sin(e)*Z(t),Math.cos(e)*Q(t))},cos:function(){let e=this.re,t=this.im;return new $(Math.cos(e)*Z(t),-Math.sin(e)*Q(t))},tan:function(){let e=2*this.re,t=2*this.im,n=Math.cos(e)+Z(t);return new $(Math.sin(e)/n,Q(t)/n)},cot:function(){let e=2*this.re,t=2*this.im,n=Math.cos(e)-Z(t);return new $(-Math.sin(e)/n,Q(t)/n)},sec:function(){let e=this.re,t=this.im,n=.5*Z(2*t)+.5*Math.cos(2*e);return new $(Math.cos(e)*Z(t)/n,Math.sin(e)*Q(t)/n)},csc:function(){let e=this.re,t=this.im,n=.5*Z(2*t)-.5*Math.cos(2*e);return new $(Math.sin(e)*Z(t)/n,-Math.cos(e)*Q(t)/n)},asin:function(){let e=this.re,t=this.im,n=new $(t*t-e*e+1,-2*e*t).sqrt(),r=new $(n.re-t,n.im+e).log();return new $(r.im,-r.re)},acos:function(){let e=this.re,t=this.im,n=new $(t*t-e*e+1,-2*e*t).sqrt(),r=new $(n.re-t,n.im+e).log();return new $(Math.PI/2-r.im,r.re)},atan:function(){let e=this.re,t=this.im;if(e===0){if(t===1)return new $(0,1/0);if(t===-1)return new $(0,-1/0)}let n=e*e+(1-t)*(1-t),r=new $((1-t*t-e*e)/n,-2*e/n).log();return new $(-.5*r.im,.5*r.re)},acot:function(){let e=this.re,t=this.im;if(t===0)return new $(Math.atan2(1,e),0);let n=e*e+t*t;return n===0?new $(e===0?0:e/0,t===0?0:-t/0).atan():new $(e/n,-t/n).atan()},asec:function(){let e=this.re,t=this.im;if(e===0&&t===0)return new $(0,1/0);let n=e*e+t*t;return n===0?new $(e===0?0:e/0,t===0?0:-t/0).acos():new $(e/n,-t/n).acos()},acsc:function(){let e=this.re,t=this.im;if(e===0&&t===0)return new $(Math.PI/2,1/0);let n=e*e+t*t;return n===0?new $(e===0?0:e/0,t===0?0:-t/0).asin():new $(e/n,-t/n).asin()},sinh:function(){let e=this.re,t=this.im;return new $(Q(e)*Math.cos(t),Z(e)*Math.sin(t))},cosh:function(){let e=this.re,t=this.im;return new $(Z(e)*Math.cos(t),Q(e)*Math.sin(t))},tanh:function(){let e=2*this.re,t=2*this.im,n=Z(e)+Math.cos(t);return new $(Q(e)/n,Math.sin(t)/n)},coth:function(){let e=2*this.re,t=2*this.im,n=Z(e)-Math.cos(t);return new $(Q(e)/n,-Math.sin(t)/n)},csch:function(){let e=this.re,t=this.im,n=Math.cos(2*t)-Z(2*e);return new $(-2*Q(e)*Math.cos(t)/n,2*Z(e)*Math.sin(t)/n)},sech:function(){let e=this.re,t=this.im,n=Math.cos(2*t)+Z(2*e);return new $(2*Z(e)*Math.cos(t)/n,-2*Q(e)*Math.sin(t)/n)},asinh:function(){let e=this.im;this.im=-this.re,this.re=e;let t=this.asin();return this.re=-this.im,this.im=e,e=t.re,t.re=-t.im,t.im=e,t},acosh:function(){let e=this.acos();if(e.im<=0){let t=e.re;e.re=-e.im,e.im=t}else{let t=e.im;e.im=-e.re,e.re=t}return e},atanh:function(){let e=this.re,t=this.im,n=e>1&&t===0,r=1-e,i=1+e,a=r*r+t*t,o=a===0?new $(e===-1?0:e/0,t===0?0:t/0):new $((i*r-t*t)/a,(t*r+i*t)/a),s=o.re;return o.re=Hu(o.re,o.im)/2,o.im=Math.atan2(o.im,s)/2,n&&(o.im=-o.im),o},acoth:function(){let e=this.re,t=this.im;if(e===0&&t===0)return new $(0,Math.PI/2);let n=e*e+t*t;return n===0?new $(e===0?0:e/0,t===0?0:-t/0).atanh():new $(e/n,-t/n).atanh()},acsch:function(){let e=this.re,t=this.im;if(t===0)return new $(e===0?1/0:Math.log(e+Math.sqrt(e*e+1)),0);let n=e*e+t*t;return n===0?new $(e===0?0:e/0,t===0?0:-t/0).asinh():new $(e/n,-t/n).asinh()},asech:function(){let e=this.re,t=this.im;if(this.isZero())return $.INFINITY;let n=e*e+t*t;return n===0?new $(e===0?0:e/0,t===0?0:-t/0).acosh():new $(e/n,-t/n).acosh()},inverse:function(){if(this.isZero())return $.INFINITY;if(this.isInfinite())return $.ZERO;let e=this.re,t=this.im,n=e*e+t*t;return new $(e/n,-t/n)},conjugate:function(){return new $(this.re,-this.im)},neg:function(){return new $(-this.re,-this.im)},ceil:function(e){return e=10**(e||0),new $(Math.ceil(this.re*e)/e,Math.ceil(this.im*e)/e)},floor:function(e){return e=10**(e||0),new $(Math.floor(this.re*e)/e,Math.floor(this.im*e)/e)},round:function(e){return e=10**(e||0),new $(Math.round(this.re*e)/e,Math.round(this.im*e)/e)},equals:function(e,t){let n=Wu(e,t);return Math.abs(n.re-this.re)<=$.EPSILON&&Math.abs(n.im-this.im)<=$.EPSILON},clone:function(){return new $(this.re,this.im)},toString:function(){let e=this.re,t=this.im,n=``;return this.isNaN()?`NaN`:this.isInfinite()?`Infinity`:(Math.abs(e)<$.EPSILON&&(e=0),Math.abs(t)<$.EPSILON&&(t=0),t===0?n+e:(e===0?t<0&&(t=-t,n+=`-`):(n+=e,n+=` `,t<0?(t=-t,n+=`-`):n+=`+`,n+=` `),t!==1&&(n+=t),n+`i`))},toVector:function(){return[this.re,this.im]},valueOf:function(){return this.im===0?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return this.im===0&&this.re===0},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!this.isFinite()}},$.ZERO=new $(0,0),$.ONE=new $(1,0),$.I=new $(0,1),$.PI=new $(Math.PI,0),$.E=new $(Math.E,0),$.INFINITY=new $(1/0,1/0),$.NAN=new $(NaN,NaN),$.EPSILON=1e-15;var Gu=`Complex`,Ku=[],qu=Ic(Gu,Ku,()=>(Object.defineProperty($,`name`,{value:`Complex`}),$.prototype.constructor=$,$.prototype.type=`Complex`,$.prototype.isComplex=!0,$.prototype.toJSON=function(){return{mathjs:`Complex`,re:this.re,im:this.im}},$.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},$.prototype.format=function(e){var t=``,n=this.im,r=this.re,i=qs(this.re,e),a=qs(this.im,e),o=L(e)?e:e?e.precision:null;if(o!==null){var s=10**-o;Math.abs(r/n)<s&&(r=0),Math.abs(n/r)<s&&(n=0)}return t=n===0?i:r===0?n===1?`i`:n===-1?`-i`:a+`i`:n<0?n===-1?i+` - i`:i+` - `+a.substring(1)+`i`:n===1?i+` + i`:i+` + `+a+`i`,t},$.fromPolar=function(e){switch(arguments.length){case 1:var t=arguments[0];if(typeof t==`object`)return $(t);throw TypeError(`Input has to be an object with r and phi keys.`);case 2:var n=arguments[0],r=arguments[1];if(L(n)){if(Qo(r)&&r.hasBase(`ANGLE`)&&(r=r.toNumber(`rad`)),L(r))return new $({r:n,phi:r});throw TypeError(`Phi is not a number nor an angle unit.`)}else throw TypeError(`Radius r is not a number.`);default:throw SyntaxError(`Wrong number of arguments in function fromPolar`)}},$.prototype.valueOf=$.prototype.toString,$.fromJSON=function(e){return new $(e)},$.compare=function(e,t){return e.re>t.re?1:e.re<t.re?-1:e.im>t.im?1:e.im<t.im?-1:0},$),{isClass:!0}),Ju=o(((exports,t)=>{
|
|
207
|
-
/**
|
|
208
|
-
* @license Fraction.js v4.3.0 20/08/2023
|
|
209
|
-
* https://www.xarg.org/2014/03/rational-numbers-in-javascript/
|
|
210
|
-
*
|
|
211
|
-
* Copyright (c) 2023, Robert Eisele (robert@raw.org)
|
|
212
|
-
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
213
|
-
**/
|
|
214
|
-
(function(n){"use strict";var r=2e3,i={s:1,n:0,d:1};function a(e,t){if(isNaN(e=parseInt(e,10)))throw h();return e*t}function o(e,t){if(t===0)throw m();var n=Object.create(p.prototype);n.s=e<0?-1:1,e=e<0?-e:e;var r=f(e,t);return n.n=e/r,n.d=t/r,n}function s(e){for(var t={},n=e,r=2,i=4;i<=n;){for(;n%r===0;)n/=r,t[r]=(t[r]||0)+1;i+=1+2*r++}return n===e?t[e]=(t[e]||0)+1:n>1&&(t[n]=(t[n]||0)+1),t}var c=function(e,t){var n=0,r=1,o=1,s=0,c=0,l=0,u=1,d=1,f=0,p=1,_=1,v=1,y=1e7,b;if(e!=null)if(t!==void 0){if(n=e,r=t,o=n*r,n%1!=0||r%1!=0)throw g()}else switch(typeof e){case`object`:if(`d`in e&&`n`in e)n=e.n,r=e.d,`s`in e&&(n*=e.s);else if(0 in e)n=e[0],1 in e&&(r=e[1]);else throw h();o=n*r;break;case`number`:if(e<0&&(o=e,e=-e),e%1==0)n=e;else if(e>0){for(e>=1&&(d=10**Math.floor(1+Math.log(e)/Math.LN10),e/=d);p<=y&&v<=y;)if(b=(f+_)/(p+v),e===b){p+v<=y?(n=f+_,r=p+v):v>p?(n=_,r=v):(n=f,r=p);break}else e>b?(f+=_,p+=v):(_+=f,v+=p),p>y?(n=_,r=v):(n=f,r=p);n*=d}else (isNaN(e)||isNaN(t))&&(r=n=NaN);break;case`string`:if(p=e.match(/\d+|./g),p===null)throw h();if(p[f]===`-`?(o=-1,f++):p[f]===`+`&&f++,p.length===f+1?c=a(p[f++],o):p[f+1]===`.`||p[f]===`.`?(p[f]!==`.`&&(s=a(p[f++],o)),f++,(f+1===p.length||p[f+1]===`(`&&p[f+3]===`)`||p[f+1]===`'`&&p[f+3]===`'`)&&(c=a(p[f],o),u=10**p[f].length,f++),(p[f]===`(`&&p[f+2]===`)`||p[f]===`'`&&p[f+2]===`'`)&&(l=a(p[f+1],o),d=10**p[f+1].length-1,f+=3)):p[f+1]===`/`||p[f+1]===`:`?(c=a(p[f],o),u=a(p[f+2],1),f+=3):p[f+3]===`/`&&p[f+1]===` `&&(s=a(p[f],o),c=a(p[f+2],o),u=a(p[f+4],1),f+=5),p.length<=f){r=u*d,o=n=l+r*s+d*c;break}default:throw h()}if(r===0)throw m();i.s=o<0?-1:1,i.n=Math.abs(n),i.d=Math.abs(r)};function l(e,t,n){for(var r=1;t>0;e=e*e%n,t>>=1)t&1&&(r=r*e%n);return r}function u(e,t){for(;t%2==0;t/=2);for(;t%5==0;t/=5);if(t===1)return 0;for(var n=10%t,i=1;n!==1;i++)if(n=n*10%t,i>r)return 0;return i}function d(e,t,n){for(var r=1,i=l(10,n,t),a=0;a<300;a++){if(r===i)return a;r=r*10%t,i=i*10%t}return 0}function f(e,t){if(!e)return t;if(!t)return e;for(;;){if(e%=t,!e)return t;if(t%=e,!t)return e}}function p(e,t){if(c(e,t),this instanceof p)e=f(i.d,i.n),this.s=i.s,this.n=i.n/e,this.d=i.d/e;else return o(i.s*i.n,i.d)}var m=function(){return Error(`Division by Zero`)},h=function(){return Error(`Invalid argument`)},g=function(){return Error(`Parameters must be integer`)};p.prototype={s:1,n:0,d:1,abs:function(){return o(this.n,this.d)},neg:function(){return o(-this.s*this.n,this.d)},add:function(e,t){return c(e,t),o(this.s*this.n*i.d+i.s*this.d*i.n,this.d*i.d)},sub:function(e,t){return c(e,t),o(this.s*this.n*i.d-i.s*this.d*i.n,this.d*i.d)},mul:function(e,t){return c(e,t),o(this.s*i.s*this.n*i.n,this.d*i.d)},div:function(e,t){return c(e,t),o(this.s*i.s*this.n*i.d,this.d*i.n)},clone:function(){return o(this.s*this.n,this.d)},mod:function(e,t){if(isNaN(this.n)||isNaN(this.d))return new p(NaN);if(e===void 0)return o(this.s*this.n%this.d,1);if(c(e,t),i.n===0&&this.d===0)throw m();return o(this.s*(i.d*this.n)%(i.n*this.d),i.d*this.d)},gcd:function(e,t){return c(e,t),o(f(i.n,this.n)*f(i.d,this.d),i.d*this.d)},lcm:function(e,t){return c(e,t),i.n===0&&this.n===0?o(0,1):o(i.n*this.n,f(i.n,this.n)*f(i.d,this.d))},ceil:function(e){return e=10**(e||0),isNaN(this.n)||isNaN(this.d)?new p(NaN):o(Math.ceil(e*this.s*this.n/this.d),e)},floor:function(e){return e=10**(e||0),isNaN(this.n)||isNaN(this.d)?new p(NaN):o(Math.floor(e*this.s*this.n/this.d),e)},round:function(e){return e=10**(e||0),isNaN(this.n)||isNaN(this.d)?new p(NaN):o(Math.round(e*this.s*this.n/this.d),e)},inverse:function(){return o(this.s*this.d,this.n)},pow:function(e,t){if(c(e,t),i.d===1)return i.s<0?o((this.s*this.d)**+i.n,this.n**+i.n):o((this.s*this.n)**+i.n,this.d**+i.n);if(this.s<0)return null;var n=s(this.n),r=s(this.d),a=1,l=1;for(var u in n){if(u===`1`)continue;if(u===`0`){a=0;break}if(n[u]*=i.n,n[u]%i.d===0)n[u]/=i.d;else return null;a*=u**+n[u]}for(var u in r){if(u===`1`)continue;if(r[u]*=i.n,r[u]%i.d===0)r[u]/=i.d;else return null;l*=u**+r[u]}return i.s<0?o(l,a):o(a,l)},equals:function(e,t){return c(e,t),this.s*this.n*i.d===i.s*i.n*this.d},compare:function(e,t){c(e,t);var n=this.s*this.n*i.d-i.s*i.n*this.d;return(0<n)-(n<0)},simplify:function(e){if(isNaN(this.n)||isNaN(this.d))return this;e||=.001;for(var t=this.abs(),n=t.toContinued(),r=1;r<n.length;r++){for(var i=o(n[r-1],1),a=r-2;a>=0;a--)i=i.inverse().add(n[a]);if(Math.abs(i.sub(t).valueOf())<e)return i.mul(this.s)}return this},divisible:function(e,t){return c(e,t),!(!(i.n*this.d)||this.n*i.d%(i.n*this.d))},valueOf:function(){return this.s*this.n/this.d},toFraction:function(e){var t,n=``,r=this.n,i=this.d;return this.s<0&&(n+=`-`),i===1?n+=r:(e&&(t=Math.floor(r/i))>0&&(n+=t,n+=` `,r%=i),n+=r,n+=`/`,n+=i),n},toLatex:function(e){var t,n=``,r=this.n,i=this.d;return this.s<0&&(n+=`-`),i===1?n+=r:(e&&(t=Math.floor(r/i))>0&&(n+=t,r%=i),n+=`\\frac{`,n+=r,n+=`}{`,n+=i,n+=`}`),n},toContinued:function(){var e,t=this.n,n=this.d,r=[];if(isNaN(t)||isNaN(n))return r;do r.push(Math.floor(t/n)),e=t%n,t=n,n=e;while(t!==1);return r},toString:function(e){var t=this.n,n=this.d;if(isNaN(t)||isNaN(n))return`NaN`;e||=15;var r=u(t,n),i=d(t,n,r),a=this.s<0?`-`:``;if(a+=t/n|0,t%=n,t*=10,t&&(a+=`.`),r){for(var o=i;o--;)a+=t/n|0,t%=n,t*=10;a+=`(`;for(var o=r;o--;)a+=t/n|0,t%=n,t*=10;a+=`)`}else for(var o=e;t&&o--;)a+=t/n|0,t%=n,t*=10;return a}},typeof exports==`object`?(Object.defineProperty(p,`__esModule`,{value:!0}),p.default=p,p.Fraction=p,t.exports=p):n.Fraction=p})(exports)})),Yu=c(Ju(),1),Xu=`Fraction`,Zu=[],Qu=Ic(Xu,Zu,()=>(Object.defineProperty(Yu.default,`name`,{value:`Fraction`}),Yu.default.prototype.constructor=Yu.default,Yu.default.prototype.type=`Fraction`,Yu.default.prototype.isFraction=!0,Yu.default.prototype.toJSON=function(){return{mathjs:`Fraction`,n:this.s*this.n,d:this.d}},Yu.default.fromJSON=function(e){return new Yu.default(e)},Yu.default),{isClass:!0}),$u=`Matrix`,ed=[],td=Ic($u,ed,()=>{function e(){if(!(this instanceof e))throw SyntaxError(`Constructor must be called with the new operator`)}return e.prototype.type=`Matrix`,e.prototype.isMatrix=!0,e.prototype.storage=function(){throw Error(`Cannot invoke storage on a Matrix interface`)},e.prototype.datatype=function(){throw Error(`Cannot invoke datatype on a Matrix interface`)},e.prototype.create=function(e,t){throw Error(`Cannot invoke create on a Matrix interface`)},e.prototype.subset=function(e,t,n){throw Error(`Cannot invoke subset on a Matrix interface`)},e.prototype.get=function(e){throw Error(`Cannot invoke get on a Matrix interface`)},e.prototype.set=function(e,t,n){throw Error(`Cannot invoke set on a Matrix interface`)},e.prototype.resize=function(e,t){throw Error(`Cannot invoke resize on a Matrix interface`)},e.prototype.reshape=function(e,t){throw Error(`Cannot invoke reshape on a Matrix interface`)},e.prototype.clone=function(){throw Error(`Cannot invoke clone on a Matrix interface`)},e.prototype.size=function(){throw Error(`Cannot invoke size on a Matrix interface`)},e.prototype.map=function(e,t){throw Error(`Cannot invoke map on a Matrix interface`)},e.prototype.forEach=function(e){throw Error(`Cannot invoke forEach on a Matrix interface`)},e.prototype[Symbol.iterator]=function(){throw Error(`Cannot iterate a Matrix interface`)},e.prototype.toArray=function(){throw Error(`Cannot invoke toArray on a Matrix interface`)},e.prototype.valueOf=function(){throw Error(`Cannot invoke valueOf on a Matrix interface`)},e.prototype.format=function(e){throw Error(`Cannot invoke format on a Matrix interface`)},e.prototype.toString=function(){throw Error(`Cannot invoke toString on a Matrix interface`)},e},{isClass:!0});function nd(e){return Object.keys(e.signatures||{}).reduce(function(e,t){var n=(t.match(/,/g)||[]).length+1;return Math.max(e,n)},-1)}var rd=`DenseMatrix`,id=[`Matrix`],ad=Ic(rd,id,e=>{var{Matrix:t}=e;function n(e,t){if(!(this instanceof n))throw SyntaxError(`Constructor must be called with the new operator`);if(t&&!$o(t))throw Error(`Invalid datatype: `+t);if(es(e))e.type===`DenseMatrix`?(this._data=Fs(e._data),this._size=Fs(e._size),this._datatype=t||e._datatype):(this._data=e.toArray(),this._size=e.size(),this._datatype=t||e._datatype);else if(e&&R(e.data)&&R(e.size))this._data=e.data,this._size=e.size,vc(this._data,this._size),this._datatype=t||e.datatype;else if(R(e))this._data=l(e),this._size=gc(this._data),vc(this._data,this._size),this._datatype=t;else if(e)throw TypeError(`Unsupported type of data (`+Ps(e)+`)`);else this._data=[],this._size=[0],this._datatype=t}n.prototype=new t,n.prototype.createDenseMatrix=function(e,t){return new n(e,t)},Object.defineProperty(n,`name`,{value:`DenseMatrix`}),n.prototype.constructor=n,n.prototype.type=`DenseMatrix`,n.prototype.isDenseMatrix=!0,n.prototype.getDataType=function(){return Oc(this._data,Ps)},n.prototype.storage=function(){return`dense`},n.prototype.datatype=function(){return this._datatype},n.prototype.create=function(e,t){return new n(e,t)},n.prototype.subset=function(e,t,n){switch(arguments.length){case 1:return r(this,e);case 2:case 3:return a(this,e,t,n);default:throw SyntaxError(`Wrong number of arguments`)}},n.prototype.get=function(e){if(!R(e))throw TypeError(`Array expected`);if(e.length!==this._size.length)throw new z(e.length,this._size.length);for(var t=0;t<e.length;t++)B(e[t],this._size[t]);for(var n=this._data,r=0,i=e.length;r<i;r++){var a=e[r];B(a,n.length),n=n[a]}return n},n.prototype.set=function(e,t,n){if(!R(e))throw TypeError(`Array expected`);if(e.length<this._size.length)throw new z(e.length,this._size.length,`<`);var r,i,a,o=e.map(function(e){return e+1});c(this,o,n);var s=this._data;for(r=0,i=e.length-1;r<i;r++)a=e[r],B(a,s.length),s=s[a];return a=e[e.length-1],B(a,s.length),s[a]=t,this};function r(e,t){if(!ss(t))throw TypeError(`Invalid index`);var r=t.isScalar();if(r)return e.get(t.min());var a=t.size();if(a.length!==e._size.length)throw new z(a.length,e._size.length);for(var o=t.min(),s=t.max(),c=0,l=e._size.length;c<l;c++)B(o[c],e._size[c]),B(s[c],e._size[c]);return new n(i(e._data,t,a.length,0),e._datatype)}function i(e,t,n,r){var a=r===n-1,o=t.dimension(r);return a?o.map(function(t){return B(t,e.length),e[t]}).valueOf():o.map(function(a){B(a,e.length);var o=e[a];return i(o,t,n,r+1)}).valueOf()}function a(e,t,n,r){if(!t||t.isIndex!==!0)throw TypeError(`Invalid index`);var i=t.size(),a=t.isScalar(),s;if(es(n)?(s=n.size(),n=n.valueOf()):s=gc(n),a){if(s.length!==0)throw TypeError(`Scalar expected`);e.set(t.min(),n,r)}else{if(!Ls(s,i))try{n=s.length===0?Nc([n],i):Nc(n,i),s=gc(n)}catch{}if(i.length<e._size.length)throw new z(i.length,e._size.length,`<`);if(s.length<i.length){for(var l=0,u=0;i[l]===1&&s[l]===1;)l++;for(;i[l]===1;)u++,l++;n=Tc(n,i.length,u,s)}if(!Ls(i,s))throw new z(i,s,`>`);var d=t.max().map(function(e){return e+1});c(e,d,r);var f=i.length,p=0;o(e._data,t,n,f,p)}return e}function o(e,t,n,r,i){var a=i===r-1,s=t.dimension(i);a?s.forEach(function(t,r){B(t),e[t]=n[r[0]]}):s.forEach(function(a,s){B(a),o(e[a],t,n[s[0]],r,i+1)})}n.prototype.resize=function(e,t,n){if(!ts(e))throw TypeError(`Array or Matrix expected`);var r=e.valueOf().map(e=>Array.isArray(e)&&e.length===1?e[0]:e),i=n?this.clone():this;return s(i,r,t)};function s(e,t,n){if(t.length===0){for(var r=e._data;R(r);)r=r[0];return r}return e._size=t.slice(0),e._data=yc(e._data,e._size,n),e}n.prototype.reshape=function(e,t){var n=t?this.clone():this;n._data=xc(n._data,e);var r=n._size.reduce((e,t)=>e*t);return n._size=Sc(e,r),n};function c(e,t,n){for(var r=e._size.slice(0),i=!1;r.length<t.length;)r.push(0),i=!0;for(var a=0,o=t.length;a<o;a++)t[a]>r[a]&&(r[a]=t[a],i=!0);i&&s(e,r,n)}n.prototype.clone=function(){var e=new n({data:Fs(this._data),size:Fs(this._size),datatype:this._datatype});return e},n.prototype.size=function(){return this._size.slice(0)},n.prototype.map=function(e){var t=this,r=nd(e),i=function n(i,a){return R(i)?i.map(function(e,t){return n(e,a.concat(t))}):r===1?e(i):r===2?e(i,a):e(i,a,t)},a=i(this._data,[]),o=this._datatype===void 0?void 0:Oc(a,Ps);return new n(a,o)},n.prototype.forEach=function(e){var t=this,n=function n(r,i){R(r)?r.forEach(function(e,t){n(e,i.concat(t))}):e(r,i,t)};n(this._data,[])},n.prototype[Symbol.iterator]=function*(){var e=function*e(t,n){if(R(t))for(var r=0;r<t.length;r++)yield*e(t[r],n.concat(r));else yield{value:t,index:n}};yield*e(this._data,[])},n.prototype.rows=function(){var e=[],t=this.size();if(t.length!==2)throw TypeError(`Rows can only be returned for a 2D matrix.`);var r=this._data;for(var i of r)e.push(new n([i],this._datatype));return e},n.prototype.columns=function(){var e=this,t=[],r=this.size();if(r.length!==2)throw TypeError(`Rows can only be returned for a 2D matrix.`);for(var i=this._data,a=function(r){var a=i.map(e=>[e[r]]);t.push(new n(a,e._datatype))},o=0;o<r[1];o++)a(o);return t},n.prototype.toArray=function(){return Fs(this._data)},n.prototype.valueOf=function(){return this._data},n.prototype.format=function(e){return cc(this._data,e)},n.prototype.toString=function(){return cc(this._data)},n.prototype.toJSON=function(){return{mathjs:`DenseMatrix`,data:this._data,size:this._size,datatype:this._datatype}},n.prototype.diagonal=function(e){if(e){if(Yo(e)&&(e=e.toNumber()),!L(e)||!Gs(e))throw TypeError(`The parameter k must be an integer number`)}else e=0;for(var t=e>0?e:0,r=e<0?-e:0,i=this._size[0],a=this._size[1],o=Math.min(i-r,a-t),s=[],c=0;c<o;c++)s[c]=this._data[c+r][c+t];return new n({data:s,size:[o],datatype:this._datatype})},n.diagonal=function(e,t,r,i){if(!R(e))throw TypeError(`Array expected, size parameter`);if(e.length!==2)throw Error(`Only two dimensions matrix are supported`);if(e=e.map(function(e){if(Yo(e)&&(e=e.toNumber()),!L(e)||!Gs(e)||e<1)throw Error(`Size values must be positive integers`);return e}),r){if(Yo(r)&&(r=r.toNumber()),!L(r)||!Gs(r))throw TypeError(`The parameter k must be an integer number`)}else r=0;var a=r>0?r:0,o=r<0?-r:0,s=e[0],c=e[1],l=Math.min(s-o,c-a),u;if(R(t)){if(t.length!==l)throw Error(`Invalid value array length`);u=function(e){return t[e]}}else if(es(t)){var d=t.size();if(d.length!==1||d[0]!==l)throw Error(`Invalid matrix length`);u=function(e){return t.get([e])}}else u=function(){return t};i||=Yo(u(0))?u(0).mul(0):0;var f=[];if(e.length>0){f=yc(f,e,i);for(var p=0;p<l;p++)f[p+o][p+a]=u(p)}return new n({data:f,size:[s,c]})},n.fromJSON=function(e){return new n(e)},n.prototype.swapRows=function(e,t){if(!L(e)||!Gs(e)||!L(t)||!Gs(t))throw Error(`Row index must be positive integers`);if(this._size.length!==2)throw Error(`Only two dimensional matrix is supported`);return B(e,this._size[0]),B(t,this._size[0]),n._swapRows(e,t,this._data),this},n._swapRows=function(e,t,n){var r=n[e];n[e]=n[t],n[t]=r};function l(e){return es(e)?l(e.valueOf()):R(e)?e.map(l):e}return n},{isClass:!0});function od(e,t,n){return e&&typeof e.map==`function`?e.map(function(e){return od(e,t,n)}):t(e)}var sd=`isNumeric`,cd=[`typed`],ld=Ic(sd,cd,e=>{var{typed:t}=e;return t(sd,{"number | BigNumber | Fraction | boolean":()=>!0,"Complex | Unit | string | null | undefined | Node":()=>!1,"Array | Matrix":t.referToSelf(e=>t=>od(t,e))})}),ud=`hasNumericValue`,dd=[`typed`,`isNumeric`],fd=Ic(ud,dd,e=>{var{typed:t,isNumeric:n}=e;return t(ud,{boolean:()=>!0,string:function(e){return e.trim().length>0&&!isNaN(Number(e))},any:function(e){return n(e)}})}),pd=Ru({config:Us}),md=qu({}),hd=Qu({}),gd=td({}),_d=ad({Matrix:gd}),vd=$c({BigNumber:pd,Complex:md,DenseMatrix:_d,Fraction:hd}),yd=ld({typed:vd}),bd=fd({isNumeric:yd,typed:vd});const xd=e=>{let t=Number(e);return Number.isNaN(t)?!1:t>=120&&t<=36e4},Sd=e=>{let t=Number(e),n=Date.now();if(Number.isNaN(t))return n+Go;if(!xd(t)&&(0,l.isFutureUnixTimestamp)(t))return Ko(t);if(xd(t))return n+t;{let e=t*Uo;return n+e}},Cd=`ratelimitlimit`,wd=`ratelimitremaining`,Td=`ratelimitreset`,Ed=`ratelimitconcurrencylimit`,Dd=`ratelimitconcurrencyremaining`,Od=`ratelimitconcurrencyreset`,kd=e=>{let t={};for(let[n,r]of Object.entries(e)){let e=n.toLowerCase().replace(/^x-/,``).replace(/concurren.+-/g,`concurrency-`).replace(/-/g,``),i=bd(r)?Number(r):null;t[e]=i}return t},Ad=e=>{let t=kd(e);return{rateLimitLimit:t[Cd],rateLimitRemaining:t[wd],rateLimitReset:Sd(t[Td]),concurrencyLimit:t[Ed],concurrencyRemaining:t[Dd],concurrencyReset:Sd(t[Od])}},jd=e=>{let{accountSecureId:t,service:n,resource:r,subResource:i,childResource:a,action:o,behaviours:s}=e??{};return[t,n,r,o].some(l.isMissing)?null:[t,n,r,i,a,o,...s??[]].filter(Boolean).join(`-`)},Md=(e,t=Bo,n=zo)=>{let r=Date.now();return(0,l.isFutureUnixTimestamp)(e)||(0,l.isNumber)(e)?Nd(Number(e),r,t,n):$o(e)&&e!==``?Pd(e,r,t,n):n},Nd=(e,t,n=Bo,r=zo)=>{if(e<n)return e;let i=Ko(e);if(i>t){let e=Math.floor((i-t)/Uo);return e>0&&e<n?e:r}return r},Pd=(e,t,n=Bo,r=zo)=>{if(Wo.test(e)){let t=parseFloat(e);return t>0&&t<n?t:r}let i=new Date(e);if(Number.isNaN(i.getTime()))return r;let a=i.getTime();if(a>t){let e=Math.floor((a-t)/Uo);return e>0&&e<n?e:r}return r};let Fd=function(e){return e.RateLimiterReleaseRequestFailed=`RateLimiterReleaseRequestFailed`,e}({});const Id=({axiosInstance:e,logger:t,requestConfig:n,context:r})=>{let i=async i=>{let{response:a,config:o}=i,s=o?.signal;if(s?.aborted)return Promise.reject(Fo(`Request aborted`,o,`ERR_CANCELED`,a));let{status:c,retryAfter:u}=Ld(a,r,n,t);if(c===429&&(0,l.notMissing)(o)){let n=Md(u);if(o._retryCount>=Vo)return t?.warning({category:`http-transport`,message:`Max retries exceeded for ${o?.url}. Aborting.`,context:{...r??{},retryAfterHeader:u,retryAfterAsNumber:n}}),Promise.reject(i);let s=o._retryCount??0,c={...o,_retryCount:s+1},d=u?n*Uo:(0,l.exponentialBackoffInMS)(c._retryCount);return t?.debug({category:`http-transport`,message:`Received 429 error from ${o?.url}`,context:{...r??{},retryAfterHeader:u,calculatedRetryAfter:d}}),await Io(d*1e3,o,a),e?.request(c)}return Promise.reject(i)};return i},Ld=(e,t,n,r)=>{let{provider:i}=t??{},{status:a,headers:o,data:s}=e??{},{retryafter:c}=kd(o??{});if((0,l.isMissing)(i)||(0,l.isMissing)(e))return r?.warning({category:`http-transport`,message:`Invalid parameters for convertError`,context:{...t,responseIsMissing:(0,l.isMissing)(e),providerIsMissing:(0,l.isMissing)(i),status:e?.status??`undefined`,statusText:e?.statusText??`undefined`,retryafter:c??`undefined`}}),{status:a,retryAfter:c};let u=n?.rateLimits?.mappedRateLimitErrors;if((0,l.notMissing)(u)&&(0,l.notMissing)(s))for(let e of u){let{errorStatus:t,errorMessagePath:n,errorMessage:r,retryAfterPath:i,retryAfterUnit:u,retryAfterValue:d}=e;if(t!==a)continue;let f=n??`message`,p=(0,l.isObject)(s)?h.default.query(s,f)[0]:s,m=Rd(p,r);if(t===a&&m){let e=d??zd(o,i),t=Bd(e,u);return{status:429,retryAfter:c??t}}}return{status:a,retryAfter:c}},Rd=(e,t)=>t instanceof RegExp?t.test(e??``):e?.includes(t)??!1,zd=(e,t)=>(0,l.notMissing)(t)&&(0,l.notMissing)(e)?h.default.query(e,t)[0]:null,Bd=(e,t=`seconds`)=>(0,l.notMissing)(e)?Vd(e,t):null,Vd=(e,t)=>{if(t===`seconds`)return typeof e==`string`?parseFloat(e):e;if(t===`milliseconds`){let t=typeof e==`string`?parseFloat(e):e;return t/Uo}if(t===`date`){let t=typeof e==`string`&&!isNaN(Number(e))?parseFloat(e):e,n=new Date(t);if(isNaN(n.getTime()))throw Error(`Invalid date value`);return n.getTime()}throw Error(`Invalid type`)},Hd=`rateLimitErrorInterceptor`,Ud=({axiosInstance:e,logger:t,requestConfig:n,context:r})=>{let i=async i=>{let{response:a,config:o}=i,s=o?.signal;if((0,l.isMissing)(r)||(0,l.isMissing)(o))return t?.warning({category:`HttpClient`,message:`No context or config for this response - that doesn't seem right.`,context:{interceptor:Hd,...o,headers:void 0}}),Promise.reject(i);let{requestId:c,targetConcurrencyKey:u,leaseSubscription:d,setRemovalSubscription:f}=o?.requestMetadata??{},p=await qe.getInstance(),m=(0,l.notMissing)(c)&&(0,l.notMissing)(u)?await p.releaseRequest(c,u):!1;if(!m&&(0,l.notMissing)(o?.requestMetadata)&&t?.error({category:`HttpClient`,message:`Failed to release request from concurrency manager`,context:{...r,interceptor:Hd,requestId:c,targetConcurrencyKey:u,leaseSubscription:d,setRemovalSubscription:f},code:Fd.RateLimiterReleaseRequestFailed}),s?.aborted)return Promise.reject(Fo(`Request aborted`,o,`ERR_CANCELED`,a));let{status:h,retryAfter:g}=Ld(a,r,n,t);if(h===429&&(0,l.notMissing)(o)){let n=Md(g);if(o._retryCount>=Vo)return t?.warning({category:`HttpClient`,message:`Max retries exceeded for ${o.url}. Aborting.`,context:{...r??{},...o.requestMetadata??{},retryAfterHeader:g,retryAfterAsNumber:n}}),Promise.reject(i);let s=o?._retryCount??0,c={...o,_retryCount:s+1},u=g?n*Uo:(0,l.exponentialBackoffInMS)(c._retryCount);return t?.debug({category:`HttpClient`,message:`Received 429 error from ${o.url}`,context:{...r,retryAfterHeader:g,calculatedRetryAfter:u}}),await Io(u*1e3,o,a),e?.request(c)}return Promise.reject(i)};return i},Wd=`rateLimitResponseInterceptor`,Gd=({logger:e,context:t})=>{let n=async n=>{let r=n?.config,i=r?.signal;if((0,l.isMissing)(t))e?.warning({category:`HttpClient`,message:`No context for this response - that doesn't seem right.`,context:{...r,interceptor:Wd,headers:void 0}});else{let t=n?.headers;if((0,l.notMissing)(t)){let n=Ad(t);e?.debug({category:`HttpClient`,message:`Rate limit headers extracted`,context:{interceptor:Wd,rateLimitHeaders:n}})}let{requestId:a,targetConcurrencyKey:o,leaseSubscription:s,setRemovalSubscription:c}=r?.requestMetadata??{},u=await qe.getInstance(),d=await u.releaseRequest(a,o);if(d||e?.error({category:`HttpClient`,message:`Failed to release request from concurrency manager`,context:{interceptor:Wd,requestId:a,targetConcurrencyKey:o,leaseSubscription:s,setRemovalSubscription:c},code:Fd.RateLimiterReleaseRequestFailed}),i?.aborted)return Promise.reject(Fo(`Request aborted`,r,`ERR_CANCELED`,n))}return n};return n},Kd=e=>(e.validateStatus??=e=>e>=200&&e<300,e),qd=[{onFulfilled:Kd,onRejected:null,options:void 0}],Jd=[{onFulfilled:null,onRejected:Id},{onFulfilled:null,onRejected:So}],Yd=[{onFulfilled:Kd,onRejected:null,options:void 0},{onFulfilled:Ro,onRejected:null,options:void 0}],Xd=[{onFulfilled:Gd,onRejected:Ud},{onFulfilled:null,onRejected:So}];let Zd=function(e){return e.HttpTransportInstanceCreateError=`HttpTransportInstanceCreateError`,e}({});const Qd=async({logger:e,redisClientConfig:t,context:n,requestConfig:r,httpsAgentConfig:i}={})=>{let a,{NODE_ENV:o}=process.env,s=n?.behaviours??[`CONCURRENCY`,`RETRY`];try{if(a=s.includes(`RETRY`)?ef(e,n):$d(e,n),(0,l.isMissing)(n?.service)||(0,l.isMissing)(n?.organizationId)||o===`test`||(0,l.isMissing)(t)||(0,l.isMissing)(e))return a;await Po.getInstance(t,e);let c=await Po.isReady(),u=await qe.getInstance(t,e),d=await u.isRedisConfigured(),f=[],p=[];if(s.includes(`CONCURRENCY`)){if(!d)throw Error(`Concurrency Manager cannot connect to Redis. Cannot create advanced transport instance.`);if(!c)throw Error(`RateLimitManager is not ready. Cannot create advanced transport instance.`);f.push(...Yd),p.push(...Xd)}let m=jd(n);if((0,l.isMissing)(m))return e?.warning({category:`http-transport`,message:`Unable to create a key for transport instance - Invalid state. Using base default instance.`,context:{...n,defaultInstanceInitialized:(0,l.notMissing)(a)}}),a;let h=await xo.get(m);if((0,l.notMissing)(h))return h;let g={interceptors:{requestConfigs:f,responseConfigs:p},instanceConfig:{maxBodyLength:1/0},logger:e,context:n,requestConfig:r,httpsAgentConfig:i},_=vo.createInstance(g);return e?.debug({category:`http-transport`,message:`Creating new Axios instance and caching it for key: [${m}]`,context:{...n}}),await xo.set(m,_),_}catch(t){return e?.error({category:`http-transport`,message:`Failed to create advanced transport instance. Using default instance.`,context:{...n,usingDefaultInstance:(0,l.notMissing)(a)},error:t,code:Zd.HttpTransportInstanceCreateError}),(0,l.notMissing)(a)?a:tf()}},$d=(e,t)=>{let n={instanceConfig:{maxBodyLength:1/0},logger:e,context:t};return vo.createInstance(n)??tf()},ef=(e,t)=>{let n={interceptors:{requestConfigs:qd,responseConfigs:Jd},instanceConfig:{maxBodyLength:1/0},logger:e,context:t};return vo.createInstance(n)??tf()},tf=()=>{let e=d.default.create({maxBodyLength:1/0});return e};var nf=class e{#transportFactory;#getRedisClient;#logger;#redisClientConfig;#errorMappingFn;#redisClient;constructor({transportFactory:e=Qd,getRedisClient:t=ue,logger:n,redisClientConfig:r,errorMappingFn:i}={}){this.#transportFactory=e,this.#getRedisClient=t,this.#logger=n,this.#redisClientConfig=r,this.#errorMappingFn=i}#generateCacheKey({url:e,payload:t,method:n,context:r}){let i=20;if(!r?.accountSecureId||r.accountSecureId.length<i||!e||!n)return null;let a=t?(0,l.getContentHash)(t):``;return`${r.accountSecureId}-${n.toUpperCase()}${a}-${e}`}async#getCachedResponse({url:t,payload:n,method:r,cacheTTL:i,context:a}){if(!this.#redisClient||!i||i<=0)return null;let o=this.#generateCacheKey({url:t,payload:n,method:r,context:a});if(!o)return null;let s=await this.#redisClient.getData(o);return s?(this.#logger?.debug({category:e.name,message:`Cache hit for key [${o}].`}),s):(this.#logger?.debug({category:e.name,message:`Cache miss for key [${o}].`}),null)}async#cacheResponse({url:t,payload:n,method:r,cacheTTL:i,context:a,response:o}){if(!this.#redisClient||!i||i<=0)return!1;let s=this.#generateCacheKey({url:t,payload:n,method:r,context:a});return s?(this.#logger?.debug({category:e.name,message:`Caching result for key [${s}].`}),this.#redisClient.setData({key:s,value:o,cacheTTL:i*60})):!1}async request({headers:t={},url:n,method:r=`get`,queryParams:i,maxRedirects:a=0,responseType:o,cacheTTL:s,context:c,traceId:u,payload:d,httpsAgent:f,httpAgent:p,requestConfig:m,httpsAgentConfig:h}){try{(0,l.notMissing)(this.#redisClientConfig)&&(0,l.isMissing)(this.#redisClient)&&(this.#redisClient=await this.#getRedisClient(this.#redisClientConfig,this.#logger));let e=this.#buildUrlWithQueryParams(n,i),g=this.#normalizeHeaders(t),_=this.#getSafePayload(d,t),v=await this.#getCachedResponse({url:e,payload:_,method:r,cacheTTL:s,context:c});if(v)return{...v,responseTime:new Date};let y=bo.getInstance(),b=(0,l.notMissing)(u)?await y.get(u):null,x=b?.signal,S=await this.#transportFactory({redisClientConfig:this.#redisClientConfig,logger:this.#logger,context:c,requestConfig:m,httpsAgentConfig:h}),ee=await S.request({headers:g,url:e,method:r,maxRedirects:a,responseType:o,data:_,httpsAgent:f,httpAgent:p,signal:x}),C={data:ee.data,status:ee.status,body:_,method:r,headers:this.#extractAxiosHeaders(ee.headers),requestUrl:n,responseType:ee?.config?.responseType,responseTime:new Date};return await this.#cacheResponse({url:e,payload:_,method:r,cacheTTL:s,context:c,response:C}),C}catch(t){let i=t;i.url=(0,g.redactUrl)(n),this.#logger?.warning({category:e.name,message:`Request error [${r?.toUpperCase()} ${i.url}]: ${i.message}.`,error:i});let a=this.#mapErrorToHttpException(i);throw(0,l.notMissing)(a)?a:t}}async get({headers:e,url:t,queryParams:n,maxRedirects:r,cacheTTL:i,context:a,traceId:o,requestConfig:s}){return this.request({url:t,method:`get`,queryParams:n,headers:e,maxRedirects:r,cacheTTL:i,context:a,traceId:o,requestConfig:s})}async post({headers:e,url:t,maxRedirects:n,cacheTTL:r,context:i,traceId:a,payload:o,requestConfig:s}){return this.request({url:t,method:`post`,headers:e,maxRedirects:n,cacheTTL:r,context:i,traceId:a,payload:o,requestConfig:s})}#normalizeHeaders(e){if(!e)return{};let t={};return Object.keys(e).forEach(n=>{t[n.toLowerCase()]=e[n]||``}),t}#extractAxiosHeaders(e){if(!e)return{};let t={};return Object.keys(e).forEach(n=>{t[n]=e[n]||``}),t}#isFormUrlEncoded(e){return e[`content-type`]===`application/x-www-form-urlencoded`}#getSafePayload(e,t){if(!((0,l.isMissing)(e)||(0,l.isObject)(e)&&Object.keys(e).length===0))return this.#isFormUrlEncoded(t)?_.default.stringify(e):e}#mapErrorToHttpException(e){if((0,d.isAxiosError)(e)&&this.#errorMappingFn)return this.#errorMappingFn(e)}#buildUrlWithQueryParams(e,t){if((0,l.isMissing)(t)||Object.keys(t).length===0)return e;let n=_.default.stringify(t);return`${e}?${n}`}};const rf=(e,t,n)=>new nf({redisClientConfig:e,logger:t,errorMappingFn:n});var af=class{static httpClientInstance=null;static async getInstance({redisClientConfig:e,logger:t,errorMappingFn:n,getHttpClient:r=rf}){return this.httpClientInstance??=r(e,t,n),this.httpClientInstance}static resetInstance(){this.httpClientInstance=null}};const sf=[`get`,`post`,`put`,`delete`,`patch`],cf=e=>e.reduce((e,t)=>(Array.isArray(e[t.in][t.name])?e[t.in][t.name]=e[t.in][t.name].concat(t.value):typeof e[t.in][t.name]==`object`&&typeof t.value==`object`?e[t.in][t.name]={...e[t.in][t.name],...t.value}:e[t.in][t.name]=t.in===`body`?t.value:String(t.value),e),{query:{},body:{},headers:{}}),lf=[`query`,`body`,`headers`],uf=(e,t)=>{if((0,l.isMissing)(t)||t?.length===0||(0,l.isMissing)(e))return{data:e.data,status:e.status,headers:e.headers,requestUrl:e.requestUrl,responseType:e.responseType,responseTime:e.responseTime,message:e.message};let n=t?.filter(t=>t.receivedStatus===e.status);if(n?.length)for(let t of n){let n=t.condition,r=(0,v.safeEvaluate)(n,e)===!0;if((0,l.isMissing)(n)||r)return{data:e.data,headers:e.headers,requestUrl:e.requestUrl,responseType:e.responseType,responseTime:e.responseTime,status:t.targetStatus,message:t?.message??po[t.targetStatus]??`Unknown error`}}return e},df=e=>(0,l.notMissing)(e)&&e>=200&&e<=299,ff=e=>(0,l.notMissing)(e)&&e>=400&&e<=599,pf=e=>(0,l.notMissing)(e)&&e>=100&&e<=199;var mf=class{async performRequest({httpClient:e,url:t,method:n,headers:r,queryParams:i,body:a,customErrorConfigs:o,requestConfig:s}){let c;try{c=await e?.request({method:n,url:t,headers:r,queryParams:i,maxRedirects:0,payload:a,requestConfig:s})}catch(e){if((0,l.isMissing)(e?.response))throw e;c=e.response}let u=uf(c,o);if(ff(u?.status))throw new mo(u,u.message);return u}},hf=class{static build(e=`rest`){if(e===`rest`)return new mf;throw Error(`Unknown request client type: ${e}`)}};exports.CUSTOM_ERROR_CONFIG_SCHEMA=fo,exports.ConcurrencyManager=qe,exports.EventClient=le,exports.HttpClient=nf,exports.HttpClientManager=af,exports.HttpErrorMessages=po,exports.HttpMethods=sf,exports.HttpResponseError=mo,exports.HttpTransportFactory=vo,exports.InstanceManager=bo,exports.LockManager=S,exports.MemoryStore=ae,exports.QueueManager=De,exports.RateLimitManager=Po,exports.RedisClient=de,exports.RequestClientFactory=hf,exports.RequestParameterLocations=lf,exports.ScriptManager=he,exports.SubscriptionManager=ge,exports.buildHttpClientInstance=rf,exports.createAuthorizationHeaders=y,exports.getTransportInstance=Qd,exports.isFailedStatusCode=ff,exports.isInfoStatusCode=pf,exports.isSuccessStatusCode=df,exports.parseRequestParameters=cf,exports.serializeHttpResponseError=_o;
|
|
189
|
+
`},Fo=async e=>{let{redisClientConfig:t,logger:n,generateUUID:r}=e;try{n?.info({category:`TransportInitialization`,message:`Starting transport system initialization`});let[e,i,a]=await Promise.all([$.prepare(We,{redisClientConfig:t,scripts:Ue,logger:n,additionalArgs:r?[r]:void 0}),$.prepare(j,{redisClientConfig:t,scripts:No,logger:n}),$.prepare(Co,{redisClientConfig:t,scripts:Po,logger:n})]),o=[{name:`ConcurrencyManager`,ready:e.isReady()},{name:`QueueManager`,ready:i.isReady()},{name:`RateLimitManager`,ready:a.isReady()}],s=o.filter(e=>!e.ready);if(s.length>0){let e=s.map(e=>e.name).join(`, `);throw Error(`Failed to initialize managers: ${e}`)}return n?.info({category:`TransportInitialization`,message:`Transport system initialization completed successfully`,context:{initializedManagers:o.map(e=>e.name)}}),{concurrencyManager:e,queueManager:i,rateLimitManager:a}}catch(e){n?.error({category:`TransportInitialization`,message:`Failed to initialize transport system`,code:`TRANSPORT_INIT_ERROR`,error:e});let t=$.cleanupFailed();throw t>0&&n?.info({category:`TransportInitialization`,message:`Cleaned up ${t} failed singleton instances`}),e}},Io=e=>{try{e?.info({category:`TransportInitialization`,message:`Starting transport system shutdown`});let t=$.getIfReady(We),n=$.getIfReady(j),r=$.getIfReady(Co);t?.close(),n?.close(),r?.close(),$.reset(We),$.reset(j),$.reset(Co),e?.info({category:`TransportInitialization`,message:`Transport system shutdown completed`})}catch(t){e?.error({category:`TransportInitialization`,message:`Error during transport system shutdown`,code:`TRANSPORT_SHUTDOWN_ERROR`,error:t})}},Lo=()=>{let e=$.getIfReady(We),t=$.getIfReady(j),n=$.getIfReady(Co);return!!(e?.isReady()&&t?.isReady()&&n?.isReady())},Ro=()=>{let e=$.getIfReady(We),t=$.getIfReady(j),n=$.getIfReady(Co);return e&&t&&n?{concurrencyManager:e,queueManager:t,rateLimitManager:n}:null},zo=e=>e.reduce((e,t)=>(Array.isArray(e[t.in][t.name])?e[t.in][t.name]=e[t.in][t.name].concat(t.value):typeof e[t.in][t.name]==`object`&&typeof t.value==`object`?e[t.in][t.name]={...e[t.in][t.name],...t.value}:e[t.in][t.name]=t.in===`body`?t.value:String(t.value),e),{query:{},body:{},headers:{}}),Bo=[`query`,`body`,`headers`],Vo=(e,t)=>{if((0,l.isMissing)(t)||t?.length===0||(0,l.isMissing)(e))return{data:e.data,status:e.status,headers:e.headers,requestUrl:e.requestUrl,responseType:e.responseType,responseTime:e.responseTime,message:e.message};let n=t?.filter(t=>t.receivedStatus===e.status);if(n?.length)for(let t of n){let n=t.condition,r=(0,v.safeEvaluate)(n,e)===!0;if((0,l.isMissing)(n)||r)return{data:e.data,headers:e.headers,requestUrl:e.requestUrl,responseType:e.responseType,responseTime:e.responseTime,status:t.targetStatus,message:t?.message??Ke[t.targetStatus]??`Unknown error`}}return e},Ho=e=>(0,l.notMissing)(e)&&e>=200&&e<=299,Uo=e=>(0,l.notMissing)(e)&&e>=400&&e<=599,Wo=e=>(0,l.notMissing)(e)&&e>=100&&e<=199;var Go=class{async performRequest({httpClient:e,url:t,method:n,headers:r,queryParams:i,body:a,customErrorConfigs:o,requestConfig:s}){let c;try{c=await e?.request({method:n,url:t,headers:r,queryParams:i,maxRedirects:0,payload:a,requestConfig:s})}catch(e){if((0,l.isMissing)(e?.response))throw e;c=e.response}let u=Vo(c,o);if(Uo(u?.status))throw new qe(u,u.message);return u}},Ko=class{static build(e=`rest`){if(e===`rest`)return new Go;throw Error(`Unknown request client type: ${e}`)}};exports.CUSTOM_ERROR_CONFIG_SCHEMA=Ge,exports.ConcurrencyManager=We,exports.EventClient=ce,exports.HttpClient=ko,exports.HttpClientManager=jo,exports.HttpErrorMessages=Ke,exports.HttpMethods=Mo,exports.HttpResponseError=qe,exports.HttpTransportFactory=Ze,exports.InstanceManager=$e,exports.LockManager=S,exports.MemoryStore=ie,exports.QueueManager=j,exports.RateLimitManager=Co,exports.RedisClient=de,exports.RequestClientFactory=Ko,exports.RequestParameterLocations=Bo,exports.ScriptManager=he,exports.SubscriptionManager=ge,exports.buildHttpClientInstance=Ao,exports.createAuthorizationHeaders=y,exports.getTransportInstance=To,exports.getTransportManagers=Ro,exports.initializeTransportSystem=Fo,exports.isFailedStatusCode=Uo,exports.isInfoStatusCode=Wo,exports.isSuccessStatusCode=Ho,exports.isTransportSystemReady=Lo,exports.parseRequestParameters=zo,exports.serializeHttpResponseError=Xe,exports.shutdownTransportSystem=Io;
|