@imtbl/sdk 0.28.5-alpha.1 → 0.28.5-alpha.3
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/blockchain_data.js +1 -1
- package/dist/immutablex_client.js +1 -1
- package/dist/index.browser.js +8 -34
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +1029 -23087
- package/dist/index.d.ts +55 -3899
- package/dist/index.js +1039 -23095
- package/dist/passport.d.ts +7 -1
- package/dist/passport.js +67 -21
- package/dist/provider.d.ts +32 -27
- package/dist/provider.js +22 -2
- package/package.json +4 -27
- package/dist/browser/checkout/sdk.js +0 -35
- package/dist/browser/checkout/widgets.js +0 -890
- package/dist/checkout_sdk.d.ts +0 -12697
- package/dist/checkout_sdk.js +0 -25850
- package/dist/orderbook.d.ts +0 -1600
- package/dist/orderbook.js +0 -1580
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ImmutableCheckout={})}(this,(function(e){"use strict";var t,n,r,i,a,o,s,u,c,l,d;function f(e,t){return function(){return e.apply(t,arguments)}}e.IMTBLWidgetEvents=void 0,(t=e.IMTBLWidgetEvents||(e.IMTBLWidgetEvents={})).IMTBL_WIDGETS_PROVIDER="imtbl-widgets-provider",t.IMTBL_CONNECT_WIDGET_EVENT="imtbl-connect-widget",t.IMTBL_WALLET_WIDGET_EVENT="imtbl-wallet-widget",t.IMTBL_SWAP_WIDGET_EVENT="imtbl-swap-widget",t.IMTBL_BRIDGE_WIDGET_EVENT="imtbl-bridge-widget",t.IMTBL_ONRAMP_WIDGET_EVENT="imtbl-onramp-widget",t.IMTBL_SALE_WIDGET_EVENT="imtbl-sale-widget",e.ProviderEventType=void 0,(e.ProviderEventType||(e.ProviderEventType={})).PROVIDER_UPDATED="PROVIDER_UPDATED",e.ConnectEventType=void 0,(n=e.ConnectEventType||(e.ConnectEventType={})).CLOSE_WIDGET="close-widget",n.SUCCESS="success",n.FAILURE="failure",e.WalletEventType=void 0,(r=e.WalletEventType||(e.WalletEventType={})).CLOSE_WIDGET="close-widget",r.NETWORK_SWITCH="network-switch",r.DISCONNECT_WALLET="disconnect-wallet",e.SwapEventType=void 0,(i=e.SwapEventType||(e.SwapEventType={})).CLOSE_WIDGET="close-widget",i.SUCCESS="success",i.FAILURE="failure",i.REJECTED="rejected",e.SaleEventType=void 0,(a=e.SaleEventType||(e.SaleEventType={})).CLOSE_WIDGET="close-widget",a.SUCCESS="success",a.FAILURE="failure",a.REJECTED="rejected",e.BridgeEventType=void 0,(o=e.BridgeEventType||(e.BridgeEventType={})).CLOSE_WIDGET="close-widget",o.SUCCESS="success",o.FAILURE="failure",e.OrchestrationEventType=void 0,(s=e.OrchestrationEventType||(e.OrchestrationEventType={})).REQUEST_CONNECT="request-connect",s.REQUEST_WALLET="request-wallet",s.REQUEST_SWAP="request-swap",s.REQUEST_BRIDGE="request-bridge",s.REQUEST_ONRAMP="request-onramp",e.OnRampEventType=void 0,(u=e.OnRampEventType||(e.OnRampEventType={})).CLOSE_WIDGET="close-widget",u.SUCCESS="success",u.FAILURE="failure",e.WidgetType=void 0,(c=e.WidgetType||(e.WidgetType={})).CONNECT="connect",c.WALLET="wallet",c.SWAP="swap",c.BRIDGE="bridge",c.ONRAMP="onramp",c.SALE="sale",e.ConnectTargetLayer=void 0,(l=e.ConnectTargetLayer||(e.ConnectTargetLayer={})).LAYER1="LAYER1",l.LAYER2="LAYER2",e.WidgetTheme=void 0,(d=e.WidgetTheme||(e.WidgetTheme={})).LIGHT="light",d.DARK="dark";const{toString:p}=Object.prototype,{getPrototypeOf:h}=Object,m=(y=Object.create(null),e=>{const t=p.call(e);return y[t]||(y[t]=t.slice(8,-1).toLowerCase())});var y;const g=e=>(e=e.toLowerCase(),t=>m(t)===e),b=e=>t=>typeof t===e,{isArray:v}=Array,w=b("undefined");const T=g("ArrayBuffer");const A=b("string"),E=b("function"),_=b("number"),I=e=>null!==e&&"object"==typeof e,R=e=>{if("object"!==m(e))return!1;const t=h(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},C=g("Date"),O=g("File"),k=g("Blob"),S=g("FileList"),N=g("URLSearchParams");function x(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,i;if("object"!=typeof e&&(e=[e]),v(e))for(r=0,i=e.length;r<i;r++)t.call(null,e[r],r,e);else{const i=n?Object.getOwnPropertyNames(e):Object.keys(e),a=i.length;let o;for(r=0;r<a;r++)o=i[r],t.call(null,e[o],o,e)}}function P(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,i=n.length;for(;i-- >0;)if(r=n[i],t===r.toLowerCase())return r;return null}const M="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,B=e=>!w(e)&&e!==M;const D=(F="undefined"!=typeof Uint8Array&&h(Uint8Array),e=>F&&e instanceof F);var F;const L=g("HTMLFormElement"),U=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),q=g("RegExp"),j=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};x(n,((n,i)=>{!1!==t(n,i,e)&&(r[i]=n)})),Object.defineProperties(e,r)},G="abcdefghijklmnopqrstuvwxyz",H="0123456789",z={DIGIT:H,ALPHA:G,ALPHA_DIGIT:G+G.toUpperCase()+H};const V=g("AsyncFunction");var W={isArray:v,isArrayBuffer:T,isBuffer:function(e){return null!==e&&!w(e)&&null!==e.constructor&&!w(e.constructor)&&E(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||E(e.append)&&("formdata"===(t=m(e))||"object"===t&&E(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&T(e.buffer),t},isString:A,isNumber:_,isBoolean:e=>!0===e||!1===e,isObject:I,isPlainObject:R,isUndefined:w,isDate:C,isFile:O,isBlob:k,isRegExp:q,isFunction:E,isStream:e=>I(e)&&E(e.pipe),isURLSearchParams:N,isTypedArray:D,isFileList:S,forEach:x,merge:function e(){const{caseless:t}=B(this)&&this||{},n={},r=(r,i)=>{const a=t&&P(n,i)||i;R(n[a])&&R(r)?n[a]=e(n[a],r):R(r)?n[a]=e({},r):v(r)?n[a]=r.slice():n[a]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&x(arguments[e],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(x(t,((t,r)=>{n&&E(t)?e[r]=f(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let i,a,o;const s={};if(t=t||{},null==e)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-- >0;)o=i[a],r&&!r(o,e,t)||s[o]||(t[o]=e[o],s[o]=!0);e=!1!==n&&h(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:m,kindOfTest:g,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(v(e))return e;let t=e.length;if(!_(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:L,hasOwnProperty:U,hasOwnProp:U,reduceDescriptors:j,freezeMethods:e=>{j(e,((t,n)=>{if(E(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];E(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return v(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:P,global:M,isContextDefined:B,ALPHABET:z,generateString:(e=16,t=z.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&E(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(I(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const i=v(e)?[]:{};return x(e,((e,t)=>{const a=n(e,r+1);!w(a)&&(i[t]=a)})),t[r]=void 0,i}}return e};return n(e,0)},isAsyncFn:V,isThenable:e=>e&&(I(e)||E(e))&&E(e.then)&&E(e.catch)};function K(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}W.inherits(K,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:W.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const X=K.prototype,J={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{J[e]={value:e}})),Object.defineProperties(K,J),Object.defineProperty(X,"isAxiosError",{value:!0}),K.from=(e,t,n,r,i,a)=>{const o=Object.create(X);return W.toFlatObject(e,o,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),K.call(o,e.message,t,n,r,i),o.cause=e,o.name=e.name,a&&Object.assign(o,a),o};function Y(e){return W.isPlainObject(e)||W.isArray(e)}function Q(e){return W.endsWith(e,"[]")?e.slice(0,-2):e}function $(e,t,n){return e?e.concat(t).map((function(e,t){return e=Q(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const Z=W.toFlatObject(W,{},null,(function(e){return/^is[A-Z]/.test(e)}));function ee(e,t,n){if(!W.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=W.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!W.isUndefined(t[e])}))).metaTokens,i=n.visitor||c,a=n.dots,o=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&W.isSpecCompliantForm(t);if(!W.isFunction(i))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(W.isDate(e))return e.toISOString();if(!s&&W.isBlob(e))throw new K("Blob is not supported. Use a Buffer instead.");return W.isArrayBuffer(e)||W.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,i){let s=e;if(e&&!i&&"object"==typeof e)if(W.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(W.isArray(e)&&function(e){return W.isArray(e)&&!e.some(Y)}(e)||(W.isFileList(e)||W.endsWith(n,"[]"))&&(s=W.toArray(e)))return n=Q(n),s.forEach((function(e,r){!W.isUndefined(e)&&null!==e&&t.append(!0===o?$([n],r,a):null===o?n:n+"[]",u(e))})),!1;return!!Y(e)||(t.append($(i,n,a),u(e)),!1)}const l=[],d=Object.assign(Z,{defaultVisitor:c,convertValue:u,isVisitable:Y});if(!W.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!W.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),W.forEach(n,(function(n,a){!0===(!(W.isUndefined(n)||null===n)&&i.call(t,n,W.isString(a)?a.trim():a,r,d))&&e(n,r?r.concat(a):[a])})),l.pop()}}(e),t}function te(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function ne(e,t){this._pairs=[],e&&ee(e,this,t)}const re=ne.prototype;function ie(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ae(e,t,n){if(!t)return e;const r=n&&n.encode||ie,i=n&&n.serialize;let a;if(a=i?i(t,n):W.isURLSearchParams(t)?t.toString():new ne(t,n).toString(r),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}re.append=function(e,t){this._pairs.push([e,t])},re.toString=function(e){const t=e?function(t){return e.call(this,t,te)}:te;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var oe=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){W.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},se={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var ue={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:ne,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},isStandardBrowserEnv:(()=>{let e;return("undefined"==typeof navigator||"ReactNative"!==(e=navigator.product)&&"NativeScript"!==e&&"NS"!==e)&&("undefined"!=typeof window&&"undefined"!=typeof document)})(),isStandardBrowserWebWorkerEnv:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,protocols:["http","https","file","blob","url","data"]};function ce(e){function t(e,n,r,i){let a=e[i++];const o=Number.isFinite(+a),s=i>=e.length;if(a=!a&&W.isArray(r)?r.length:a,s)return W.hasOwnProp(r,a)?r[a]=[r[a],n]:r[a]=n,!o;r[a]&&W.isObject(r[a])||(r[a]=[]);return t(e,n,r[a],i)&&W.isArray(r[a])&&(r[a]=function(e){const t={},n=Object.keys(e);let r;const i=n.length;let a;for(r=0;r<i;r++)a=n[r],t[a]=e[a];return t}(r[a])),!o}if(W.isFormData(e)&&W.isFunction(e.entries)){const n={};return W.forEachEntry(e,((e,r)=>{t(function(e){return W.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const le={"Content-Type":void 0};const de={transitional:se,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,i=W.isObject(e);i&&W.isHTMLForm(e)&&(e=new FormData(e));if(W.isFormData(e))return r&&r?JSON.stringify(ce(e)):e;if(W.isArrayBuffer(e)||W.isBuffer(e)||W.isStream(e)||W.isFile(e)||W.isBlob(e))return e;if(W.isArrayBufferView(e))return e.buffer;if(W.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return ee(e,new ue.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return ue.isNode&&W.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((a=W.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return ee(a?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||r?(t.setContentType("application/json",!1),function(e,t,n){if(W.isString(e))try{return(t||JSON.parse)(e),W.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||de.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&W.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw K.from(e,K.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ue.classes.FormData,Blob:ue.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};W.forEach(["delete","get","head"],(function(e){de.headers[e]={}})),W.forEach(["post","put","patch"],(function(e){de.headers[e]=W.merge(le)}));var fe=de;const pe=W.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const he=Symbol("internals");function me(e){return e&&String(e).trim().toLowerCase()}function ye(e){return!1===e||null==e?e:W.isArray(e)?e.map(ye):String(e)}function ge(e,t,n,r,i){return W.isFunction(r)?r.call(this,t,n):(i&&(t=n),W.isString(t)?W.isString(r)?-1!==t.indexOf(r):W.isRegExp(r)?r.test(t):void 0:void 0)}let be=class{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function i(e,t,n){const i=me(t);if(!i)throw new Error("header name must be a non-empty string");const a=W.findKey(r,i);(!a||void 0===r[a]||!0===n||void 0===n&&!1!==r[a])&&(r[a||t]=ye(e))}const a=(e,t)=>W.forEach(e,((e,n)=>i(e,n,t)));return W.isPlainObject(e)||e instanceof this.constructor?a(e,t):W.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?a((e=>{const t={};let n,r,i;return e&&e.split("\n").forEach((function(e){i=e.indexOf(":"),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!n||t[n]&&pe[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t):null!=e&&i(t,e,n),this}get(e,t){if(e=me(e)){const n=W.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(W.isFunction(t))return t.call(this,e,n);if(W.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=me(e)){const n=W.findKey(this,e);return!(!n||void 0===this[n]||t&&!ge(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function i(e){if(e=me(e)){const i=W.findKey(n,e);!i||t&&!ge(0,n[i],i,t)||(delete n[i],r=!0)}}return W.isArray(e)?e.forEach(i):i(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const i=t[n];e&&!ge(0,this[i],i,e,!0)||(delete this[i],r=!0)}return r}normalize(e){const t=this,n={};return W.forEach(this,((r,i)=>{const a=W.findKey(n,i);if(a)return t[a]=ye(r),void delete t[i];const o=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(i):String(i).trim();o!==i&&delete t[i],t[o]=ye(r),n[o]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return W.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&W.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[he]=this[he]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=me(e);t[r]||(!function(e,t){const n=W.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})}))}(n,e),t[r]=!0)}return W.isArray(e)?e.forEach(r):r(e),this}};be.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),W.freezeMethods(be.prototype),W.freezeMethods(be);var ve=be;function we(e,t){const n=this||fe,r=t||n,i=ve.from(r.headers);let a=r.data;return W.forEach(e,(function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)})),i.normalize(),a}function Te(e){return!(!e||!e.__CANCEL__)}function Ae(e,t,n){K.call(this,null==e?"canceled":e,K.ERR_CANCELED,t,n),this.name="CanceledError"}W.inherits(Ae,K,{__CANCEL__:!0});var Ee=ue.isStandardBrowserEnv?{write:function(e,t,n,r,i,a){const o=[];o.push(e+"="+encodeURIComponent(t)),W.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),W.isString(r)&&o.push("path="+r),W.isString(i)&&o.push("domain="+i),!0===a&&o.push("secure"),document.cookie=o.join("; ")},read:function(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function _e(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}var Ie=ue.isStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=W.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};function Re(e,t){let n=0;const r=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i,a=0,o=0;return t=void 0!==t?t:1e3,function(s){const u=Date.now(),c=r[o];i||(i=u),n[a]=s,r[a]=u;let l=o,d=0;for(;l!==a;)d+=n[l++],l%=e;if(a=(a+1)%e,a===o&&(o=(o+1)%e),u-i<t)return;const f=c&&u-c;return f?Math.round(1e3*d/f):void 0}}(50,250);return i=>{const a=i.loaded,o=i.lengthComputable?i.total:void 0,s=a-n,u=r(s);n=a;const c={loaded:a,total:o,progress:o?a/o:void 0,bytes:s,rate:u||void 0,estimated:u&&o&&a<=o?(o-a)/u:void 0,event:i};c[t?"download":"upload"]=!0,e(c)}}var Ce="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){let r=e.data;const i=ve.from(e.headers).normalize(),a=e.responseType;let o;function s(){e.cancelToken&&e.cancelToken.unsubscribe(o),e.signal&&e.signal.removeEventListener("abort",o)}W.isFormData(r)&&(ue.isStandardBrowserEnv||ue.isStandardBrowserWebWorkerEnv?i.setContentType(!1):i.setContentType("multipart/form-data;",!1));let u=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.set("Authorization","Basic "+btoa(t+":"+n))}const c=_e(e.baseURL,e.url);function l(){if(!u)return;const r=ve.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new K("Request failed with status code "+n.status,[K.ERR_BAD_REQUEST,K.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}((function(e){t(e),s()}),(function(e){n(e),s()}),{data:a&&"text"!==a&&"json"!==a?u.response:u.responseText,status:u.status,statusText:u.statusText,headers:r,config:e,request:u}),u=null}if(u.open(e.method.toUpperCase(),ae(c,e.params,e.paramsSerializer),!0),u.timeout=e.timeout,"onloadend"in u?u.onloadend=l:u.onreadystatechange=function(){u&&4===u.readyState&&(0!==u.status||u.responseURL&&0===u.responseURL.indexOf("file:"))&&setTimeout(l)},u.onabort=function(){u&&(n(new K("Request aborted",K.ECONNABORTED,e,u)),u=null)},u.onerror=function(){n(new K("Network Error",K.ERR_NETWORK,e,u)),u=null},u.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||se;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new K(t,r.clarifyTimeoutError?K.ETIMEDOUT:K.ECONNABORTED,e,u)),u=null},ue.isStandardBrowserEnv){const t=(e.withCredentials||Ie(c))&&e.xsrfCookieName&&Ee.read(e.xsrfCookieName);t&&i.set(e.xsrfHeaderName,t)}void 0===r&&i.setContentType(null),"setRequestHeader"in u&&W.forEach(i.toJSON(),(function(e,t){u.setRequestHeader(t,e)})),W.isUndefined(e.withCredentials)||(u.withCredentials=!!e.withCredentials),a&&"json"!==a&&(u.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&u.addEventListener("progress",Re(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&u.upload&&u.upload.addEventListener("progress",Re(e.onUploadProgress)),(e.cancelToken||e.signal)&&(o=t=>{u&&(n(!t||t.type?new Ae(null,e,u):t),u.abort(),u=null)},e.cancelToken&&e.cancelToken.subscribe(o),e.signal&&(e.signal.aborted?o():e.signal.addEventListener("abort",o)));const d=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(c);d&&-1===ue.protocols.indexOf(d)?n(new K("Unsupported protocol "+d+":",K.ERR_BAD_REQUEST,e)):u.send(r||null)}))};const Oe={http:null,xhr:Ce};W.forEach(Oe,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));var ke=e=>{e=W.isArray(e)?e:[e];const{length:t}=e;let n,r;for(let i=0;i<t&&(n=e[i],!(r=W.isString(n)?Oe[n.toLowerCase()]:n));i++);if(!r){if(!1===r)throw new K(`Adapter ${n} is not supported by the environment`,"ERR_NOT_SUPPORT");throw new Error(W.hasOwnProp(Oe,n)?`Adapter '${n}' is not available in the build`:`Unknown adapter '${n}'`)}if(!W.isFunction(r))throw new TypeError("adapter is not a function");return r};function Se(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ae(null,e)}function Ne(e){Se(e),e.headers=ve.from(e.headers),e.data=we.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return ke(e.adapter||fe.adapter)(e).then((function(t){return Se(e),t.data=we.call(e,e.transformResponse,t),t.headers=ve.from(t.headers),t}),(function(t){return Te(t)||(Se(e),t&&t.response&&(t.response.data=we.call(e,e.transformResponse,t.response),t.response.headers=ve.from(t.response.headers))),Promise.reject(t)}))}const xe=e=>e instanceof ve?e.toJSON():e;function Pe(e,t){t=t||{};const n={};function r(e,t,n){return W.isPlainObject(e)&&W.isPlainObject(t)?W.merge.call({caseless:n},e,t):W.isPlainObject(t)?W.merge({},t):W.isArray(t)?t.slice():t}function i(e,t,n){return W.isUndefined(t)?W.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function a(e,t){if(!W.isUndefined(t))return r(void 0,t)}function o(e,t){return W.isUndefined(t)?W.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,i,a){return a in t?r(n,i):a in e?r(void 0,n):void 0}const u={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(e,t)=>i(xe(e),xe(t),!0)};return W.forEach(Object.keys(Object.assign({},e,t)),(function(r){const a=u[r]||i,o=a(e[r],t[r],r);W.isUndefined(o)&&a!==s||(n[r]=o)})),n}const Me="1.4.0",Be={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Be[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const De={};Be.transitional=function(e,t,n){function r(e,t){return"[Axios v1.4.0] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,i,a)=>{if(!1===e)throw new K(r(i," has been removed"+(t?" in "+t:"")),K.ERR_DEPRECATED);return t&&!De[i]&&(De[i]=!0,console.warn(r(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,a)}};var Fe={assertOptions:function(e,t,n){if("object"!=typeof e)throw new K("options must be an object",K.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const a=r[i],o=t[a];if(o){const t=e[a],n=void 0===t||o(t,a,e);if(!0!==n)throw new K("option "+a+" must be "+n,K.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new K("Unknown option "+a,K.ERR_BAD_OPTION)}},validators:Be};const Le=Fe.validators;let Ue=class{constructor(e){this.defaults=e,this.interceptors={request:new oe,response:new oe}}request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Pe(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:i}=t;let a;void 0!==n&&Fe.assertOptions(n,{silentJSONParsing:Le.transitional(Le.boolean),forcedJSONParsing:Le.transitional(Le.boolean),clarifyTimeoutError:Le.transitional(Le.boolean)},!1),null!=r&&(W.isFunction(r)?t.paramsSerializer={serialize:r}:Fe.assertOptions(r,{encode:Le.function,serialize:Le.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase(),a=i&&W.merge(i.common,i[t.method]),a&&W.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete i[e]})),t.headers=ve.concat(a,i);const o=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,o.unshift(e.fulfilled,e.rejected))}));const u=[];let c;this.interceptors.response.forEach((function(e){u.push(e.fulfilled,e.rejected)}));let l,d=0;if(!s){const e=[Ne.bind(this),void 0];for(e.unshift.apply(e,o),e.push.apply(e,u),l=e.length,c=Promise.resolve(t);d<l;)c=c.then(e[d++],e[d++]);return c}l=o.length;let f=t;for(d=0;d<l;){const e=o[d++],t=o[d++];try{f=e(f)}catch(e){t.call(this,e);break}}try{c=Ne.call(this,f)}catch(e){return Promise.reject(e)}for(d=0,l=u.length;d<l;)c=c.then(u[d++],u[d++]);return c}getUri(e){return ae(_e((e=Pe(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}};W.forEach(["delete","get","head","options"],(function(e){Ue.prototype[e]=function(t,n){return this.request(Pe(n||{},{method:e,url:t,data:(n||{}).data}))}})),W.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,i){return this.request(Pe(i||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}Ue.prototype[e]=t(),Ue.prototype[e+"Form"]=t(!0)}));var qe=Ue;var je=class e{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,i){n.reason||(n.reason=new Ae(e,r,i),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let t;return{token:new e((function(e){t=e})),cancel:t}}};const Ge={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ge).forEach((([e,t])=>{Ge[t]=e}));var He=Ge;const ze=function e(t){const n=new qe(t),r=f(qe.prototype.request,n);return W.extend(r,qe.prototype,n,{allOwnKeys:!0}),W.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Pe(t,n))},r}(fe);ze.Axios=qe,ze.CanceledError=Ae,ze.CancelToken=je,ze.isCancel=Te,ze.VERSION=Me,ze.toFormData=ee,ze.AxiosError=K,ze.Cancel=ze.CanceledError,ze.all=function(e){return Promise.all(e)},ze.spread=function(e){return function(t){return e.apply(null,t)}},ze.isAxiosError=function(e){return W.isObject(e)&&!0===e.isAxiosError},ze.mergeConfig=Pe,ze.AxiosHeaders=ve,ze.formToJSON=e=>ce(W.isHTMLForm(e)?new FormData(e):e),ze.HttpStatusCode=He,ze.default=ze;var Ve=ze;const{Axios:We,AxiosError:Ke,CanceledError:Xe,isCancel:Je,CancelToken:Ye,VERSION:Qe,all:$e,Cancel:Ze,isAxiosError:et,spread:tt,toFormData:nt,AxiosHeaders:rt,HttpStatusCode:it,formToJSON:at,mergeConfig:ot}=Ve;var st;!function(e){e.PRODUCTION="production",e.SANDBOX="sandbox"}(st||(st={}));class ut{environment;rateLimitingKey;apiKey;clientAppId;constructor(e){if(this.environment=e.environment,e.rateLimitingKey&&(this.rateLimitingKey=e.rateLimitingKey,Ve.defaults.headers.common["x-api-key"]=this.rateLimitingKey),e.apiKey){if(!e.apiKey.startsWith("sk_imapik-"))throw new Error("Invalid API key");this.apiKey=e.apiKey,Ve.defaults.headers.common["x-immutable-api-key"]=this.apiKey}if(e.clientAppId){if(!e.clientAppId.startsWith("cai_imapik-"))throw new Error("Invalid Client App Id");this.clientAppId=e.clientAppId,Ve.defaults.headers.common["x-immutable-client-app-id"]=this.clientAppId}}}var ct="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function lt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function dt(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var n=function e(){if(this instanceof e){var n=[null];return n.push.apply(n,arguments),new(Function.bind.apply(t,n))}return t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach((function(t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})})),n}var ft={exports:{}},pt="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},ht=[],mt=[],yt="undefined"!=typeof Uint8Array?Uint8Array:Array,gt=!1;function bt(){gt=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0;t<64;++t)ht[t]=e[t],mt[e.charCodeAt(t)]=t;mt["-".charCodeAt(0)]=62,mt["_".charCodeAt(0)]=63}function vt(e,t,n){for(var r,i,a=[],o=t;o<n;o+=3)r=(e[o]<<16)+(e[o+1]<<8)+e[o+2],a.push(ht[(i=r)>>18&63]+ht[i>>12&63]+ht[i>>6&63]+ht[63&i]);return a.join("")}function wt(e){var t;gt||bt();for(var n=e.length,r=n%3,i="",a=[],o=16383,s=0,u=n-r;s<u;s+=o)a.push(vt(e,s,s+o>u?u:s+o));return 1===r?(t=e[n-1],i+=ht[t>>2],i+=ht[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=ht[t>>10],i+=ht[t>>4&63],i+=ht[t<<2&63],i+="="),a.push(i),a.join("")}function Tt(e,t,n,r,i){var a,o,s=8*i-r-1,u=(1<<s)-1,c=u>>1,l=-7,d=n?i-1:0,f=n?-1:1,p=e[t+d];for(d+=f,a=p&(1<<-l)-1,p>>=-l,l+=s;l>0;a=256*a+e[t+d],d+=f,l-=8);for(o=a&(1<<-l)-1,a>>=-l,l+=r;l>0;o=256*o+e[t+d],d+=f,l-=8);if(0===a)a=1-c;else{if(a===u)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,r),a-=c}return(p?-1:1)*o*Math.pow(2,a-r)}function At(e,t,n,r,i,a){var o,s,u,c=8*a-i-1,l=(1<<c)-1,d=l>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:a-1,h=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),(t+=o+d>=1?f/u:f*Math.pow(2,1-d))*u>=2&&(o++,u/=2),o+d>=l?(s=0,o=l):o+d>=1?(s=(t*u-1)*Math.pow(2,i),o+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[n+p]=255&s,p+=h,s/=256,i-=8);for(o=o<<i|s,c+=i;c>0;e[n+p]=255&o,p+=h,o/=256,c-=8);e[n+p-h]|=128*m}var Et={}.toString,_t=Array.isArray||function(e){return"[object Array]"==Et.call(e)};Ot.TYPED_ARRAY_SUPPORT=void 0===pt.TYPED_ARRAY_SUPPORT||pt.TYPED_ARRAY_SUPPORT;var It=Rt();function Rt(){return Ot.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Ct(e,t){if(Rt()<t)throw new RangeError("Invalid typed array length");return Ot.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=Ot.prototype:(null===e&&(e=new Ot(t)),e.length=t),e}function Ot(e,t,n){if(!(Ot.TYPED_ARRAY_SUPPORT||this instanceof Ot))return new Ot(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return Nt(this,e)}return kt(this,e,t,n)}function kt(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r);Ot.TYPED_ARRAY_SUPPORT?(e=t).__proto__=Ot.prototype:e=xt(e,t);return e}(e,t,n,r):"string"==typeof t?function(e,t,n){"string"==typeof n&&""!==n||(n="utf8");if(!Ot.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|Bt(t,n);e=Ct(e,r);var i=e.write(t,n);i!==r&&(e=e.slice(0,i));return e}(e,t,n):function(e,t){if(Mt(t)){var n=0|Pt(t.length);return 0===(e=Ct(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?Ct(e,0):xt(e,t);if("Buffer"===t.type&&_t(t.data))return xt(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function St(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function Nt(e,t){if(St(t),e=Ct(e,t<0?0:0|Pt(t)),!Ot.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function xt(e,t){var n=t.length<0?0:0|Pt(t.length);e=Ct(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function Pt(e){if(e>=Rt())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Rt().toString(16)+" bytes");return 0|e}function Mt(e){return!(null==e||!e._isBuffer)}function Bt(e,t){if(Mt(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return cn(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return ln(e).length;default:if(r)return cn(e).length;t=(""+t).toLowerCase(),r=!0}}function Dt(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return Qt(this,t,n);case"utf8":case"utf-8":return Kt(this,t,n);case"ascii":return Jt(this,t,n);case"latin1":case"binary":return Yt(this,t,n);case"base64":return Wt(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return $t(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function Ft(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function Lt(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=Ot.from(t,r)),Mt(t))return 0===t.length?-1:Ut(e,t,n,r,i);if("number"==typeof t)return t&=255,Ot.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):Ut(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function Ut(e,t,n,r,i){var a,o=1,s=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,u/=2,n/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var l=-1;for(a=n;a<s;a++)if(c(e,a)===c(t,-1===l?0:a-l)){if(-1===l&&(l=a),a-l+1===u)return l*o}else-1!==l&&(a-=a-l),l=-1}else for(n+u>s&&(n=s-u),a=n;a>=0;a--){for(var d=!0,f=0;f<u;f++)if(c(e,a+f)!==c(t,f)){d=!1;break}if(d)return a}return-1}function qt(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var o=0;o<r;++o){var s=parseInt(t.substr(2*o,2),16);if(isNaN(s))return o;e[n+o]=s}return o}function jt(e,t,n,r){return dn(cn(t,e.length-n),e,n,r)}function Gt(e,t,n,r){return dn(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function Ht(e,t,n,r){return Gt(e,t,n,r)}function zt(e,t,n,r){return dn(ln(t),e,n,r)}function Vt(e,t,n,r){return dn(function(e,t){for(var n,r,i,a=[],o=0;o<e.length&&!((t-=2)<0);++o)r=(n=e.charCodeAt(o))>>8,i=n%256,a.push(i),a.push(r);return a}(t,e.length-n),e,n,r)}function Wt(e,t,n){return 0===t&&n===e.length?wt(e):wt(e.slice(t,n))}function Kt(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var a,o,s,u,c=e[i],l=null,d=c>239?4:c>223?3:c>191?2:1;if(i+d<=n)switch(d){case 1:c<128&&(l=c);break;case 2:128==(192&(a=e[i+1]))&&(u=(31&c)<<6|63&a)>127&&(l=u);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(u=(15&c)<<12|(63&a)<<6|63&o)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(u=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,d=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),i+=d}return function(e){var t=e.length;if(t<=Xt)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=Xt));return n}(r)}Ot.poolSize=8192,Ot._augment=function(e){return e.__proto__=Ot.prototype,e},Ot.from=function(e,t,n){return kt(null,e,t,n)},Ot.TYPED_ARRAY_SUPPORT&&(Ot.prototype.__proto__=Uint8Array.prototype,Ot.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&Ot[Symbol.species]),Ot.alloc=function(e,t,n){return function(e,t,n,r){return St(t),t<=0?Ct(e,t):void 0!==n?"string"==typeof r?Ct(e,t).fill(n,r):Ct(e,t).fill(n):Ct(e,t)}(null,e,t,n)},Ot.allocUnsafe=function(e){return Nt(null,e)},Ot.allocUnsafeSlow=function(e){return Nt(null,e)},Ot.isBuffer=fn,Ot.compare=function(e,t){if(!Mt(e)||!Mt(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},Ot.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Ot.concat=function(e,t){if(!_t(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return Ot.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=Ot.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var a=e[n];if(!Mt(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,i),i+=a.length}return r},Ot.byteLength=Bt,Ot.prototype._isBuffer=!0,Ot.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)Ft(this,t,t+1);return this},Ot.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)Ft(this,t,t+3),Ft(this,t+1,t+2);return this},Ot.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)Ft(this,t,t+7),Ft(this,t+1,t+6),Ft(this,t+2,t+5),Ft(this,t+3,t+4);return this},Ot.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?Kt(this,0,e):Dt.apply(this,arguments)},Ot.prototype.equals=function(e){if(!Mt(e))throw new TypeError("Argument must be a Buffer");return this===e||0===Ot.compare(this,e)},Ot.prototype.inspect=function(){var e="";return this.length>0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),"<Buffer "+e+">"},Ot.prototype.compare=function(e,t,n,r,i){if(!Mt(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),s=Math.min(a,o),u=this.slice(r,i),c=e.slice(t,n),l=0;l<s;++l)if(u[l]!==c[l]){a=u[l],o=c[l];break}return a<o?-1:o<a?1:0},Ot.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},Ot.prototype.indexOf=function(e,t,n){return Lt(this,e,t,n,!0)},Ot.prototype.lastIndexOf=function(e,t,n){return Lt(this,e,t,n,!1)},Ot.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return qt(this,e,t,n);case"utf8":case"utf-8":return jt(this,e,t,n);case"ascii":return Gt(this,e,t,n);case"latin1":case"binary":return Ht(this,e,t,n);case"base64":return zt(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Vt(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},Ot.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Xt=4096;function Jt(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function Yt(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function Qt(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",a=t;a<n;++a)i+=un(e[a]);return i}function $t(e,t,n){for(var r=e.slice(t,n),i="",a=0;a<r.length;a+=2)i+=String.fromCharCode(r[a]+256*r[a+1]);return i}function Zt(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function en(e,t,n,r,i,a){if(!Mt(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function tn(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-n,2);i<a;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function nn(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-n,4);i<a;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function rn(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function an(e,t,n,r,i){return i||rn(e,0,n,4),At(e,t,n,r,23,4),n+4}function on(e,t,n,r,i){return i||rn(e,0,n,8),At(e,t,n,r,52,8),n+8}Ot.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),Ot.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=Ot.prototype;else{var i=t-e;n=new Ot(i,void 0);for(var a=0;a<i;++a)n[a]=this[a+e]}return n},Ot.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||Zt(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r},Ot.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||Zt(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},Ot.prototype.readUInt8=function(e,t){return t||Zt(e,1,this.length),this[e]},Ot.prototype.readUInt16LE=function(e,t){return t||Zt(e,2,this.length),this[e]|this[e+1]<<8},Ot.prototype.readUInt16BE=function(e,t){return t||Zt(e,2,this.length),this[e]<<8|this[e+1]},Ot.prototype.readUInt32LE=function(e,t){return t||Zt(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},Ot.prototype.readUInt32BE=function(e,t){return t||Zt(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},Ot.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||Zt(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*t)),r},Ot.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||Zt(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},Ot.prototype.readInt8=function(e,t){return t||Zt(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},Ot.prototype.readInt16LE=function(e,t){t||Zt(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},Ot.prototype.readInt16BE=function(e,t){t||Zt(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},Ot.prototype.readInt32LE=function(e,t){return t||Zt(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},Ot.prototype.readInt32BE=function(e,t){return t||Zt(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},Ot.prototype.readFloatLE=function(e,t){return t||Zt(e,4,this.length),Tt(this,e,!0,23,4)},Ot.prototype.readFloatBE=function(e,t){return t||Zt(e,4,this.length),Tt(this,e,!1,23,4)},Ot.prototype.readDoubleLE=function(e,t){return t||Zt(e,8,this.length),Tt(this,e,!0,52,8)},Ot.prototype.readDoubleBE=function(e,t){return t||Zt(e,8,this.length),Tt(this,e,!1,52,8)},Ot.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||en(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,a=0;for(this[t]=255&e;++a<n&&(i*=256);)this[t+a]=e/i&255;return t+n},Ot.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||en(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+n},Ot.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||en(this,e,t,1,255,0),Ot.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},Ot.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||en(this,e,t,2,65535,0),Ot.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):tn(this,e,t,!0),t+2},Ot.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||en(this,e,t,2,65535,0),Ot.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):tn(this,e,t,!1),t+2},Ot.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||en(this,e,t,4,4294967295,0),Ot.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):nn(this,e,t,!0),t+4},Ot.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||en(this,e,t,4,4294967295,0),Ot.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):nn(this,e,t,!1),t+4},Ot.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);en(this,e,t,n,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a<n&&(o*=256);)e<0&&0===s&&0!==this[t+a-1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+n},Ot.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);en(this,e,t,n,i-1,-i)}var a=n-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+n},Ot.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||en(this,e,t,1,127,-128),Ot.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},Ot.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||en(this,e,t,2,32767,-32768),Ot.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):tn(this,e,t,!0),t+2},Ot.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||en(this,e,t,2,32767,-32768),Ot.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):tn(this,e,t,!1),t+2},Ot.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||en(this,e,t,4,2147483647,-2147483648),Ot.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):nn(this,e,t,!0),t+4},Ot.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||en(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),Ot.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):nn(this,e,t,!1),t+4},Ot.prototype.writeFloatLE=function(e,t,n){return an(this,e,t,!0,n)},Ot.prototype.writeFloatBE=function(e,t,n){return an(this,e,t,!1,n)},Ot.prototype.writeDoubleLE=function(e,t,n){return on(this,e,t,!0,n)},Ot.prototype.writeDoubleBE=function(e,t,n){return on(this,e,t,!1,n)},Ot.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,a=r-n;if(this===e&&n<t&&t<r)for(i=a-1;i>=0;--i)e[i+t]=this[i+n];else if(a<1e3||!Ot.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+a),t);return a},Ot.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!Ot.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var a;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(a=t;a<n;++a)this[a]=e;else{var o=Mt(e)?e:cn(new Ot(e,r).toString()),s=o.length;for(a=0;a<n-t;++a)this[a+t]=o[a%s]}return this};var sn=/[^+\/0-9A-Za-z-_]/g;function un(e){return e<16?"0"+e.toString(16):e.toString(16)}function cn(e,t){var n;t=t||1/0;for(var r=e.length,i=null,a=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function ln(e){return function(e){var t,n,r,i,a,o;gt||bt();var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");a="="===e[s-2]?2:"="===e[s-1]?1:0,o=new yt(3*s/4-a),r=a>0?s-4:s;var u=0;for(t=0,n=0;t<r;t+=4,n+=3)i=mt[e.charCodeAt(t)]<<18|mt[e.charCodeAt(t+1)]<<12|mt[e.charCodeAt(t+2)]<<6|mt[e.charCodeAt(t+3)],o[u++]=i>>16&255,o[u++]=i>>8&255,o[u++]=255&i;return 2===a?(i=mt[e.charCodeAt(t)]<<2|mt[e.charCodeAt(t+1)]>>4,o[u++]=255&i):1===a&&(i=mt[e.charCodeAt(t)]<<10|mt[e.charCodeAt(t+1)]<<4|mt[e.charCodeAt(t+2)]>>2,o[u++]=i>>8&255,o[u++]=255&i),o}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(sn,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function dn(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function fn(e){return null!=e&&(!!e._isBuffer||pn(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&pn(e.slice(0,0))}(e))}function pn(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}var hn=dt(Object.freeze({__proto__:null,Buffer:Ot,INSPECT_MAX_BYTES:50,SlowBuffer:function(e){return+e!=e&&(e=0),Ot.alloc(+e)},isBuffer:fn,kMaxLength:It}));!function(e){!function(e,t){function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function r(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var a;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:hn.Buffer}catch(e){}function o(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,"Invalid character in "+e)}function s(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function u(e,t,r,i){for(var a=0,o=0,s=Math.min(e.length,r),u=t;u<s;u++){var c=e.charCodeAt(u)-48;a*=i,o=c>=49?c-49+10:c>=17?c-17+10:c,n(c>=0&&o<i,"Invalid character"),a+=o}return a}function c(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,r):(this._parseBase(e,t,i),"le"===r&&this._initArray(this.toArray(),t,r)))},i.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},i.prototype._initArray=function(e,t,r){if(n("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var a,o,s=0;if("be"===r)for(i=e.length-1,a=0;i>=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(i=0,a=0;i<e.length;i+=3)o=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this._strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,a=0,o=0;if("be"===n)for(r=e.length-1;r>=t;r-=2)i=s(e,t,r)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)i=s(e,t,r)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;this._strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,o=a%r,s=Math.min(a,a-o)+n,c=0,l=n;l<s;l+=r)c=u(e,l,l+r,t),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==o){var d=1;for(c=u(e,l,e.length,t),l=0;l<o;l++)d*=t;this.imuln(d),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){c(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){i.prototype.inspect=l}else i.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,a=0,o=0;o<this.length;o++){var s=this.words[o],u=(16777215&(s<<i|a)).toString(16);a=s>>>24-i&16777215,(i+=2)>=26&&(i-=26,o--),r=0!==a||o!==this.length-1?d[6-u.length]+u+r:u+r}for(0!==a&&(r=a.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=f[e],l=p[e];r="";var h=this.clone();for(h.negative=0;!h.isZero();){var m=h.modrn(l).toString(e);r=(h=h.idivn(l)).isZero()?m+r:d[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},a&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(a,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function h(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],o=i*a,s=67108863&o,u=o/67108864|0;n.words[0]=s;for(var c=1;c<r;c++){for(var l=u>>>26,d=67108863&u,f=Math.min(c,t.length-1),p=Math.max(0,c-e.length+1);p<=f;p++){var h=c-p|0;l+=(o=(i=0|e.words[h])*(a=0|t.words[p])+d)/67108864|0,d=67108863&o}n.words[c]=0|d,u=0|l}return 0!==u?n.words[c]=0|u:n.length--,n._strip()}i.prototype.toArrayLike=function(e,t,r){this._strip();var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,"byte array longer than desired length"),n(a>0,"Requested array length <= 0");var o=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,a);return this["_toArrayLike"+("le"===t?"LE":"BE")](o,i),o},i.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,a=0;i<this.length;i++){var o=this.words[i]<<a|r;e[n++]=255&o,n<e.length&&(e[n++]=o>>8&255),n<e.length&&(e[n++]=o>>16&255),6===a?(n<e.length&&(e[n++]=o>>24&255),r=0,a=0):(r=o>>>24,a+=2)}if(n<e.length)for(e[n++]=r;n<e.length;)e[n++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var n=e.length-1,r=0,i=0,a=0;i<this.length;i++){var o=this.words[i]<<a|r;e[n--]=255&o,n>=0&&(e[n--]=o>>8&255),n>=0&&(e[n--]=o>>16&255),6===a?(n>=0&&(e[n--]=o>>24&255),r=0,a=0):(r=o>>>24,a+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?i.prototype._countBits=function(e){return 32-Math.clz32(e)}:i.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return n(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return n(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return n(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<i:this.words[r]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a<r.length;a++)t=(0|n.words[a])+(0|r.words[a])+i,this.words[a]=67108863&t,i=t>>>26;for(;0!==i&&a<n.length;a++)t=(0|n.words[a])+i,this.words[a]=67108863&t,i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;a<n.length;a++)this.words[a]=n.words[a];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,o=0;o<r.length;o++)a=(t=(0|n.words[o])-(0|r.words[o])+a)>>26,this.words[o]=67108863&t;for(;0!==a&&o<n.length;o++)a=(t=(0|n.words[o])+a)>>26,this.words[o]=67108863&t;if(0===a&&o<n.length&&n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this.length=Math.max(this.length,o),n!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,n){var r,i,a,o=e.words,s=t.words,u=n.words,c=0,l=0|o[0],d=8191&l,f=l>>>13,p=0|o[1],h=8191&p,m=p>>>13,y=0|o[2],g=8191&y,b=y>>>13,v=0|o[3],w=8191&v,T=v>>>13,A=0|o[4],E=8191&A,_=A>>>13,I=0|o[5],R=8191&I,C=I>>>13,O=0|o[6],k=8191&O,S=O>>>13,N=0|o[7],x=8191&N,P=N>>>13,M=0|o[8],B=8191&M,D=M>>>13,F=0|o[9],L=8191&F,U=F>>>13,q=0|s[0],j=8191&q,G=q>>>13,H=0|s[1],z=8191&H,V=H>>>13,W=0|s[2],K=8191&W,X=W>>>13,J=0|s[3],Y=8191&J,Q=J>>>13,$=0|s[4],Z=8191&$,ee=$>>>13,te=0|s[5],ne=8191&te,re=te>>>13,ie=0|s[6],ae=8191&ie,oe=ie>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,pe=0|s[9],he=8191&pe,me=pe>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(c+(r=Math.imul(d,j))|0)+((8191&(i=(i=Math.imul(d,G))+Math.imul(f,j)|0))<<13)|0;c=((a=Math.imul(f,G))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(h,j),i=(i=Math.imul(h,G))+Math.imul(m,j)|0,a=Math.imul(m,G);var ge=(c+(r=r+Math.imul(d,z)|0)|0)+((8191&(i=(i=i+Math.imul(d,V)|0)+Math.imul(f,z)|0))<<13)|0;c=((a=a+Math.imul(f,V)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(g,j),i=(i=Math.imul(g,G))+Math.imul(b,j)|0,a=Math.imul(b,G),r=r+Math.imul(h,z)|0,i=(i=i+Math.imul(h,V)|0)+Math.imul(m,z)|0,a=a+Math.imul(m,V)|0;var be=(c+(r=r+Math.imul(d,K)|0)|0)+((8191&(i=(i=i+Math.imul(d,X)|0)+Math.imul(f,K)|0))<<13)|0;c=((a=a+Math.imul(f,X)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(w,j),i=(i=Math.imul(w,G))+Math.imul(T,j)|0,a=Math.imul(T,G),r=r+Math.imul(g,z)|0,i=(i=i+Math.imul(g,V)|0)+Math.imul(b,z)|0,a=a+Math.imul(b,V)|0,r=r+Math.imul(h,K)|0,i=(i=i+Math.imul(h,X)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,X)|0;var ve=(c+(r=r+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,Q)|0)+Math.imul(f,Y)|0))<<13)|0;c=((a=a+Math.imul(f,Q)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,j),i=(i=Math.imul(E,G))+Math.imul(_,j)|0,a=Math.imul(_,G),r=r+Math.imul(w,z)|0,i=(i=i+Math.imul(w,V)|0)+Math.imul(T,z)|0,a=a+Math.imul(T,V)|0,r=r+Math.imul(g,K)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,K)|0,a=a+Math.imul(b,X)|0,r=r+Math.imul(h,Y)|0,i=(i=i+Math.imul(h,Q)|0)+Math.imul(m,Y)|0,a=a+Math.imul(m,Q)|0;var we=(c+(r=r+Math.imul(d,Z)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;c=((a=a+Math.imul(f,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(R,j),i=(i=Math.imul(R,G))+Math.imul(C,j)|0,a=Math.imul(C,G),r=r+Math.imul(E,z)|0,i=(i=i+Math.imul(E,V)|0)+Math.imul(_,z)|0,a=a+Math.imul(_,V)|0,r=r+Math.imul(w,K)|0,i=(i=i+Math.imul(w,X)|0)+Math.imul(T,K)|0,a=a+Math.imul(T,X)|0,r=r+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,Q)|0)+Math.imul(b,Y)|0,a=a+Math.imul(b,Q)|0,r=r+Math.imul(h,Z)|0,i=(i=i+Math.imul(h,ee)|0)+Math.imul(m,Z)|0,a=a+Math.imul(m,ee)|0;var Te=(c+(r=r+Math.imul(d,ne)|0)|0)+((8191&(i=(i=i+Math.imul(d,re)|0)+Math.imul(f,ne)|0))<<13)|0;c=((a=a+Math.imul(f,re)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(k,j),i=(i=Math.imul(k,G))+Math.imul(S,j)|0,a=Math.imul(S,G),r=r+Math.imul(R,z)|0,i=(i=i+Math.imul(R,V)|0)+Math.imul(C,z)|0,a=a+Math.imul(C,V)|0,r=r+Math.imul(E,K)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(_,K)|0,a=a+Math.imul(_,X)|0,r=r+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,Q)|0)+Math.imul(T,Y)|0,a=a+Math.imul(T,Q)|0,r=r+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,a=a+Math.imul(b,ee)|0,r=r+Math.imul(h,ne)|0,i=(i=i+Math.imul(h,re)|0)+Math.imul(m,ne)|0,a=a+Math.imul(m,re)|0;var Ae=(c+(r=r+Math.imul(d,ae)|0)|0)+((8191&(i=(i=i+Math.imul(d,oe)|0)+Math.imul(f,ae)|0))<<13)|0;c=((a=a+Math.imul(f,oe)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(x,j),i=(i=Math.imul(x,G))+Math.imul(P,j)|0,a=Math.imul(P,G),r=r+Math.imul(k,z)|0,i=(i=i+Math.imul(k,V)|0)+Math.imul(S,z)|0,a=a+Math.imul(S,V)|0,r=r+Math.imul(R,K)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(C,K)|0,a=a+Math.imul(C,X)|0,r=r+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,Q)|0)+Math.imul(_,Y)|0,a=a+Math.imul(_,Q)|0,r=r+Math.imul(w,Z)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(T,Z)|0,a=a+Math.imul(T,ee)|0,r=r+Math.imul(g,ne)|0,i=(i=i+Math.imul(g,re)|0)+Math.imul(b,ne)|0,a=a+Math.imul(b,re)|0,r=r+Math.imul(h,ae)|0,i=(i=i+Math.imul(h,oe)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,oe)|0;var Ee=(c+(r=r+Math.imul(d,ue)|0)|0)+((8191&(i=(i=i+Math.imul(d,ce)|0)+Math.imul(f,ue)|0))<<13)|0;c=((a=a+Math.imul(f,ce)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,j),i=(i=Math.imul(B,G))+Math.imul(D,j)|0,a=Math.imul(D,G),r=r+Math.imul(x,z)|0,i=(i=i+Math.imul(x,V)|0)+Math.imul(P,z)|0,a=a+Math.imul(P,V)|0,r=r+Math.imul(k,K)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(S,K)|0,a=a+Math.imul(S,X)|0,r=r+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,Q)|0)+Math.imul(C,Y)|0,a=a+Math.imul(C,Q)|0,r=r+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(_,Z)|0,a=a+Math.imul(_,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(T,ne)|0,a=a+Math.imul(T,re)|0,r=r+Math.imul(g,ae)|0,i=(i=i+Math.imul(g,oe)|0)+Math.imul(b,ae)|0,a=a+Math.imul(b,oe)|0,r=r+Math.imul(h,ue)|0,i=(i=i+Math.imul(h,ce)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,ce)|0;var _e=(c+(r=r+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;c=((a=a+Math.imul(f,fe)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(L,j),i=(i=Math.imul(L,G))+Math.imul(U,j)|0,a=Math.imul(U,G),r=r+Math.imul(B,z)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(D,z)|0,a=a+Math.imul(D,V)|0,r=r+Math.imul(x,K)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(P,K)|0,a=a+Math.imul(P,X)|0,r=r+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,Q)|0)+Math.imul(S,Y)|0,a=a+Math.imul(S,Q)|0,r=r+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(C,Z)|0,a=a+Math.imul(C,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(_,ne)|0,a=a+Math.imul(_,re)|0,r=r+Math.imul(w,ae)|0,i=(i=i+Math.imul(w,oe)|0)+Math.imul(T,ae)|0,a=a+Math.imul(T,oe)|0,r=r+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,ce)|0)+Math.imul(b,ue)|0,a=a+Math.imul(b,ce)|0,r=r+Math.imul(h,de)|0,i=(i=i+Math.imul(h,fe)|0)+Math.imul(m,de)|0,a=a+Math.imul(m,fe)|0;var Ie=(c+(r=r+Math.imul(d,he)|0)|0)+((8191&(i=(i=i+Math.imul(d,me)|0)+Math.imul(f,he)|0))<<13)|0;c=((a=a+Math.imul(f,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,z),i=(i=Math.imul(L,V))+Math.imul(U,z)|0,a=Math.imul(U,V),r=r+Math.imul(B,K)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,K)|0,a=a+Math.imul(D,X)|0,r=r+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,Q)|0)+Math.imul(P,Y)|0,a=a+Math.imul(P,Q)|0,r=r+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(S,Z)|0,a=a+Math.imul(S,ee)|0,r=r+Math.imul(R,ne)|0,i=(i=i+Math.imul(R,re)|0)+Math.imul(C,ne)|0,a=a+Math.imul(C,re)|0,r=r+Math.imul(E,ae)|0,i=(i=i+Math.imul(E,oe)|0)+Math.imul(_,ae)|0,a=a+Math.imul(_,oe)|0,r=r+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,ce)|0)+Math.imul(T,ue)|0,a=a+Math.imul(T,ce)|0,r=r+Math.imul(g,de)|0,i=(i=i+Math.imul(g,fe)|0)+Math.imul(b,de)|0,a=a+Math.imul(b,fe)|0;var Re=(c+(r=r+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,me)|0)+Math.imul(m,he)|0))<<13)|0;c=((a=a+Math.imul(m,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(L,K),i=(i=Math.imul(L,X))+Math.imul(U,K)|0,a=Math.imul(U,X),r=r+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,Q)|0)+Math.imul(D,Y)|0,a=a+Math.imul(D,Q)|0,r=r+Math.imul(x,Z)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(P,Z)|0,a=a+Math.imul(P,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(S,ne)|0,a=a+Math.imul(S,re)|0,r=r+Math.imul(R,ae)|0,i=(i=i+Math.imul(R,oe)|0)+Math.imul(C,ae)|0,a=a+Math.imul(C,oe)|0,r=r+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,ce)|0)+Math.imul(_,ue)|0,a=a+Math.imul(_,ce)|0,r=r+Math.imul(w,de)|0,i=(i=i+Math.imul(w,fe)|0)+Math.imul(T,de)|0,a=a+Math.imul(T,fe)|0;var Ce=(c+(r=r+Math.imul(g,he)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,he)|0))<<13)|0;c=((a=a+Math.imul(b,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(L,Y),i=(i=Math.imul(L,Q))+Math.imul(U,Y)|0,a=Math.imul(U,Q),r=r+Math.imul(B,Z)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,a=a+Math.imul(D,ee)|0,r=r+Math.imul(x,ne)|0,i=(i=i+Math.imul(x,re)|0)+Math.imul(P,ne)|0,a=a+Math.imul(P,re)|0,r=r+Math.imul(k,ae)|0,i=(i=i+Math.imul(k,oe)|0)+Math.imul(S,ae)|0,a=a+Math.imul(S,oe)|0,r=r+Math.imul(R,ue)|0,i=(i=i+Math.imul(R,ce)|0)+Math.imul(C,ue)|0,a=a+Math.imul(C,ce)|0,r=r+Math.imul(E,de)|0,i=(i=i+Math.imul(E,fe)|0)+Math.imul(_,de)|0,a=a+Math.imul(_,fe)|0;var Oe=(c+(r=r+Math.imul(w,he)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(T,he)|0))<<13)|0;c=((a=a+Math.imul(T,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(L,Z),i=(i=Math.imul(L,ee))+Math.imul(U,Z)|0,a=Math.imul(U,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(D,ne)|0,a=a+Math.imul(D,re)|0,r=r+Math.imul(x,ae)|0,i=(i=i+Math.imul(x,oe)|0)+Math.imul(P,ae)|0,a=a+Math.imul(P,oe)|0,r=r+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,ce)|0)+Math.imul(S,ue)|0,a=a+Math.imul(S,ce)|0,r=r+Math.imul(R,de)|0,i=(i=i+Math.imul(R,fe)|0)+Math.imul(C,de)|0,a=a+Math.imul(C,fe)|0;var ke=(c+(r=r+Math.imul(E,he)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(_,he)|0))<<13)|0;c=((a=a+Math.imul(_,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(L,ne),i=(i=Math.imul(L,re))+Math.imul(U,ne)|0,a=Math.imul(U,re),r=r+Math.imul(B,ae)|0,i=(i=i+Math.imul(B,oe)|0)+Math.imul(D,ae)|0,a=a+Math.imul(D,oe)|0,r=r+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,ce)|0)+Math.imul(P,ue)|0,a=a+Math.imul(P,ce)|0,r=r+Math.imul(k,de)|0,i=(i=i+Math.imul(k,fe)|0)+Math.imul(S,de)|0,a=a+Math.imul(S,fe)|0;var Se=(c+(r=r+Math.imul(R,he)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(C,he)|0))<<13)|0;c=((a=a+Math.imul(C,me)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(L,ae),i=(i=Math.imul(L,oe))+Math.imul(U,ae)|0,a=Math.imul(U,oe),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(D,ue)|0,a=a+Math.imul(D,ce)|0,r=r+Math.imul(x,de)|0,i=(i=i+Math.imul(x,fe)|0)+Math.imul(P,de)|0,a=a+Math.imul(P,fe)|0;var Ne=(c+(r=r+Math.imul(k,he)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(S,he)|0))<<13)|0;c=((a=a+Math.imul(S,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(L,ue),i=(i=Math.imul(L,ce))+Math.imul(U,ue)|0,a=Math.imul(U,ce),r=r+Math.imul(B,de)|0,i=(i=i+Math.imul(B,fe)|0)+Math.imul(D,de)|0,a=a+Math.imul(D,fe)|0;var xe=(c+(r=r+Math.imul(x,he)|0)|0)+((8191&(i=(i=i+Math.imul(x,me)|0)+Math.imul(P,he)|0))<<13)|0;c=((a=a+Math.imul(P,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(L,de),i=(i=Math.imul(L,fe))+Math.imul(U,de)|0,a=Math.imul(U,fe);var Pe=(c+(r=r+Math.imul(B,he)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,he)|0))<<13)|0;c=((a=a+Math.imul(D,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(c+(r=Math.imul(L,he))|0)+((8191&(i=(i=Math.imul(L,me))+Math.imul(U,he)|0))<<13)|0;return c=((a=Math.imul(U,me))+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=we,u[5]=Te,u[6]=Ae,u[7]=Ee,u[8]=_e,u[9]=Ie,u[10]=Re,u[11]=Ce,u[12]=Oe,u[13]=ke,u[14]=Se,u[15]=Ne,u[16]=xe,u[17]=Pe,u[18]=Me,0!==c&&(u[19]=c,n.length++),n};function y(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a<n.length-1;a++){var o=i;i=0;for(var s=67108863&r,u=Math.min(a,t.length-1),c=Math.max(0,a-e.length+1);c<=u;c++){var l=a-c,d=(0|e.words[l])*(0|t.words[c]),f=67108863&d;s=67108863&(f=f+s|0),i+=(o=(o=o+(d/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}n.words[a]=s,r=o,o=i}return 0!==r?n.words[a]=r:n.length--,n._strip()}function g(e,t,n){return y(e,t,n)}Math.imul||(m=h),i.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):n<63?h(this,e,t):n<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),n("number"==typeof e),n(e<67108864);for(var r=0,i=0;i<this.length;i++){var a=(0|this.words[i])*e,o=(67108863&a)+(67108863&r);r>>=26,r+=a/67108864|0,r+=o>>>26,this.words[i]=67108863&o}return 0!==r&&(this.words[i]=r,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++){var r=n/26|0,i=n%26;t[n]=e.words[r]>>>i&1}return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var a=n.sqr();r<t.length;r++,a=a.sqr())0!==t[r]&&(n=n.mul(a));return n},i.prototype.iushln=function(e){n("number"==typeof e&&e>=0);var t,r=e%26,i=(e-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t<this.length;t++){var s=this.words[t]&a,u=(0|this.words[t])-s<<r;this.words[t]=u|o,o=s>>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return n(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,r){var i;n("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var a=e%26,o=Math.min((e-a)/26,this.length),s=67108863^67108863>>>a<<a,u=r;if(i-=o,i=Math.max(0,i),u){for(var c=0;c<o;c++)u.words[c]=this.words[c];u.length=o}if(0===o);else if(this.length>o)for(this.length-=o,c=0;c<this.length;c++)this.words[c]=this.words[c+o];else this.words[0]=0,this.length=1;var l=0;for(c=this.length-1;c>=0&&(0!==l||c>=i);c--){var d=0|this.words[c];this.words[c]=l<<26-a|d>>>a,l=d&s}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,i=1<<t;return!(this.length<=r)&&!!(this.words[r]&i)},i.prototype.imaskn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this._strip()},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return n("number"==typeof e),n(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,r){var i,a,o=e.length+r;this._expand(o);var s=0;for(i=0;i<e.length;i++){a=(0|this.words[i+r])+s;var u=(0|e.words[i])*t;s=((a-=67108863&u)>>26)-(u/67108864|0),this.words[i+r]=67108863&a}for(;i<this.length-r;i++)s=(a=(0|this.words[i+r])+s)>>26,this.words[i+r]=67108863&a;if(0===s)return this._strip();for(n(-1===s),s=0,i=0;i<this.length;i++)s=(a=-(0|this.words[i])+s)>>26,this.words[i]=67108863&a;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),a=e,o=0|a.words[a.length-1];0!==(n=26-this._countBits(o))&&(a=a.ushln(n),r.iushln(n),o=0|a.words[a.length-1]);var s,u=r.length-a.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var l=r.clone()._ishlnsubmul(a,1,u);0===l.negative&&(r=l,s&&(s.words[u]=1));for(var d=u-1;d>=0;d--){var f=67108864*(0|r.words[a.length+d])+(0|r.words[a.length+d-1]);for(f=Math.min(f/o|0,67108863),r._ishlnsubmul(a,f,d);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(a,1,d),r.isZero()||(r.negative^=1);s&&(s.words[d]=f)}return s&&s._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:s||null,mod:r}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(a=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:a,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(a=s.div.neg()),{div:a,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var a,o,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=(1<<26)%e,i=0,a=this.length-1;a>=0;a--)i=(r*i+(0|this.words[a]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var a=(0|this.words[i])+67108864*r;this.words[i]=a/e|0,r=a%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a=new i(1),o=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var l=r.clone(),d=t.clone();!t.isZero();){for(var f=0,p=1;0==(t.words[0]&p)&&f<26;++f,p<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(a.isOdd()||o.isOdd())&&(a.iadd(l),o.isub(d)),a.iushrn(1),o.iushrn(1);for(var h=0,m=1;0==(r.words[0]&m)&&h<26;++h,m<<=1);if(h>0)for(r.iushrn(h);h-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(l),u.isub(d)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s),o.isub(u)):(r.isub(t),s.isub(a),u.isub(o))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a,o=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,l=1;0==(t.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(t.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var d=0,f=1;0==(r.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(r.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(a=0===t.cmpn(1)?o:s).cmpn(0)<0&&a.iadd(e),a},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var a=i,o=r;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new _(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function T(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function A(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function _(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){_.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},r(w,v),w.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var a=e.words[9];for(t.words[t.length++]=a&n,i=10;i<e.length;i++){var o=0|e.words[i];e.words[i-10]=(o&n)<<4|a>>>22,a=o}a>>>=22,e.words[i-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},w.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];t+=977*r,e.words[n]=67108863&t,t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},r(T,v),r(A,v),r(E,v),E.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new w;else if("p224"===e)t=new T;else if("p192"===e)t=new A;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},_.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},_.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},_.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(c(e,e.umod(this.m)._forceRed(this)),e)},_.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},_.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},_.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},_.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},_.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},_.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},_.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},_.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},_.prototype.isqr=function(e){return this.imul(e,e.clone())},_.prototype.sqr=function(e){return this.mul(e,e)},_.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var a=this.m.subn(1),o=0;!a.isZero()&&0===a.andln(1);)o++,a.iushrn(1);n(!a.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new i(2*l*l).toRed(this);0!==this.pow(l,c).cmp(u);)l.redIAdd(u);for(var d=this.pow(l,a),f=this.pow(e,a.addn(1).iushrn(1)),p=this.pow(e,a),h=o;0!==p.cmp(s);){for(var m=p,y=0;0!==m.cmp(s);y++)m=m.redSqr();n(y<h);var g=this.pow(d,new i(1).iushln(h-y-1));f=f.redMul(g),d=g.redSqr(),p=p.redMul(d),h=y}return f},_.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},_.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new i(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var a=n[0],o=0,s=0,u=t.bitLength()%26;for(0===u&&(u=26),r=t.length-1;r>=0;r--){for(var c=t.words[r],l=u-1;l>=0;l--){var d=c>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==d||0!==o?(o<<=1,o|=d,(4===++s||0===r&&0===l)&&(a=this.mul(a,n[o]),s=0,o=0)):s=0}u=26}return a},_.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},_.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new I(e)},r(I,_),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=n.isub(r).iushrn(this.shift),o=a;return a.cmp(this.m)>=0?o=a.isub(this.m):a.cmpn(0)<0&&(o=a.iadd(this.m)),o._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,ct)}(ft);var mn=lt(ft.exports);let yn=!1,gn=!1;const bn={debug:1,default:2,info:2,warning:3,error:4,off:5};let vn=bn.default,wn=null;const Tn=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(n){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var An,En;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(An||(An={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(En||(En={}));const _n="0123456789abcdef";let In=class e{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const n=e.toLowerCase();null==bn[n]&&this.throwArgumentError("invalid log level name","logLevel",e),vn>bn[n]||console.log.apply(console,t)}debug(...t){this._log(e.levels.DEBUG,t)}info(...t){this._log(e.levels.INFO,t)}warn(...t){this._log(e.levels.WARNING,t)}makeError(t,n,r){if(gn)return this.makeError("censored error",n,{});n||(n=e.errors.UNKNOWN_ERROR),r||(r={});const i=[];Object.keys(r).forEach((e=>{const t=r[e];try{if(t instanceof Uint8Array){let n="";for(let e=0;e<t.length;e++)n+=_n[t[e]>>4],n+=_n[15&t[e]];i.push(e+"=Uint8Array(0x"+n+")")}else i.push(e+"="+JSON.stringify(t))}catch(t){i.push(e+"="+JSON.stringify(r[e].toString()))}})),i.push(`code=${n}`),i.push(`version=${this.version}`);const a=t;let o="";switch(n){case En.NUMERIC_FAULT:{o="NUMERIC_FAULT";const e=t;switch(e){case"overflow":case"underflow":case"division-by-zero":o+="-"+e;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case En.CALL_EXCEPTION:case En.INSUFFICIENT_FUNDS:case En.MISSING_NEW:case En.NONCE_EXPIRED:case En.REPLACEMENT_UNDERPRICED:case En.TRANSACTION_REPLACED:case En.UNPREDICTABLE_GAS_LIMIT:o=n}o&&(t+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),i.length&&(t+=" ("+i.join(", ")+")");const s=new Error(t);return s.reason=a,s.code=n,Object.keys(r).forEach((function(e){s[e]=r[e]})),s}throwError(e,t,n){throw this.makeError(e,t,n)}throwArgumentError(t,n,r){return this.throwError(t,e.errors.INVALID_ARGUMENT,{argument:n,value:r})}assert(e,t,n,r){e||this.throwError(t,n,r)}assertArgument(e,t,n,r){e||this.throwArgumentError(t,n,r)}checkNormalize(t){Tn&&this.throwError("platform missing String.prototype.normalize",e.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Tn})}checkSafeUint53(t,n){"number"==typeof t&&(null==n&&(n="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(n,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(n,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,n,r){r=r?": "+r:"",t<n&&this.throwError("missing argument"+r,e.errors.MISSING_ARGUMENT,{count:t,expectedCount:n}),t>n&&this.throwError("too many arguments"+r,e.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:n})}checkNew(t,n){t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:n.name})}checkAbstract(t,n){t===n?this.throwError("cannot instantiate abstract class "+JSON.stringify(n.name)+" directly; use a sub-class",e.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:n.name})}static globalLogger(){return wn||(wn=new e("logger/5.7.0")),wn}static setCensorship(t,n){if(!t&&n&&this.globalLogger().throwError("cannot permanently disable censorship",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),yn){if(!t)return;this.globalLogger().throwError("error censorship permanent",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}gn=!!t,yn=!!n}static setLogLevel(t){const n=bn[t.toLowerCase()];null!=n?vn=n:e.globalLogger().warn("invalid log level - "+t)}static from(t){return new e(t)}};In.errors=En,In.levels=An;var Rn=Object.freeze({__proto__:null,get ErrorCode(){return En},get LogLevel(){return An},Logger:In});const Cn=new In("bytes/5.7.0");function On(e){return!!e.toHexString}function kn(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return kn(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function Sn(e){return Fn(e)&&!(e.length%2)||xn(e)}function Nn(e){return"number"==typeof e&&e==e&&e%1==0}function xn(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!Nn(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const n=e[t];if(!Nn(n)||n<0||n>=256)return!1}return!0}function Pn(e,t){if(t||(t={}),"number"==typeof e){Cn.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),kn(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),On(e)&&(e=e.toHexString()),Fn(e)){let n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0"+n:"right"===t.hexPad?n+="0":Cn.throwArgumentError("hex data is odd-length","value",e));const r=[];for(let e=0;e<n.length;e+=2)r.push(parseInt(n.substring(e,e+2),16));return kn(new Uint8Array(r))}return xn(e)?kn(new Uint8Array(e)):Cn.throwArgumentError("invalid arrayify value","value",e)}function Mn(e){const t=e.map((e=>Pn(e))),n=t.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(n);return t.reduce(((e,t)=>(r.set(t,e),e+t.length)),0),kn(r)}function Bn(e){let t=Pn(e);if(0===t.length)return t;let n=0;for(;n<t.length&&0===t[n];)n++;return n&&(t=t.slice(n)),t}function Dn(e,t){(e=Pn(e)).length>t&&Cn.throwArgumentError("value out of range","value",arguments[0]);const n=new Uint8Array(t);return n.set(e,t-e.length),kn(n)}function Fn(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}const Ln="0123456789abcdef";function Un(e,t){if(t||(t={}),"number"==typeof e){Cn.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=Ln[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),On(e))return e.toHexString();if(Fn(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Cn.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(xn(e)){let t="0x";for(let n=0;n<e.length;n++){let r=e[n];t+=Ln[(240&r)>>4]+Ln[15&r]}return t}return Cn.throwArgumentError("invalid hexlify value","value",e)}function qn(e){if("string"!=typeof e)e=Un(e);else if(!Fn(e)||e.length%2)return null;return(e.length-2)/2}function jn(e,t,n){return"string"!=typeof e?e=Un(e):(!Fn(e)||e.length%2)&&Cn.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=n?"0x"+e.substring(t,2+2*n):"0x"+e.substring(t)}function Gn(e){let t="0x";return e.forEach((e=>{t+=Un(e).substring(2)})),t}function Hn(e){const t=zn(Un(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function zn(e){"string"!=typeof e&&(e=Un(e)),Fn(e)||Cn.throwArgumentError("invalid hex string","value",e),e=e.substring(2);let t=0;for(;t<e.length&&"0"===e[t];)t++;return"0x"+e.substring(t)}function Vn(e,t){for("string"!=typeof e?e=Un(e):Fn(e)||Cn.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Cn.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function Wn(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(Sn(e)){let n=Pn(e);64===n.length?(t.v=27+(n[32]>>7),n[32]&=127,t.r=Un(n.slice(0,32)),t.s=Un(n.slice(32,64))):65===n.length?(t.r=Un(n.slice(0,32)),t.s=Un(n.slice(32,64)),t.v=n[64]):Cn.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:Cn.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(n[32]|=128),t._vs=Un(n.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){const n=Dn(Pn(t._vs),32);t._vs=Un(n);const r=n[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=r:t.recoveryParam!==r&&Cn.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),n[0]&=127;const i=Un(n);null==t.s?t.s=i:t.s!==i&&Cn.throwArgumentError("signature v mismatch _vs","signature",e)}if(null==t.recoveryParam)null==t.v?Cn.throwArgumentError("signature missing v and recoveryParam","signature",e):0===t.v||1===t.v?t.recoveryParam=t.v:t.recoveryParam=1-t.v%2;else if(null==t.v)t.v=27+t.recoveryParam;else{const n=0===t.v||1===t.v?t.v:1-t.v%2;t.recoveryParam!==n&&Cn.throwArgumentError("signature recoveryParam mismatch v","signature",e)}null!=t.r&&Fn(t.r)?t.r=Vn(t.r,32):Cn.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&Fn(t.s)?t.s=Vn(t.s,32):Cn.throwArgumentError("signature missing or invalid s","signature",e);const n=Pn(t.s);n[0]>=128&&Cn.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(n[0]|=128);const r=Un(n);t._vs&&(Fn(t._vs)||Cn.throwArgumentError("signature invalid _vs","signature",e),t._vs=Vn(t._vs,32)),null==t._vs?t._vs=r:t._vs!==r&&Cn.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function Kn(e){return Un(Mn([(e=Wn(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}var Xn=Object.freeze({__proto__:null,arrayify:Pn,concat:Mn,hexConcat:Gn,hexDataLength:qn,hexDataSlice:jn,hexStripZeros:zn,hexValue:Hn,hexZeroPad:Vn,hexlify:Un,isBytes:xn,isBytesLike:Sn,isHexString:Fn,joinSignature:Kn,splitSignature:Wn,stripZeros:Bn,zeroPad:Dn});const Jn="bignumber/5.7.0";var Yn=mn.BN;const Qn=new In(Jn),$n={},Zn=9007199254740991;let er=!1,tr=class e{constructor(e,t){e!==$n&&Qn.throwError("cannot call constructor directly; use BigNumber.from",In.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return rr(ir(this).fromTwos(e))}toTwos(e){return rr(ir(this).toTwos(e))}abs(){return"-"===this._hex[0]?e.from(this._hex.substring(1)):this}add(e){return rr(ir(this).add(ir(e)))}sub(e){return rr(ir(this).sub(ir(e)))}div(t){return e.from(t).isZero()&&ar("division-by-zero","div"),rr(ir(this).div(ir(t)))}mul(e){return rr(ir(this).mul(ir(e)))}mod(e){const t=ir(e);return t.isNeg()&&ar("division-by-zero","mod"),rr(ir(this).umod(t))}pow(e){const t=ir(e);return t.isNeg()&&ar("negative-power","pow"),rr(ir(this).pow(t))}and(e){const t=ir(e);return(this.isNegative()||t.isNeg())&&ar("unbound-bitwise-result","and"),rr(ir(this).and(t))}or(e){const t=ir(e);return(this.isNegative()||t.isNeg())&&ar("unbound-bitwise-result","or"),rr(ir(this).or(t))}xor(e){const t=ir(e);return(this.isNegative()||t.isNeg())&&ar("unbound-bitwise-result","xor"),rr(ir(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&ar("negative-width","mask"),rr(ir(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&ar("negative-width","shl"),rr(ir(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&ar("negative-width","shr"),rr(ir(this).shrn(e))}eq(e){return ir(this).eq(ir(e))}lt(e){return ir(this).lt(ir(e))}lte(e){return ir(this).lte(ir(e))}gt(e){return ir(this).gt(ir(e))}gte(e){return ir(this).gte(ir(e))}isNegative(){return"-"===this._hex[0]}isZero(){return ir(this).isZero()}toNumber(){try{return ir(this).toNumber()}catch(e){ar("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return Qn.throwError("this platform does not support BigInt",In.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?er||(er=!0,Qn.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?Qn.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",In.errors.UNEXPECTED_ARGUMENT,{}):Qn.throwError("BigNumber.toString does not accept parameters",In.errors.UNEXPECTED_ARGUMENT,{})),ir(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(t){if(t instanceof e)return t;if("string"==typeof t)return t.match(/^-?0x[0-9a-f]+$/i)?new e($n,nr(t)):t.match(/^-?[0-9]+$/)?new e($n,nr(new Yn(t))):Qn.throwArgumentError("invalid BigNumber string","value",t);if("number"==typeof t)return t%1&&ar("underflow","BigNumber.from",t),(t>=Zn||t<=-Zn)&&ar("overflow","BigNumber.from",t),e.from(String(t));const n=t;if("bigint"==typeof n)return e.from(n.toString());if(xn(n))return e.from(Un(n));if(n)if(n.toHexString){const t=n.toHexString();if("string"==typeof t)return e.from(t)}else{let t=n._hex;if(null==t&&"BigNumber"===n.type&&(t=n.hex),"string"==typeof t&&(Fn(t)||"-"===t[0]&&Fn(t.substring(1))))return e.from(t)}return Qn.throwArgumentError("invalid BigNumber value","value",t)}static isBigNumber(e){return!(!e||!e._isBigNumber)}};function nr(e){if("string"!=typeof e)return nr(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&Qn.throwArgumentError("invalid hex","value",e),"0x00"===(e=nr(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function rr(e){return tr.from(nr(e))}function ir(e){const t=tr.from(e).toHexString();return"-"===t[0]?new Yn("-"+t.substring(3),16):new Yn(t.substring(2),16)}function ar(e,t,n){const r={fault:e,operation:t};return null!=n&&(r.value=n),Qn.throwError(e,In.errors.NUMERIC_FAULT,r)}const or=new In(Jn),sr={},ur=tr.from(0),cr=tr.from(-1);function lr(e,t,n,r){const i={fault:t,operation:n};return void 0!==r&&(i.value=r),or.throwError(e,In.errors.NUMERIC_FAULT,i)}let dr="0";for(;dr.length<256;)dr+=dr;function fr(e){if("number"!=typeof e)try{e=tr.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+dr.substring(0,e):or.throwArgumentError("invalid decimal size","decimals",e)}function pr(e,t){null==t&&(t=0);const n=fr(t),r=(e=tr.from(e)).lt(ur);r&&(e=e.mul(cr));let i=e.mod(n).toString();for(;i.length<n.length-1;)i="0"+i;i=i.match(/^([0-9]*[1-9]|0)(0*)/)[1];const a=e.div(n).toString();return e=1===n.length?a:a+"."+i,r&&(e="-"+e),e}function hr(e,t){null==t&&(t=0);const n=fr(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||or.throwArgumentError("invalid decimal value","value",e);const r="-"===e.substring(0,1);r&&(e=e.substring(1)),"."===e&&or.throwArgumentError("missing value","value",e);const i=e.split(".");i.length>2&&or.throwArgumentError("too many decimal points","value",e);let a=i[0],o=i[1];for(a||(a="0"),o||(o="0");"0"===o[o.length-1];)o=o.substring(0,o.length-1);for(o.length>n.length-1&&lr("fractional component exceeds decimals","underflow","parseFixed"),""===o&&(o="0");o.length<n.length-1;)o+="0";const s=tr.from(a),u=tr.from(o);let c=s.mul(n).add(u);return r&&(c=c.mul(cr)),c}class mr{constructor(e,t,n,r){e!==sr&&or.throwError("cannot use FixedFormat constructor; use FixedFormat.from",In.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=t,this.width=n,this.decimals=r,this.name=(t?"":"u")+"fixed"+String(n)+"x"+String(r),this._multiplier=fr(r),Object.freeze(this)}static from(e){if(e instanceof mr)return e;"number"==typeof e&&(e=`fixed128x${e}`);let t=!0,n=128,r=18;if("string"==typeof e)if("fixed"===e);else if("ufixed"===e)t=!1;else{const i=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);i||or.throwArgumentError("invalid fixed format","format",e),t="u"!==i[1],n=parseInt(i[2]),r=parseInt(i[3])}else if(e){const i=(t,n,r)=>null==e[t]?r:(typeof e[t]!==n&&or.throwArgumentError("invalid fixed format ("+t+" not "+n+")","format."+t,e[t]),e[t]);t=i("signed","boolean",t),n=i("width","number",n),r=i("decimals","number",r)}return n%8&&or.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",n),r>80&&or.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",r),new mr(sr,t,n,r)}}class yr{constructor(e,t,n,r){e!==sr&&or.throwError("cannot use FixedNumber constructor; use FixedNumber.from",In.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=r,this._hex=t,this._value=n,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(e){this.format.name!==e.format.name&&or.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=hr(this._value,this.format.decimals),n=hr(e._value,e.format.decimals);return yr.fromValue(t.add(n),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=hr(this._value,this.format.decimals),n=hr(e._value,e.format.decimals);return yr.fromValue(t.sub(n),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=hr(this._value,this.format.decimals),n=hr(e._value,e.format.decimals);return yr.fromValue(t.mul(n).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=hr(this._value,this.format.decimals),n=hr(e._value,e.format.decimals);return yr.fromValue(t.mul(this.format._multiplier).div(n),this.format.decimals,this.format)}floor(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=yr.from(e[0],this.format);const n=!e[1].match(/^(0*)$/);return this.isNegative()&&n&&(t=t.subUnsafe(gr.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=yr.from(e[0],this.format);const n=!e[1].match(/^(0*)$/);return!this.isNegative()&&n&&(t=t.addUnsafe(gr.toFormat(t.format))),t}round(e){null==e&&(e=0);const t=this.toString().split(".");if(1===t.length&&t.push("0"),(e<0||e>80||e%1)&&or.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const n=yr.from("1"+dr.substring(0,e),this.format),r=br.toFormat(this.format);return this.mulUnsafe(n).addUnsafe(r).floor().divUnsafe(n)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(e){if(null==e)return this._hex;e%8&&or.throwArgumentError("invalid byte width","width",e);return Vn(tr.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8)}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return yr.fromString(this._value,e)}static fromValue(e,t,n){return null!=n||null==t||function(e){return null!=e&&(tr.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||Fn(e)||"bigint"==typeof e||xn(e))}(t)||(n=t,t=null),null==t&&(t=0),null==n&&(n="fixed"),yr.fromString(pr(e,t),mr.from(n))}static fromString(e,t){null==t&&(t="fixed");const n=mr.from(t),r=hr(e,n.decimals);!n.signed&&r.lt(ur)&&lr("unsigned value cannot be negative","overflow","value",e);let i=null;n.signed?i=r.toTwos(n.width).toHexString():(i=r.toHexString(),i=Vn(i,n.width/8));const a=pr(r,n.decimals);return new yr(sr,i,a,n)}static fromBytes(e,t){null==t&&(t="fixed");const n=mr.from(t);if(Pn(e).length>n.width/8)throw new Error("overflow");let r=tr.from(e);n.signed&&(r=r.fromTwos(n.width));const i=r.toTwos((n.signed?0:1)+n.width).toHexString(),a=pr(r,n.decimals);return new yr(sr,i,a,n)}static from(e,t){if("string"==typeof e)return yr.fromString(e,t);if(xn(e))return yr.fromBytes(e,t);try{return yr.fromValue(e,0,t)}catch(e){if(e.code!==In.errors.INVALID_ARGUMENT)throw e}return or.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const gr=yr.from(1),br=yr.from("0.5");var vr=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const wr=new In("properties/5.7.0");function Tr(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function Ar(e,t){for(let n=0;n<32;n++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function Er(e){return vr(this,void 0,void 0,(function*(){const t=Object.keys(e).map((t=>{const n=e[t];return Promise.resolve(n).then((e=>({key:t,value:e})))}));return(yield Promise.all(t)).reduce(((e,t)=>(e[t.key]=t.value,e)),{})}))}function _r(e,t){e&&"object"==typeof e||wr.throwArgumentError("invalid object","object",e),Object.keys(e).forEach((n=>{t[n]||wr.throwArgumentError("invalid object key - "+n,"transaction:"+n,e)}))}function Ir(e){const t={};for(const n in e)t[n]=e[n];return t}const Rr={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Cr(e){if(null==e||Rr[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let n=0;n<t.length;n++){let r=null;try{r=e[t[n]]}catch(e){continue}if(!Cr(r))return!1}return!0}return wr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Or(e){if(Cr(e))return e;if(Array.isArray(e))return Object.freeze(e.map((e=>kr(e))));if("object"==typeof e){const t={};for(const n in e){const r=e[n];void 0!==r&&Tr(t,n,kr(r))}return t}return wr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function kr(e){return Or(e)}let Sr=class{constructor(e){for(const t in e)this[t]=kr(e[t])}};var Nr=Object.freeze({__proto__:null,Description:Sr,checkProperties:_r,deepCopy:kr,defineReadOnly:Tr,getStatic:Ar,resolveProperties:Er,shallowCopy:Ir});const xr="abi/5.7.0",Pr=new In(xr),Mr={};let Br={calldata:!0,memory:!0,storage:!0},Dr={calldata:!0,memory:!0};function Fr(e,t){if("bytes"===e||"string"===e){if(Br[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&Dr[t])return!0;return(Br[t]||"payable"===t)&&Pr.throwArgumentError("invalid modifier","name",t),!1}function Lr(e,t){for(let n in t)Tr(e,n,t[n])}const Ur=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),qr=new RegExp(/^(.*)\[([0-9]*)\]$/);let jr=class e{constructor(t,n){t!==Mr&&Pr.throwError("use fromString",In.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),Lr(this,n);let r=this.type.match(qr);Lr(this,r?{arrayLength:parseInt(r[2]||"-1"),arrayChildren:e.fromObject({type:r[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=Ur.sighash),Ur[e]||Pr.throwArgumentError("invalid format type","format",e),e===Ur.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map((t=>JSON.parse(t.format(e))))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==Ur.sighash&&(t+=this.type),t+="("+this.components.map((t=>t.format(e))).join(e===Ur.full?", ":",")+")"):t+=this.type,e!==Ur.sighash&&(!0===this.indexed&&(t+=" indexed"),e===Ur.full&&this.name&&(t+=" "+this.name)),t}static from(t,n){return"string"==typeof t?e.fromString(t,n):e.fromObject(t)}static fromObject(t){return e.isParamType(t)?t:new e(Mr,{name:t.name||null,type:$r(t.type),indexed:null==t.indexed?null:!!t.indexed,components:t.components?t.components.map(e.fromObject):null})}static fromString(t,n){return r=function(e,t){let n=e;function r(t){Pr.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let n={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(n.indexed=!1),n}e=e.replace(/\s/g," ");let a={type:"",name:"",state:{allowType:!0}},o=a;for(let n=0;n<e.length;n++){let a=e[n];switch(a){case"(":o.state.allowType&&""===o.type?o.type="tuple":o.state.allowParams||r(n),o.state.allowType=!1,o.type=$r(o.type),o.components=[i(o)],o=o.components[0];break;case")":delete o.state,"indexed"===o.name&&(t||r(n),o.indexed=!0,o.name=""),Fr(o.type,o.name)&&(o.name=""),o.type=$r(o.type);let e=o;o=o.parent,o||r(n),delete e.parent,o.state.allowParams=!1,o.state.allowName=!0,o.state.allowArray=!0;break;case",":delete o.state,"indexed"===o.name&&(t||r(n),o.indexed=!0,o.name=""),Fr(o.type,o.name)&&(o.name=""),o.type=$r(o.type);let s=i(o.parent);o.parent.components.push(s),delete o.parent,o=s;break;case" ":o.state.allowType&&""!==o.type&&(o.type=$r(o.type),delete o.state.allowType,o.state.allowName=!0,o.state.allowParams=!0),o.state.allowName&&""!==o.name&&("indexed"===o.name?(t||r(n),o.indexed&&r(n),o.indexed=!0,o.name=""):Fr(o.type,o.name)?o.name="":o.state.allowName=!1);break;case"[":o.state.allowArray||r(n),o.type+=a,o.state.allowArray=!1,o.state.allowName=!1,o.state.readArray=!0;break;case"]":o.state.readArray||r(n),o.type+=a,o.state.readArray=!1,o.state.allowArray=!0,o.state.allowName=!0;break;default:o.state.allowType?(o.type+=a,o.state.allowParams=!0,o.state.allowArray=!0):o.state.allowName?(o.name+=a,delete o.state.allowArray):o.state.readArray?o.type+=a:r(n)}}return o.parent&&Pr.throwArgumentError("unexpected eof","param",e),delete a.state,"indexed"===o.name?(t||r(n.length-7),o.indexed&&r(n.length-7),o.indexed=!0,o.name=""):Fr(o.type,o.name)&&(o.name=""),a.type=$r(a.type),a}(t,!!n),e.fromObject({name:r.name,type:r.type,indexed:r.indexed,components:r.components});var r}static isParamType(e){return!(null==e||!e._isParamType)}};function Gr(e,t){return function(e){e=e.trim();let t=[],n="",r=0;for(let i=0;i<e.length;i++){let a=e[i];","===a&&0===r?(t.push(n),n=""):(n+=a,"("===a?r++:")"===a&&(r--,-1===r&&Pr.throwArgumentError("unbalanced parenthesis","value",e)))}n&&t.push(n);return t}(e).map((e=>jr.fromString(e,t)))}let Hr=class e{constructor(e,t){e!==Mr&&Pr.throwError("use a static from method",In.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),Lr(this,t),this._isFragment=!0,Object.freeze(this)}static from(t){return e.isFragment(t)?t:"string"==typeof t?e.fromString(t):e.fromObject(t)}static fromObject(t){if(e.isFragment(t))return t;switch(t.type){case"function":return Jr.fromObject(t);case"event":return zr.fromObject(t);case"constructor":return Xr.fromObject(t);case"error":return Qr.fromObject(t);case"fallback":case"receive":return null}return Pr.throwArgumentError("invalid fragment object","value",t)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?zr.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?Jr.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?Xr.fromString(e.trim()):"error"===e.split(" ")[0]?Qr.fromString(e.substring(5).trim()):Pr.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}},zr=class e extends Hr{format(e){if(e||(e=Ur.sighash),Ur[e]||Pr.throwArgumentError("invalid format type","format",e),e===Ur.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==Ur.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Ur.full?", ":",")+") ",e!==Ur.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(t){return"string"==typeof t?e.fromString(t):e.fromObject(t)}static fromObject(t){if(e.isEventFragment(t))return t;"event"!==t.type&&Pr.throwArgumentError("invalid event object","value",t);const n={name:ei(t.name),anonymous:t.anonymous,inputs:t.inputs?t.inputs.map(jr.fromObject):[],type:"event"};return new e(Mr,n)}static fromString(t){let n=t.match(ti);n||Pr.throwArgumentError("invalid event string","value",t);let r=!1;return n[3].split(" ").forEach((e=>{switch(e.trim()){case"anonymous":r=!0;break;case"":break;default:Pr.warn("unknown modifier: "+e)}})),e.fromObject({name:n[1].trim(),anonymous:r,inputs:Gr(n[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}};function Vr(e,t){t.gas=null;let n=e.split("@");return 1!==n.length?(n.length>2&&Pr.throwArgumentError("invalid human-readable ABI signature","value",e),n[1].match(/^[0-9]+$/)||Pr.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=tr.from(n[1]),n[0]):e}function Wr(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach((e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}}))}function Kr(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&Pr.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Pr.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||Pr.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.constant?t.stateMutability="view":t.stateMutability=t.payable?"payable":"nonpayable",t.payable&&t.constant&&Pr.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&Pr.throwArgumentError("unable to determine stateMutability","value",e),t}let Xr=class e extends Hr{format(e){if(e||(e=Ur.sighash),Ur[e]||Pr.throwArgumentError("invalid format type","format",e),e===Ur.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});e===Ur.sighash&&Pr.throwError("cannot format a constructor for sighash",In.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map((t=>t.format(e))).join(e===Ur.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(t){return"string"==typeof t?e.fromString(t):e.fromObject(t)}static fromObject(t){if(e.isConstructorFragment(t))return t;"constructor"!==t.type&&Pr.throwArgumentError("invalid constructor object","value",t);let n=Kr(t);n.constant&&Pr.throwArgumentError("constructor cannot be constant","value",t);const r={name:null,type:t.type,inputs:t.inputs?t.inputs.map(jr.fromObject):[],payable:n.payable,stateMutability:n.stateMutability,gas:t.gas?tr.from(t.gas):null};return new e(Mr,r)}static fromString(t){let n={type:"constructor"},r=(t=Vr(t,n)).match(ti);return r&&"constructor"===r[1].trim()||Pr.throwArgumentError("invalid constructor string","value",t),n.inputs=Gr(r[2].trim(),!1),Wr(r[3].trim(),n),e.fromObject(n)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}},Jr=class e extends Xr{format(e){if(e||(e=Ur.sighash),Ur[e]||Pr.throwArgumentError("invalid format type","format",e),e===Ur.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e)))),outputs:this.outputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==Ur.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Ur.full?", ":",")+") ",e!==Ur.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map((t=>t.format(e))).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(t){return"string"==typeof t?e.fromString(t):e.fromObject(t)}static fromObject(t){if(e.isFunctionFragment(t))return t;"function"!==t.type&&Pr.throwArgumentError("invalid function object","value",t);let n=Kr(t);const r={type:t.type,name:ei(t.name),constant:n.constant,inputs:t.inputs?t.inputs.map(jr.fromObject):[],outputs:t.outputs?t.outputs.map(jr.fromObject):[],payable:n.payable,stateMutability:n.stateMutability,gas:t.gas?tr.from(t.gas):null};return new e(Mr,r)}static fromString(t){let n={type:"function"},r=(t=Vr(t,n)).split(" returns ");r.length>2&&Pr.throwArgumentError("invalid function string","value",t);let i=r[0].match(ti);if(i||Pr.throwArgumentError("invalid function signature","value",t),n.name=i[1].trim(),n.name&&ei(n.name),n.inputs=Gr(i[2],!1),Wr(i[3].trim(),n),r.length>1){let e=r[1].match(ti);""==e[1].trim()&&""==e[3].trim()||Pr.throwArgumentError("unexpected tokens","value",t),n.outputs=Gr(e[2],!1)}else n.outputs=[];return e.fromObject(n)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}};function Yr(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Pr.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}let Qr=class e extends Hr{format(e){if(e||(e=Ur.sighash),Ur[e]||Pr.throwArgumentError("invalid format type","format",e),e===Ur.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==Ur.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Ur.full?", ":",")+") ",t.trim()}static from(t){return"string"==typeof t?e.fromString(t):e.fromObject(t)}static fromObject(t){if(e.isErrorFragment(t))return t;"error"!==t.type&&Pr.throwArgumentError("invalid error object","value",t);const n={type:t.type,name:ei(t.name),inputs:t.inputs?t.inputs.map(jr.fromObject):[]};return Yr(new e(Mr,n))}static fromString(t){let n={type:"error"},r=t.match(ti);return r||Pr.throwArgumentError("invalid error signature","value",t),n.name=r[1].trim(),n.name&&ei(n.name),n.inputs=Gr(r[2],!1),Yr(e.fromObject(n))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}};function $r(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const Zr=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function ei(e){return e&&e.match(Zr)||Pr.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const ti=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");const ni=new In(xr);function ri(e){const t=[],n=function(e,r){if(Array.isArray(r))for(let i in r){const a=e.slice();a.push(i);try{n(a,r[i])}catch(e){t.push({path:a,error:e})}}};return n([],e),t}let ii=class{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){ni.throwArgumentError(e,this.localName,t)}},ai=class{constructor(e){Tr(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return Gn(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(Mn(e._data))}writeBytes(e){let t=Pn(e);const n=t.length%this.wordSize;return n&&(t=Mn([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=Pn(tr.from(e));return t.length>this.wordSize&&ni.throwError("value out-of-bounds",In.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=Mn([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}};var oi={exports:{}};
|
|
2
|
-
/**
|
|
3
|
-
* [js-sha3]{@link https://github.com/emn178/js-sha3}
|
|
4
|
-
*
|
|
5
|
-
* @version 0.8.0
|
|
6
|
-
* @author Chen, Yi-Cyuan [emn178@gmail.com]
|
|
7
|
-
* @copyright Chen, Yi-Cyuan 2015-2018
|
|
8
|
-
* @license MIT
|
|
9
|
-
*/!function(e){!function(){var t="input is invalid type",n="object"==typeof window,r=n?window:{};r.JS_SHA3_NO_WINDOW&&(n=!1);var i=!n&&"object"==typeof self;!r.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&{node:"20.9.0",acorn:"8.10.0",ada:"2.6.0",ares:"1.19.1",base64:"0.5.0",brotli:"1.0.9",cjs_module_lexer:"1.2.2",cldr:"43.1",icu:"73.2",llhttp:"8.1.1",modules:"115",napi:"9",nghttp2:"1.57.0",nghttp3:"0.7.0",ngtcp2:"0.8.1",openssl:"3.0.10+quic",simdutf:"3.2.17",tz:"2023c",undici:"5.26.3",unicode:"15.0",uv:"1.46.0",uvwasi:"0.0.18",v8:"11.3.244.8-node.16",zlib:"1.2.13.1-motley"}&&process.versions.node?r=ct:i&&(r=self);var a=!r.JS_SHA3_NO_COMMON_JS&&e.exports,o=!r.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),u=[4,1024,262144,67108864],c=[0,8,16,24],l=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],f=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],h={128:168,256:136};!r.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!o||!r.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,n){return function(r){return new S(e,t,e).update(r)[n]()}},y=function(e,t,n){return function(r,i){return new S(e,t,i).update(r)[n]()}},g=function(e,t,n){return function(t,r,i,a){return A["cshake"+e].update(t,r,i,a)[n]()}},b=function(e,t,n){return function(t,r,i,a){return A["kmac"+e].update(t,r,i,a)[n]()}},v=function(e,t,n,r){for(var i=0;i<p.length;++i){var a=p[i];e[a]=t(n,r,a)}return e},w=function(e,t){var n=m(e,t,"hex");return n.create=function(){return new S(e,t,e)},n.update=function(e){return n.create().update(e)},v(n,m,e,t)},T=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:w},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:w},{name:"shake",padding:[31,7936,2031616,520093696],bits:f,createMethod:function(e,t){var n=y(e,t,"hex");return n.create=function(n){return new S(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},v(n,y,e,t)}},{name:"cshake",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=g(e,0,"hex");return r.create=function(r,i,a){return i||a?new S(e,t,r).bytepad([i,a],n):A["shake"+e].create(r)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},v(r,g,e,t)}},{name:"kmac",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=b(e,0,"hex");return r.create=function(r,i,a){return new N(e,t,i).bytepad(["KMAC",a],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},v(r,b,e,t)}}],A={},E=[],_=0;_<T.length;++_)for(var I=T[_],R=I.bits,C=0;C<R.length;++C){var O=I.name+"_"+R[C];if(E.push(O),A[O]=I.createMethod(R[C],I.padding),"sha3"!==I.name){var k=I.name+R[C];E.push(k),A[k]=A[O]}}function S(e,t,n){this.blocks=[],this.s=[],this.padding=t,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var r=0;r<50;++r)this.s[r]=0}function N(e,t,n){S.call(this,e,t,n)}S.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}for(var i,a,s=this.blocks,u=this.byteCount,l=e.length,d=this.blockCount,f=0,p=this.s;f<l;){if(this.reset)for(this.reset=!1,s[0]=this.block,i=1;i<d+1;++i)s[i]=0;if(n)for(i=this.start;f<l&&i<u;++f)s[i>>2]|=e[f]<<c[3&i++];else for(i=this.start;f<l&&i<u;++f)(a=e.charCodeAt(f))<128?s[i>>2]|=a<<c[3&i++]:a<2048?(s[i>>2]|=(192|a>>6)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]):a<55296||a>=57344?(s[i>>2]|=(224|a>>12)<<c[3&i++],s[i>>2]|=(128|a>>6&63)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]):(a=65536+((1023&a)<<10|1023&e.charCodeAt(++f)),s[i>>2]|=(240|a>>18)<<c[3&i++],s[i>>2]|=(128|a>>12&63)<<c[3&i++],s[i>>2]|=(128|a>>6&63)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=s[d],i=0;i<d;++i)p[i]^=s[i];x(p),this.reset=!0}else this.start=i}return this},S.prototype.encode=function(e,t){var n=255&e,r=1,i=[n];for(n=255&(e>>=8);n>0;)i.unshift(n),n=255&(e>>=8),++r;return t?i.push(r):i.unshift(r),this.update(i),i.length},S.prototype.encodeString=function(e){var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}var i=0,a=e.length;if(n)i=a;else for(var s=0;s<e.length;++s){var u=e.charCodeAt(s);u<128?i+=1:u<2048?i+=2:u<55296||u>=57344?i+=3:(u=65536+((1023&u)<<10|1023&e.charCodeAt(++s)),i+=4)}return i+=this.encode(8*i),this.update(e),i},S.prototype.bytepad=function(e,t){for(var n=this.encode(t),r=0;r<e.length;++r)n+=this.encodeString(e[r]);var i=t-n%t,a=[];return a.length=i,this.update(a),this},S.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,n=this.blockCount,r=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[n],t=1;t<n+1;++t)e[t]=0;for(e[n-1]|=2147483648,t=0;t<n;++t)r[t]^=e[t];x(r)}},S.prototype.toString=S.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,u="";o<r;){for(a=0;a<t&&o<r;++a,++o)e=n[a],u+=s[e>>4&15]+s[15&e]+s[e>>12&15]+s[e>>8&15]+s[e>>20&15]+s[e>>16&15]+s[e>>28&15]+s[e>>24&15];o%t==0&&(x(n),a=0)}return i&&(e=n[a],u+=s[e>>4&15]+s[15&e],i>1&&(u+=s[e>>12&15]+s[e>>8&15]),i>2&&(u+=s[e>>20&15]+s[e>>16&15])),u},S.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,s=this.outputBits>>3;e=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(s);for(var u=new Uint32Array(e);o<r;){for(a=0;a<t&&o<r;++a,++o)u[o]=n[a];o%t==0&&x(n)}return i&&(u[a]=n[a],e=e.slice(0,s)),e},S.prototype.buffer=S.prototype.arrayBuffer,S.prototype.digest=S.prototype.array=function(){this.finalize();for(var e,t,n=this.blockCount,r=this.s,i=this.outputBlocks,a=this.extraBytes,o=0,s=0,u=[];s<i;){for(o=0;o<n&&s<i;++o,++s)e=s<<2,t=r[o],u[e]=255&t,u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;s%n==0&&x(r)}return a&&(e=s<<2,t=r[o],u[e]=255&t,a>1&&(u[e+1]=t>>8&255),a>2&&(u[e+2]=t>>16&255)),u},N.prototype=new S,N.prototype.finalize=function(){return this.encode(this.outputBits,!0),S.prototype.finalize.call(this)};var x=function(e){var t,n,r,i,a,o,s,u,c,d,f,p,h,m,y,g,b,v,w,T,A,E,_,I,R,C,O,k,S,N,x,P,M,B,D,F,L,U,q,j,G,H,z,V,W,K,X,J,Y,Q,$,Z,ee,te,ne,re,ie,ae,oe,se,ue,ce,le;for(r=0;r<48;r+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],a=e[1]^e[11]^e[21]^e[31]^e[41],o=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],u=e[4]^e[14]^e[24]^e[34]^e[44],c=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],f=e[7]^e[17]^e[27]^e[37]^e[47],t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(o<<1|s>>>31),n=(h=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|o>>>31),e[0]^=t,e[1]^=n,e[10]^=t,e[11]^=n,e[20]^=t,e[21]^=n,e[30]^=t,e[31]^=n,e[40]^=t,e[41]^=n,t=i^(u<<1|c>>>31),n=a^(c<<1|u>>>31),e[2]^=t,e[3]^=n,e[12]^=t,e[13]^=n,e[22]^=t,e[23]^=n,e[32]^=t,e[33]^=n,e[42]^=t,e[43]^=n,t=o^(d<<1|f>>>31),n=s^(f<<1|d>>>31),e[4]^=t,e[5]^=n,e[14]^=t,e[15]^=n,e[24]^=t,e[25]^=n,e[34]^=t,e[35]^=n,e[44]^=t,e[45]^=n,t=u^(p<<1|h>>>31),n=c^(h<<1|p>>>31),e[6]^=t,e[7]^=n,e[16]^=t,e[17]^=n,e[26]^=t,e[27]^=n,e[36]^=t,e[37]^=n,e[46]^=t,e[47]^=n,t=d^(i<<1|a>>>31),n=f^(a<<1|i>>>31),e[8]^=t,e[9]^=n,e[18]^=t,e[19]^=n,e[28]^=t,e[29]^=n,e[38]^=t,e[39]^=n,e[48]^=t,e[49]^=n,m=e[0],y=e[1],K=e[11]<<4|e[10]>>>28,X=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,S=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,z=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,g=e[13]<<12|e[12]>>>20,b=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,N=e[33]<<13|e[32]>>>19,x=e[32]<<13|e[33]>>>19,ce=e[42]<<2|e[43]>>>30,le=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,ne=e[4]<<30|e[5]>>>2,F=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,v=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,Q=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,P=e[45]<<29|e[44]>>>3,M=e[44]<<29|e[45]>>>3,I=e[6]<<28|e[7]>>>4,R=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,q=e[27]<<25|e[26]>>>7,T=e[36]<<21|e[37]>>>11,A=e[37]<<21|e[36]>>>11,Z=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,V=e[8]<<27|e[9]>>>5,W=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,ae=e[29]<<7|e[28]>>>25,oe=e[28]<<7|e[29]>>>25,j=e[38]<<8|e[39]>>>24,G=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,_=e[49]<<14|e[48]>>>18,e[0]=m^~g&v,e[1]=y^~b&w,e[10]=I^~C&k,e[11]=R^~O&S,e[20]=B^~F&U,e[21]=D^~L&q,e[30]=V^~K&J,e[31]=W^~X&Y,e[40]=te^~re&ae,e[41]=ne^~ie&oe,e[2]=g^~v&T,e[3]=b^~w&A,e[12]=C^~k&N,e[13]=O^~S&x,e[22]=F^~U&j,e[23]=L^~q&G,e[32]=K^~J&Q,e[33]=X^~Y&$,e[42]=re^~ae&se,e[43]=ie^~oe&ue,e[4]=v^~T&E,e[5]=w^~A&_,e[14]=k^~N&P,e[15]=S^~x&M,e[24]=U^~j&H,e[25]=q^~G&z,e[34]=J^~Q&Z,e[35]=Y^~$&ee,e[44]=ae^~se&ce,e[45]=oe^~ue&le,e[6]=T^~E&m,e[7]=A^~_&y,e[16]=N^~P&I,e[17]=x^~M&R,e[26]=j^~H&B,e[27]=G^~z&D,e[36]=Q^~Z&V,e[37]=$^~ee&W,e[46]=se^~ce&te,e[47]=ue^~le&ne,e[8]=E^~m&g,e[9]=_^~y&b,e[18]=P^~I&C,e[19]=M^~R&O,e[28]=H^~B&F,e[29]=z^~D&L,e[38]=Z^~V&K,e[39]=ee^~W&X,e[48]=ce^~te&re,e[49]=le^~ne&ie,e[0]^=l[r],e[1]^=l[r+1]};if(a)e.exports=A;else for(_=0;_<E.length;++_)r[E[_]]=A[E[_]]}()}(oi);var si=lt(oi.exports);function ui(e){return"0x"+si.keccak_256(Pn(e))}var ci=Object.freeze({__proto__:null,keccak256:ui});const li=new In("rlp/5.7.0");function di(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function fi(e,t,n){let r=0;for(let i=0;i<n;i++)r=256*r+e[t+i];return r}function pi(e){if(Array.isArray(e)){let t=[];if(e.forEach((function(e){t=t.concat(pi(e))})),t.length<=55)return t.unshift(192+t.length),t;const n=di(t.length);return n.unshift(247+n.length),n.concat(t)}Sn(e)||li.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(Pn(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const n=di(t.length);return n.unshift(183+n.length),n.concat(t)}function hi(e){return Un(pi(e))}function mi(e,t,n,r){const i=[];for(;n<t+1+r;){const a=yi(e,n);i.push(a.result),(n+=a.consumed)>t+1+r&&li.throwError("child data too short",In.errors.BUFFER_OVERRUN,{})}return{consumed:1+r,result:i}}function yi(e,t){if(0===e.length&&li.throwError("data too short",In.errors.BUFFER_OVERRUN,{}),e[t]>=248){const n=e[t]-247;t+1+n>e.length&&li.throwError("data short segment too short",In.errors.BUFFER_OVERRUN,{});const r=fi(e,t+1,n);return t+1+n+r>e.length&&li.throwError("data long segment too short",In.errors.BUFFER_OVERRUN,{}),mi(e,t,t+1+n,n+r)}if(e[t]>=192){const n=e[t]-192;return t+1+n>e.length&&li.throwError("data array too short",In.errors.BUFFER_OVERRUN,{}),mi(e,t,t+1,n)}if(e[t]>=184){const n=e[t]-183;t+1+n>e.length&&li.throwError("data array too short",In.errors.BUFFER_OVERRUN,{});const r=fi(e,t+1,n);t+1+n+r>e.length&&li.throwError("data array too short",In.errors.BUFFER_OVERRUN,{});return{consumed:1+n+r,result:Un(e.slice(t+1+n,t+1+n+r))}}if(e[t]>=128){const n=e[t]-128;t+1+n>e.length&&li.throwError("data too short",In.errors.BUFFER_OVERRUN,{});return{consumed:1+n,result:Un(e.slice(t+1,t+1+n))}}return{consumed:1,result:Un(e[t])}}function gi(e){const t=Pn(e),n=yi(t,0);return n.consumed!==t.length&&li.throwArgumentError("invalid rlp data","data",e),n.result}var bi=Object.freeze({__proto__:null,decode:gi,encode:hi});const vi=new In("address/5.7.0");function wi(e){Fn(e,20)||vi.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let e=0;e<40;e++)n[e]=t[e].charCodeAt(0);const r=Pn(ui(n));for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&r[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const Ti={};for(let e=0;e<10;e++)Ti[String(e)]=String(e);for(let e=0;e<26;e++)Ti[String.fromCharCode(65+e)]=String(10+e);const Ai=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Ei(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>Ti[e])).join("");for(;t.length>=Ai;){let e=t.substring(0,Ai);t=parseInt(e,10)%97+t.substring(e.length)}let n=String(98-parseInt(t,10)%97);for(;n.length<2;)n="0"+n;return n}function _i(e){let t=null;if("string"!=typeof e&&vi.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=wi(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&vi.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==Ei(e)&&vi.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new Yn(n,36).toString(16);t.length<40;)t="0"+t;t=wi("0x"+t)}else vi.throwArgumentError("invalid address","address",e);var n;return t}function Ii(e){try{return _i(e),!0}catch(e){}return!1}function Ri(e){let t=(n=_i(e).substring(2),new Yn(n,16).toString(36)).toUpperCase();for(var n;t.length<30;)t="0"+t;return"XE"+Ei("XE00"+t)+t}function Ci(e){let t=null;try{t=_i(e.from)}catch(t){vi.throwArgumentError("missing from address","transaction",e)}return _i(jn(ui(hi([t,Bn(Pn(tr.from(e.nonce).toHexString()))])),12))}function Oi(e,t,n){return 32!==qn(t)&&vi.throwArgumentError("salt must be 32 bytes","salt",t),32!==qn(n)&&vi.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",n),_i(jn(ui(Mn(["0xff",_i(e),t,n])),12))}var ki=Object.freeze({__proto__:null,getAddress:_i,getContractAddress:Ci,getCreate2Address:Oi,getIcapAddress:Ri,isAddress:Ii});let Si=class extends ii{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=_i(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return _i(Vn(e.readValue().toHexString(),20))}},Ni=class extends ii{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}};const xi=new In(xr);function Pi(e,t,n){let r=null;if(Array.isArray(n))r=n;else if(n&&"object"==typeof n){let e={};r=t.map((t=>{const r=t.localName;return r||xi.throwError("cannot encode object for signature with missing names",In.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&xi.throwError("cannot encode object for signature with duplicate names",In.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]}))}else xi.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&xi.throwArgumentError("types/value length mismatch","tuple",n);let i=new ai(e.wordSize),a=new ai(e.wordSize),o=[];t.forEach(((e,t)=>{let n=r[t];if(e.dynamic){let t=a.length;e.encode(a,n);let r=i.writeUpdatableValue();o.push((e=>{r(e+t)}))}else e.encode(i,n)})),o.forEach((e=>{e(i.length)}));let s=e.appendWriter(i);return s+=e.appendWriter(a),s}function Mi(e,t){let n=[],r=e.subReader(0);t.forEach((t=>{let i=null;if(t.dynamic){let n=e.readValue(),a=r.subReader(n.toNumber());try{i=t.decode(a)}catch(e){if(e.code===In.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===In.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&n.push(i)}));const i=t.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});t.forEach(((e,t)=>{let r=e.localName;if(!r||1!==i[r])return;if("length"===r&&(r="_length"),null!=n[r])return;const a=n[t];a instanceof Error?Object.defineProperty(n,r,{enumerable:!0,get:()=>{throw a}}):n[r]=a}));for(let e=0;e<n.length;e++){const t=n[e];t instanceof Error&&Object.defineProperty(n,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(n)}let Bi=class extends ii{constructor(e,t,n){super("array",e.type+"["+(t>=0?t:"")+"]",n,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let n=this.length;-1===n&&(n=t.length,e.writeValue(t.length)),xi.checkArgumentCount(t.length,n,"coder array"+(this.localName?" "+this.localName:""));let r=[];for(let e=0;e<t.length;e++)r.push(this.coder);return Pi(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&xi.throwError("insufficient data length",In.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new Ni(this.coder));return e.coerce(this.name,Mi(e,n))}},Di=class extends ii{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}},Fi=class extends ii{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Pn(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}},Li=class extends Fi{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Un(super.decode(e)))}},Ui=class extends ii{constructor(e,t){let n="bytes"+String(e);super(n,n,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let n=Pn(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,Un(e.readBytes(this.size)))}},qi=class extends ii{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}};const ji="0x0000000000000000000000000000000000000000",Gi=tr.from(-1),Hi=tr.from(0),zi=tr.from(1),Vi=tr.from(2),Wi=tr.from("1000000000000000000"),Ki=tr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Xi=tr.from("-0x8000000000000000000000000000000000000000000000000000000000000000"),Ji=tr.from("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Yi="0x0000000000000000000000000000000000000000000000000000000000000000";var Qi=Object.freeze({__proto__:null,AddressZero:ji,EtherSymbol:"Ξ",HashZero:Yi,MaxInt256:Ji,MaxUint256:Ki,MinInt256:Xi,NegativeOne:Gi,One:zi,Two:Vi,WeiPerEther:Wi,Zero:Hi});let $i=class extends ii{constructor(e,t,n){const r=(t?"int":"uint")+8*e;super(r,r,n,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let n=tr.from(t),r=Ki.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add(zi).mul(Gi)))&&this._throwError("value out-of-bounds",t)}else(n.lt(Hi)||n.gt(r.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return n=n.toTwos(8*this.size).mask(8*this.size),this.signed&&(n=n.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(n)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}};const Zi=new In("strings/5.7.0");var ea,ta;function na(e,t,n,r,i){if(e===ta.BAD_PREFIX||e===ta.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===ta.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(ea||(ea={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(ta||(ta={}));const ra=Object.freeze({error:function(e,t,n,r,i){return Zi.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:na,replace:function(e,t,n,r,i){return e===ta.OVERLONG?(r.push(i),0):(r.push(65533),na(e,t,n))}});function ia(e,t){null==t&&(t=ra.error),e=Pn(e);const n=[];let r=0;for(;r<e.length;){const i=e[r++];if(i>>7==0){n.push(i);continue}let a=null,o=null;if(192==(224&i))a=1,o=127;else if(224==(240&i))a=2,o=2047;else{if(240!=(248&i)){r+=t(128==(192&i)?ta.UNEXPECTED_CONTINUE:ta.BAD_PREFIX,r-1,e,n);continue}a=3,o=65535}if(r-1+a>=e.length){r+=t(ta.OVERRUN,r-1,e,n);continue}let s=i&(1<<8-a-1)-1;for(let i=0;i<a;i++){let i=e[r];if(128!=(192&i)){r+=t(ta.MISSING_CONTINUE,r,e,n),s=null;break}s=s<<6|63&i,r++}null!==s&&(s>1114111?r+=t(ta.OUT_OF_RANGE,r-1-a,e,n,s):s>=55296&&s<=57343?r+=t(ta.UTF16_SURROGATE,r-1-a,e,n,s):s<=o?r+=t(ta.OVERLONG,r-1-a,e,n,s):n.push(s))}return n}function aa(e,t=ea.current){t!=ea.current&&(Zi.checkNormalize(),e=e.normalize(t));let n=[];for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(63&r|128);else if(55296==(64512&r)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const a=65536+((1023&r)<<10)+(1023&i);n.push(a>>18|240),n.push(a>>12&63|128),n.push(a>>6&63|128),n.push(63&a|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return Pn(n)}function oa(e){const t="0000"+e.toString(16);return"\\u"+t.substring(t.length-4)}function sa(e,t){return'"'+ia(e,t).map((e=>{if(e<256){switch(e){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 13:return"\\r";case 34:return'\\"';case 92:return"\\\\"}if(e>=32&&e<127)return String.fromCharCode(e)}return e<=65535?oa(e):oa(55296+((e-=65536)>>10&1023))+oa(56320+(1023&e))})).join("")+'"'}function ua(e){return e.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("")}function ca(e,t){return ua(ia(e,t))}function la(e,t=ea.current){return ia(aa(e,t))}function da(e){const t=aa(e);if(t.length>31)throw new Error("bytes32 string must be less than 32 bytes");return Un(Mn([t,Yi]).slice(0,32))}function fa(e){const t=Pn(e);if(32!==t.length)throw new Error("invalid bytes32 - not 32 bytes long");if(0!==t[31])throw new Error("invalid bytes32 string - no null terminator");let n=31;for(;0===t[n-1];)n--;return ca(t.slice(0,n))}function pa(e,t){t||(t=function(e){return[parseInt(e,16)]});let n=0,r={};return e.split(",").forEach((e=>{let i=e.split(":");n+=parseInt(i[0],16),r[n]=t(i[1])})),r}function ha(e){let t=0;return e.split(",").map((e=>{let n=e.split("-");1===n.length?n[1]="0":""===n[1]&&(n[1]="1");let r=t+parseInt(n[0],16);return t=parseInt(n[1],16),{l:r,h:t}}))}function ma(e,t){let n=0;for(let r=0;r<t.length;r++){let i=t[r];if(n+=i.l,e>=n&&e<=n+i.h&&(e-n)%(i.d||1)==0){if(i.e&&-1!==i.e.indexOf(e-n))continue;return i}}return null}const ya=ha("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"),ga="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((e=>parseInt(e,16))),ba=[{h:25,s:32,l:65},{h:30,s:32,e:[23],l:127},{h:54,s:1,e:[48],l:64,d:2},{h:14,s:1,l:57,d:2},{h:44,s:1,l:17,d:2},{h:10,s:1,e:[2,6,8],l:61,d:2},{h:16,s:1,l:68,d:2},{h:84,s:1,e:[18,24,66],l:19,d:2},{h:26,s:32,e:[17],l:435},{h:22,s:1,l:71,d:2},{h:15,s:80,l:40},{h:31,s:32,l:16},{h:32,s:1,l:80,d:2},{h:52,s:1,l:42,d:2},{h:12,s:1,l:55,d:2},{h:40,s:1,e:[38],l:15,d:2},{h:14,s:1,l:48,d:2},{h:37,s:48,l:49},{h:148,s:1,l:6351,d:2},{h:88,s:1,l:160,d:2},{h:15,s:16,l:704},{h:25,s:26,l:854},{h:25,s:32,l:55915},{h:37,s:40,l:1247},{h:25,s:-119711,l:53248},{h:25,s:-119763,l:52},{h:25,s:-119815,l:52},{h:25,s:-119867,e:[1,4,5,7,8,11,12,17],l:52},{h:25,s:-119919,l:52},{h:24,s:-119971,e:[2,7,8,17],l:52},{h:24,s:-120023,e:[2,7,13,15,16,17],l:52},{h:25,s:-120075,l:52},{h:25,s:-120127,l:52},{h:25,s:-120179,l:52},{h:25,s:-120231,l:52},{h:25,s:-120283,l:52},{h:25,s:-120335,l:52},{h:24,s:-119543,e:[17],l:56},{h:24,s:-119601,e:[17],l:58},{h:24,s:-119659,e:[17],l:58},{h:24,s:-119717,e:[17],l:58},{h:24,s:-119775,e:[17],l:58}],va=pa("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"),wa=pa("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"),Ta=pa("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D",(function(e){if(e.length%4!=0)throw new Error("bad data");let t=[];for(let n=0;n<e.length;n+=4)t.push(parseInt(e.substring(n,n+4),16));return t})),Aa=ha("80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001");function Ea(e){if(e.match(/^[a-z0-9-]*$/i)&&e.length<=59)return e.toLowerCase();let t=la(e);var n;n=t.map((e=>{if(ga.indexOf(e)>=0)return[];if(e>=65024&&e<=65039)return[];let t=function(e){let t=ma(e,ba);if(t)return[e+t.s];let n=va[e];if(n)return n;let r=wa[e];return r?[e+r[0]]:Ta[e]||null}(e);return t||[e]})),t=n.reduce(((e,t)=>(t.forEach((t=>{e.push(t)})),e)),[]),t=la(ua(t),ea.NFKC),t.forEach((e=>{if(ma(e,Aa))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")})),t.forEach((e=>{if(ma(e,ya))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")}));let r=ua(t);if("-"===r.substring(0,1)||"--"===r.substring(2,4)||"-"===r.substring(r.length-1))throw new Error("invalid hyphen");return r}var _a=Object.freeze({__proto__:null,get UnicodeNormalizationForm(){return ea},Utf8ErrorFuncs:ra,get Utf8ErrorReason(){return ta},_toEscapedUtf8String:sa,formatBytes32String:da,nameprep:Ea,parseBytes32String:fa,toUtf8Bytes:aa,toUtf8CodePoints:la,toUtf8String:ca});let Ia=class extends Fi{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,aa(t))}decode(e){return ca(super.decode(e))}},Ra=class extends ii{constructor(e,t){let n=!1;const r=[];e.forEach((e=>{e.dynamic&&(n=!0),r.push(e.type)}));super("tuple","tuple("+r.join(",")+")",t,n),this.coders=e}defaultValue(){const e=[];this.coders.forEach((t=>{e.push(t.defaultValue())}));const t=this.coders.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});return this.coders.forEach(((n,r)=>{let i=n.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[r]))})),Object.freeze(e)}encode(e,t){return Pi(e,this.coders,t)}decode(e){return e.coerce(this.name,Mi(e,this.coders))}};const Ca=new In(xr),Oa=new RegExp(/^bytes([0-9]*)$/),ka=new RegExp(/^(u?int)([0-9]*)$/);let Sa=class{constructor(e){Tr(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new Si(e.name);case"bool":return new Di(e.name);case"string":return new Ia(e.name);case"bytes":return new Li(e.name);case"array":return new Bi(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Ra((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new qi(e.name)}let t=e.type.match(ka);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&Ca.throwArgumentError("invalid "+t[1]+" bit length","param",e),new $i(n/8,"int"===t[1],e.name)}if(t=e.type.match(Oa),t){let n=parseInt(t[1]);return(0===n||n>32)&&Ca.throwArgumentError("invalid bytes length","param",e),new Ui(n,e.name)}return Ca.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new class e{constructor(e,t,n,r){Tr(this,"_data",Pn(e)),Tr(this,"wordSize",t||32),Tr(this,"_coerceFunc",n),Tr(this,"allowLoose",r),this._offset=0}get data(){return Un(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(t,n){return this._coerceFunc?this._coerceFunc(t,n):e.coerce(t,n)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:ni.throwError("data out-of-bounds",In.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(t){return new e(this._data.slice(this._offset+t),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return tr.from(this.readBytes(this.wordSize))}}(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new ai(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(jr.from(e))));return new Ra(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Ca.throwError("types/values length mismatch",In.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map((e=>this._getCoder(jr.from(e)))),r=new Ra(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map((e=>this._getCoder(jr.from(e))));return new Ra(r,"_").decode(this._getReader(Pn(t),n))}};const Na=new Sa;function xa(e){return ui(aa(e))}const Pa="hash/5.7.0";function Ma(e){e=atob(e);const t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return Pn(t)}function Ba(e){e=Pn(e);let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}var Da=Object.freeze({__proto__:null,decode:Ma,encode:Ba});function Fa(e,t){null==t&&(t=1);const n=[],r=n.forEach,i=function(e,t){r.call(e,(function(e){t>0&&Array.isArray(e)?i(e,t-1):n.push(e)}))};return i(e,t),n}function La(e){return function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function n(){return e[t++]<<8|e[t++]}let r=n(),i=1,a=[0,1];for(let e=1;e<r;e++)a.push(i+=n());let o=n(),s=t;t+=o;let u=0,c=0;function l(){return 0==u&&(c=c<<8|e[t++],u=8),c>>--u&1}const d=Math.pow(2,31),f=d>>>1,p=f>>1,h=d-1;let m=0;for(let e=0;e<31;e++)m=m<<1|l();let y=[],g=0,b=d;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,n=r;for(;n-t>1;){let r=t+n>>>1;e<a[r]?n=r:t=r}if(0==t)break;y.push(t);let o=g+Math.floor(b*a[t]/i),s=g+Math.floor(b*a[t+1]/i)-1;for(;0==((o^s)&f);)m=m<<1&h|l(),o=o<<1&h,s=s<<1&h|1;for(;o&~s&p;)m=m&f|m<<1&h>>>1|l(),o=o<<1^f,s=(s^f)<<1|f|1;g=o,b=1+s-o}let v=r-4;return y.map((t=>{switch(t-v){case 3:return v+65792+(e[s++]<<16|e[s++]<<8|e[s++]);case 2:return v+256+(e[s++]<<8|e[s++]);case 1:return v+e[s++];default:return t-1}}))}(e))}function Ua(e){return 1&e?~e>>1:e>>1}function qa(e,t){let n=Array(e);for(let r=0,i=-1;r<e;r++)n[r]=i+=1+t();return n}function ja(e,t){let n=Array(e);for(let r=0,i=0;r<e;r++)n[r]=i+=Ua(t());return n}function Ga(e,t){let n=qa(e(),e),r=e(),i=qa(r,e),a=function(e,t){let n=Array(e);for(let r=0;r<e;r++)n[r]=1+t();return n}(r,e);for(let e=0;e<r;e++)for(let t=0;t<a[e];t++)n.push(i[e]+t);return t?n.map((e=>t[e])):n}function Ha(e,t,n){let r=Array(e).fill(void 0).map((()=>[]));for(let i=0;i<t;i++)ja(e,n).forEach(((e,t)=>r[t].push(e)));return r}function za(e,t){let n=1+t(),r=t(),i=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(n)}return t}(t);return Fa(Ha(i.length,1+e,t).map(((e,t)=>{const a=e[0],o=e.slice(1);return Array(i[t]).fill(void 0).map(((e,t)=>{let i=t*r;return[a+t*n,o.map((e=>e+i))]}))})))}function Va(e,t){return Ha(1+t(),1+e,t).map((e=>[e[0],e.slice(1)]))}const Wa=La(Ma("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA==")),Ka=new Set(Ga(Wa)),Xa=new Set(Ga(Wa)),Ja=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(za(n,e))}for(;;){let n=e()-1;if(n<0)break;t.push(Va(n,e))}return function(e){const t={};for(let n=0;n<e.length;n++){const r=e[n];t[r[0]]=r[1]}return t}(Fa(t))}(Wa),Ya=function(e){let t=Ga(e).sort(((e,t)=>e-t));return function n(){let r=[];for(;;){let i=Ga(e,t);if(0==i.length)break;r.push({set:new Set(i),node:n()})}r.sort(((e,t)=>t.set.size-e.set.size));let i=e(),a=i%3;i=i/3|0;let o=!!(1&i);return i>>=1,{branches:r,valid:a,fe0f:o,save:1==i,check:2==i}}()}(Wa),Qa=45,$a=95;function Za(e){return la(e)}function eo(e){return e.filter((e=>65039!=e))}function to(e){for(let t of e.split(".")){let e=Za(t);try{for(let t=e.lastIndexOf($a)-1;t>=0;t--)if(e[t]!==$a)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every((e=>e<128))&&e[2]===Qa&&e[3]===Qa)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function no(e){return to(function(e,t){let n=Za(e).reverse(),r=[];for(;n.length;){let e=ro(n);if(e){r.push(...t(e));continue}let i=n.pop();if(Ka.has(i)){r.push(i);continue}if(Xa.has(i))continue;let a=Ja[i];if(!a)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);r.push(...a)}return to(function(e){return e.normalize("NFC")}(String.fromCodePoint(...r)))}(e,eo))}function ro(e,t){var n;let r,i,a=Ya,o=[],s=e.length;for(t&&(t.length=0);s;){let u=e[--s];if(a=null===(n=a.branches.find((e=>e.set.has(u))))||void 0===n?void 0:n.node,!a)break;if(a.save)i=u;else if(a.check&&u===i)break;o.push(u),a.fe0f&&(o.push(65039),s>0&&65039==e[s-1]&&s--),a.valid&&(r=o.slice(),2==a.valid&&r.splice(1,1),t&&t.push(...e.slice(s).reverse()),e.length=s)}return r}const io=new In(Pa),ao=new Uint8Array(32);function oo(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function so(e){const t=aa(no(e)),n=[];if(0===e.length)return n;let r=0;for(let e=0;e<t.length;e++){46===t[e]&&(n.push(oo(t.slice(r,e))),r=e+1)}if(r>=t.length)throw new Error("invalid ENS name; empty component");return n.push(oo(t.slice(r))),n}function uo(e){try{return 0!==so(e).length}catch(e){}return!1}function co(e){"string"!=typeof e&&io.throwArgumentError("invalid ENS name; not a string","name",e);let t=ao;const n=so(e);for(;n.length;)t=ui(Mn([t,ui(n.pop())]));return Un(t)}function lo(e){return Un(Mn(so(e).map((e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t}))))+"00"}ao.fill(0);const fo="Ethereum Signed Message:\n";function po(e){return"string"==typeof e&&(e=aa(e)),ui(Mn([aa(fo),aa(String(e.length)),e]))}var ho=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const mo=new In(Pa),yo=new Uint8Array(32);yo.fill(0);const go=tr.from(-1),bo=tr.from(0),vo=tr.from(1),wo=tr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const To=Vn(vo.toHexString(),32),Ao=Vn(bo.toHexString(),32),Eo={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},_o=["name","version","chainId","verifyingContract","salt"];function Io(e){return function(t){return"string"!=typeof t&&mo.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const Ro={name:Io("name"),version:Io("version"),chainId:function(e){try{return tr.from(e).toString()}catch(e){}return mo.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return _i(e).toLowerCase()}catch(e){}return mo.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=Pn(e);if(32!==t.length)throw new Error("bad length");return Un(t)}catch(e){}return mo.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function Co(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const n=""===t[1],r=parseInt(t[2]||"256");(r%8!=0||r>256||t[2]&&t[2]!==String(r))&&mo.throwArgumentError("invalid numeric width","type",e);const i=wo.mask(n?r-1:r),a=n?i.add(vo).mul(go):bo;return function(t){const n=tr.from(t);return(n.lt(a)||n.gt(i))&&mo.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),Vn(n.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const n=parseInt(t[1]);return(0===n||n>32||t[1]!==String(n))&&mo.throwArgumentError("invalid bytes width","type",e),function(t){return Pn(t).length!==n&&mo.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=Pn(e),n=t.length%32;return n?Gn([t,yo.slice(n)]):Un(t)}(t)}}}switch(e){case"address":return function(e){return Vn(_i(e),32)};case"bool":return function(e){return e?To:Ao};case"bytes":return function(e){return ui(e)};case"string":return function(e){return xa(e)}}return null}function Oo(e,t){return`${e}(${t.map((({name:e,type:t})=>t+" "+e)).join(",")})`}class ko{constructor(e){Tr(this,"types",Object.freeze(kr(e))),Tr(this,"_encoderCache",{}),Tr(this,"_types",{});const t={},n={},r={};Object.keys(e).forEach((e=>{t[e]={},n[e]=[],r[e]={}}));for(const r in e){const i={};e[r].forEach((a=>{i[a.name]&&mo.throwArgumentError(`duplicate variable name ${JSON.stringify(a.name)} in ${JSON.stringify(r)}`,"types",e),i[a.name]=!0;const o=a.type.match(/^([^\x5b]*)(\x5b|$)/)[1];o===r&&mo.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",e);Co(o)||(n[o]||mo.throwArgumentError(`unknown type ${JSON.stringify(o)}`,"types",e),n[o].push(r),t[r][o]=!0)}))}const i=Object.keys(n).filter((e=>0===n[e].length));0===i.length?mo.throwArgumentError("missing primary type","types",e):i.length>1&&mo.throwArgumentError(`ambiguous primary types or unused types: ${i.map((e=>JSON.stringify(e))).join(", ")}`,"types",e),Tr(this,"primaryType",i[0]),function i(a,o){o[a]&&mo.throwArgumentError(`circular type reference to ${JSON.stringify(a)}`,"types",e),o[a]=!0,Object.keys(t[a]).forEach((e=>{n[e]&&(i(e,o),Object.keys(o).forEach((t=>{r[t][e]=!0})))})),delete o[a]}(this.primaryType,{});for(const t in r){const n=Object.keys(r[t]);n.sort(),this._types[t]=Oo(t,e[t])+n.map((t=>Oo(t,e[t]))).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=Co(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],n=this.getEncoder(e),r=parseInt(t[3]);return t=>{r>=0&&t.length!==r&&mo.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(n);return this._types[e]&&(i=i.map(ui)),ui(Gn(i))}}const n=this.types[e];if(n){const t=xa(this._types[e]);return e=>{const r=n.map((({name:t,type:n})=>{const r=this.getEncoder(n)(e[t]);return this._types[n]?ui(r):r}));return r.unshift(t),Gn(r)}}return mo.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||mo.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return ui(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,n){if(Co(e))return n(e,t);const r=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(r){const e=r[1],i=parseInt(r[3]);return i>=0&&t.length!==i&&mo.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map((t=>this._visit(e,t,n)))}const i=this.types[e];return i?i.reduce(((e,{name:r,type:i})=>(e[r]=this._visit(i,t[r],n),e)),{}):mo.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new ko(e)}static getPrimaryType(e){return ko.from(e).primaryType}static hashStruct(e,t,n){return ko.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){const r=Eo[n];r||mo.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:r})}return t.sort(((e,t)=>_o.indexOf(e.name)-_o.indexOf(t.name))),ko.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return Gn(["0x1901",ko.hashDomain(e),ko.from(t).hash(n)])}static hash(e,t,n){return ui(ko.encode(e,t,n))}static resolveNames(e,t,n,r){return ho(this,void 0,void 0,(function*(){e=Ir(e);const i={};e.verifyingContract&&!Fn(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const a=ko.from(t);a.visit(n,((e,t)=>("address"!==e||Fn(t,20)||(i[t]="0x"),t)));for(const e in i)i[e]=yield r(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),n=a.visit(n,((e,t)=>"address"===e&&i[t]?i[t]:t)),{domain:e,value:n}}))}static getPayload(e,t,n){ko.hashDomain(e);const r={},i=[];_o.forEach((t=>{const n=e[t];null!=n&&(r[t]=Ro[t](n),i.push({name:t,type:Eo[t]}))}));const a=ko.from(t),o=Ir(t);return o.EIP712Domain?mo.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):o.EIP712Domain=i,a.encode(n),{types:o,domain:r,primaryType:a.primaryType,message:a.visit(n,((e,t)=>{if(e.match(/^bytes(\d*)/))return Un(Pn(t));if(e.match(/^u?int/))return tr.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&mo.throwArgumentError("invalid string","value",t),t}return mo.throwArgumentError("unsupported type","type",e)}))}}}var So=Object.freeze({__proto__:null,_TypedDataEncoder:ko,dnsEncode:lo,ensNormalize:function(e){return so(e).map((e=>ca(e))).join(".")},hashMessage:po,id:xa,isValidName:uo,messagePrefix:fo,namehash:co});const No=new In(xr);let xo=class extends Sr{},Po=class extends Sr{},Mo=class extends Sr{},Bo=class extends Sr{static isIndexed(e){return!(!e||!e._isIndexed)}};const Do={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function Fo(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}let Lo=class{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,Tr(this,"fragments",t.map((e=>Hr.from(e))).filter((e=>null!=e))),Tr(this,"_abiCoder",Ar(new.target,"getAbiCoder")()),Tr(this,"functions",{}),Tr(this,"errors",{}),Tr(this,"events",{}),Tr(this,"structs",{}),this.fragments.forEach((e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void No.warn("duplicate definition - constructor"):void Tr(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let n=e.format();t[n]?No.warn("duplicate definition - "+n):t[n]=e})),this.deploy||Tr(this,"deploy",Xr.from({payable:!1,type:"constructor"})),Tr(this,"_isInterface",!0)}format(e){e||(e=Ur.full),e===Ur.sighash&&No.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map((t=>t.format(e)));return e===Ur.json?JSON.stringify(t.map((e=>JSON.parse(e)))):t}static getAbiCoder(){return Na}static getAddress(e){return _i(e)}static getSighash(e){return jn(xa(e.format()),0,4)}static getEventTopic(e){return xa(e.format())}getFunction(e){if(Fn(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];No.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.functions).filter((e=>e.split("(")[0]===t));return 0===n.length?No.throwArgumentError("no matching function","name",t):n.length>1&&No.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[Jr.fromString(e).format()];return t||No.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Fn(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];No.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.events).filter((e=>e.split("(")[0]===t));return 0===n.length?No.throwArgumentError("no matching event","name",t):n.length>1&&No.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[zr.fromString(e).format()];return t||No.throwArgumentError("no matching event","signature",e),t}getError(e){if(Fn(e)){const t=Ar(this.constructor,"getSighash");for(const n in this.errors){if(e===t(this.errors[n]))return this.errors[n]}No.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.errors).filter((e=>e.split("(")[0]===t));return 0===n.length?No.throwArgumentError("no matching error","name",t):n.length>1&&No.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[Jr.fromString(e).format()];return t||No.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return Ar(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),Ar(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const n=Pn(t);return Un(n.slice(0,4))!==this.getSighash(e)&&No.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Un(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Un(Mn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=Pn(t);return Un(n.slice(0,4))!==this.getSighash(e)&&No.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Un(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Un(Mn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=Pn(t),r=null,i="",a=null,o=null,s=null;switch(n.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,n)}catch(e){}break;case 4:{const e=Un(n.slice(0,4)),t=Do[e];if(t)a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.signature,t.reason&&(r=a[0]),"Error"===o?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(a[0])}`:"Panic"===o&&(i=`; VM Exception while processing transaction: reverted with panic code ${a[0]}`);else try{const t=this.getError(e);a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.format()}catch(e){}break}}return No.throwError("call revert exception"+i,In.errors.CALL_EXCEPTION,{method:e.format(),data:Un(t),errorArgs:a,errorName:o,errorSignature:s,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Un(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&No.throwError("too many arguments for "+e.format(),In.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?xa(t):"bytes"===e.type?ui(Un(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=tr.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),Vn(Un(t),32));for(t.forEach(((t,i)=>{let a=e.inputs[i];a.indexed?null==t?n.push(null):"array"===a.baseType||"tuple"===a.baseType?No.throwArgumentError("filtering with tuples or arrays not supported","contract."+a.name,t):Array.isArray(t)?n.push(t.map((e=>r(a,e)))):n.push(r(a,t)):null!=t&&No.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+a.name,t)}));n.length&&null===n[n.length-1];)n.pop();return n}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const n=[],r=[],i=[];return e.anonymous||n.push(this.getEventTopic(e)),t.length!==e.inputs.length&&No.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach(((e,a)=>{const o=t[a];if(e.indexed)if("string"===e.type)n.push(xa(o));else if("bytes"===e.type)n.push(ui(o));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");n.push(this._abiCoder.encode([e.type],[o]))}else r.push(e),i.push(o)})),{data:this._abiCoder.encode(r,i),topics:n}}decodeEventLog(e,t,n){if("string"==typeof e&&(e=this.getEvent(e)),null!=n&&!e.anonymous){let t=this.getEventTopic(e);Fn(n[0],32)&&n[0].toLowerCase()===t||No.throwError("fragment/topic mismatch",In.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:n[0]}),n=n.slice(1)}let r=[],i=[],a=[];e.inputs.forEach(((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(r.push(jr.fromObject({type:"bytes32",name:e.name})),a.push(!0)):(r.push(e),a.push(!1)):(i.push(e),a.push(!1))}));let o=null!=n?this._abiCoder.decode(r,Mn(n)):null,s=this._abiCoder.decode(i,t,!0),u=[],c=0,l=0;e.inputs.forEach(((e,t)=>{if(e.indexed)if(null==o)u[t]=new Bo({_isIndexed:!0,hash:null});else if(a[t])u[t]=new Bo({_isIndexed:!0,hash:o[l++]});else try{u[t]=o[l++]}catch(e){u[t]=e}else try{u[t]=s[c++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const n=u[t];n instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw Fo(`property ${JSON.stringify(e.name)}`,n)}}):u[e.name]=n}}));for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw Fo(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new Po({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:tr.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new xo({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Un(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new Mo({args:this._abiCoder.decode(n.inputs,"0x"+t.substring(10)),errorFragment:n,name:n.name,signature:n.format(),sighash:this.getSighash(n)}):null}static isInterface(e){return!(!e||!e._isInterface)}};var Uo=Object.freeze({__proto__:null,AbiCoder:Sa,ConstructorFragment:Xr,ErrorFragment:Qr,EventFragment:zr,FormatTypes:Ur,Fragment:Hr,FunctionFragment:Jr,Indexed:Bo,Interface:Lo,LogDescription:xo,ParamType:jr,TransactionDescription:Po,checkResultErrors:ri,defaultAbiCoder:Na});var qo=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const jo=new In("abstract-provider/5.7.0");class Go extends Sr{static isForkEvent(e){return!(!e||!e._isForkEvent)}}let Ho=class e{constructor(){jo.checkAbstract(new.target,e),Tr(this,"_isProvider",!0)}getFeeData(){return qo(this,void 0,void 0,(function*(){const{block:e,gasPrice:t}=yield Er({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch((e=>null))});let n=null,r=null,i=null;return e&&e.baseFeePerGas&&(n=e.baseFeePerGas,i=tr.from("1500000000"),r=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:n,maxFeePerGas:r,maxPriorityFeePerGas:i,gasPrice:t}}))}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}};var zo=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Vo=new In("abstract-signer/5.7.0"),Wo=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],Ko=[In.errors.INSUFFICIENT_FUNDS,In.errors.NONCE_EXPIRED,In.errors.REPLACEMENT_UNDERPRICED];let Xo=class e{constructor(){Vo.checkAbstract(new.target,e),Tr(this,"_isSigner",!0)}getBalance(e){return zo(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),e)}))}getTransactionCount(e){return zo(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),e)}))}estimateGas(e){return zo(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const t=yield Er(this.checkTransaction(e));return yield this.provider.estimateGas(t)}))}call(e,t){return zo(this,void 0,void 0,(function*(){this._checkProvider("call");const n=yield Er(this.checkTransaction(e));return yield this.provider.call(n,t)}))}sendTransaction(e){return zo(this,void 0,void 0,(function*(){this._checkProvider("sendTransaction");const t=yield this.populateTransaction(e),n=yield this.signTransaction(t);return yield this.provider.sendTransaction(n)}))}getChainId(){return zo(this,void 0,void 0,(function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return zo(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return zo(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(e){return zo(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(e)}))}checkTransaction(e){for(const t in e)-1===Wo.indexOf(t)&&Vo.throwArgumentError("invalid transaction key: "+t,"transaction",e);const t=Ir(e);return null==t.from?t.from=this.getAddress():t.from=Promise.all([Promise.resolve(t.from),this.getAddress()]).then((t=>(t[0].toLowerCase()!==t[1].toLowerCase()&&Vo.throwArgumentError("from address mismatch","transaction",e),t[0]))),t}populateTransaction(e){return zo(this,void 0,void 0,(function*(){const t=yield Er(this.checkTransaction(e));null!=t.to&&(t.to=Promise.resolve(t.to).then((e=>zo(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.resolveName(e);return null==t&&Vo.throwArgumentError("provided ENS name resolves to null","tx.to",e),t})))),t.to.catch((e=>{})));const n=null!=t.maxFeePerGas||null!=t.maxPriorityFeePerGas;if(null==t.gasPrice||2!==t.type&&!n?0!==t.type&&1!==t.type||!n||Vo.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",e):Vo.throwArgumentError("eip-1559 transaction do not support gasPrice","transaction",e),2!==t.type&&null!=t.type||null==t.maxFeePerGas||null==t.maxPriorityFeePerGas)if(0===t.type||1===t.type)null==t.gasPrice&&(t.gasPrice=this.getGasPrice());else{const e=yield this.getFeeData();if(null==t.type)if(null!=e.maxFeePerGas&&null!=e.maxPriorityFeePerGas)if(t.type=2,null!=t.gasPrice){const e=t.gasPrice;delete t.gasPrice,t.maxFeePerGas=e,t.maxPriorityFeePerGas=e}else null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas);else null!=e.gasPrice?(n&&Vo.throwError("network does not support EIP-1559",In.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==t.gasPrice&&(t.gasPrice=e.gasPrice),t.type=0):Vo.throwError("failed to get consistent fee data",In.errors.UNSUPPORTED_OPERATION,{operation:"signer.getFeeData"});else 2===t.type&&(null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas))}else t.type=2;return null==t.nonce&&(t.nonce=this.getTransactionCount("pending")),null==t.gasLimit&&(t.gasLimit=this.estimateGas(t).catch((e=>{if(Ko.indexOf(e.code)>=0)throw e;return Vo.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",In.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,tx:t})}))),null==t.chainId?t.chainId=this.getChainId():t.chainId=Promise.all([Promise.resolve(t.chainId),this.getChainId()]).then((t=>(0!==t[1]&&t[0]!==t[1]&&Vo.throwArgumentError("chainId address mismatch","transaction",e),t[0]))),yield Er(t)}))}_checkProvider(e){this.provider||Vo.throwError("missing provider",In.errors.UNSUPPORTED_OPERATION,{operation:e||"_checkProvider"})}static isSigner(e){return!(!e||!e._isSigner)}},Jo=class e extends Xo{constructor(e,t){super(),Tr(this,"address",e),Tr(this,"provider",t||null)}getAddress(){return Promise.resolve(this.address)}_fail(e,t){return Promise.resolve().then((()=>{Vo.throwError(e,In.errors.UNSUPPORTED_OPERATION,{operation:t})}))}signMessage(e){return this._fail("VoidSigner cannot sign messages","signMessage")}signTransaction(e){return this._fail("VoidSigner cannot sign transactions","signTransaction")}_signTypedData(e,t,n){return this._fail("VoidSigner cannot sign typed data","signTypedData")}connect(t){return new e(this.address,t)}};var Yo={},Qo={},$o=Zo;function Zo(e,t){if(!e)throw new Error(t||"Assertion failed")}Zo.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var es="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e},ts=$o,ns=dt(Object.freeze({__proto__:null,default:es}));function rs(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function is(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function as(e){return 1===e.length?"0"+e:e}function os(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}Qo.inherits=ns,Qo.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)n.push(parseInt(e[i]+e[i+1],16))}else for(var r=0,i=0;i<e.length;i++){var a=e.charCodeAt(i);a<128?n[r++]=a:a<2048?(n[r++]=a>>6|192,n[r++]=63&a|128):rs(e,i)?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++i)),n[r++]=a>>18|240,n[r++]=a>>12&63|128,n[r++]=a>>6&63|128,n[r++]=63&a|128):(n[r++]=a>>12|224,n[r++]=a>>6&63|128,n[r++]=63&a|128)}else for(i=0;i<e.length;i++)n[i]=0|e[i];return n},Qo.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=as(e[n].toString(16));return t},Qo.htonl=is,Qo.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=is(i)),n+=os(i.toString(16))}return n},Qo.zero2=as,Qo.zero8=os,Qo.join32=function(e,t,n,r){var i=n-t;ts(i%4==0);for(var a=new Array(i/4),o=0,s=t;o<a.length;o++,s+=4){var u;u="big"===r?e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3]:e[s+3]<<24|e[s+2]<<16|e[s+1]<<8|e[s],a[o]=u>>>0}return a},Qo.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r<e.length;r++,i+=4){var a=e[r];"big"===t?(n[i]=a>>>24,n[i+1]=a>>>16&255,n[i+2]=a>>>8&255,n[i+3]=255&a):(n[i+3]=a>>>24,n[i+2]=a>>>16&255,n[i+1]=a>>>8&255,n[i]=255&a)}return n},Qo.rotr32=function(e,t){return e>>>t|e<<32-t},Qo.rotl32=function(e,t){return e<<t|e>>>32-t},Qo.sum32=function(e,t){return e+t>>>0},Qo.sum32_3=function(e,t,n){return e+t+n>>>0},Qo.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},Qo.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},Qo.sum64=function(e,t,n,r){var i=e[t],a=r+e[t+1]>>>0,o=(a<r?1:0)+n+i;e[t]=o>>>0,e[t+1]=a},Qo.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},Qo.sum64_lo=function(e,t,n,r){return t+r>>>0},Qo.sum64_4_hi=function(e,t,n,r,i,a,o,s){var u=0,c=t;return u+=(c=c+r>>>0)<t?1:0,u+=(c=c+a>>>0)<a?1:0,e+n+i+o+(u+=(c=c+s>>>0)<s?1:0)>>>0},Qo.sum64_4_lo=function(e,t,n,r,i,a,o,s){return t+r+a+s>>>0},Qo.sum64_5_hi=function(e,t,n,r,i,a,o,s,u,c){var l=0,d=t;return l+=(d=d+r>>>0)<t?1:0,l+=(d=d+a>>>0)<a?1:0,l+=(d=d+s>>>0)<s?1:0,e+n+i+o+u+(l+=(d=d+c>>>0)<c?1:0)>>>0},Qo.sum64_5_lo=function(e,t,n,r,i,a,o,s,u,c){return t+r+a+s+c>>>0},Qo.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},Qo.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},Qo.shr64_hi=function(e,t,n){return e>>>n},Qo.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0};var ss={},us=Qo,cs=$o;function ls(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}ss.BlockHash=ls,ls.prototype.update=function(e,t){if(e=us.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=us.join32(e,0,e.length-n,this.endian);for(var r=0;r<e.length;r+=this._delta32)this._update(e,r,r+this._delta32)}return this},ls.prototype.digest=function(e){return this.update(this._pad()),cs(null===this.pending),this._digest(e)},ls.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(e<<=3,"big"===this.endian){for(var a=8;a<this.padLength;a++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=e>>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,a=8;a<this.padLength;a++)r[i++]=0;return r};var ds={},fs={},ps=Qo.rotr32;function hs(e,t,n){return e&t^~e&n}function ms(e,t,n){return e&t^e&n^t&n}function ys(e,t,n){return e^t^n}fs.ft_1=function(e,t,n,r){return 0===e?hs(t,n,r):1===e||3===e?ys(t,n,r):2===e?ms(t,n,r):void 0},fs.ch32=hs,fs.maj32=ms,fs.p32=ys,fs.s0_256=function(e){return ps(e,2)^ps(e,13)^ps(e,22)},fs.s1_256=function(e){return ps(e,6)^ps(e,11)^ps(e,25)},fs.g0_256=function(e){return ps(e,7)^ps(e,18)^e>>>3},fs.g1_256=function(e){return ps(e,17)^ps(e,19)^e>>>10};var gs=Qo,bs=ss,vs=fs,ws=gs.rotl32,Ts=gs.sum32,As=gs.sum32_5,Es=vs.ft_1,_s=bs.BlockHash,Is=[1518500249,1859775393,2400959708,3395469782];function Rs(){if(!(this instanceof Rs))return new Rs;_s.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}gs.inherits(Rs,_s);var Cs=Rs;Rs.blockSize=512,Rs.outSize=160,Rs.hmacStrength=80,Rs.padLength=64,Rs.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=ws(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],a=this.h[1],o=this.h[2],s=this.h[3],u=this.h[4];for(r=0;r<n.length;r++){var c=~~(r/20),l=As(ws(i,5),Es(c,a,o,s),u,n[r],Is[c]);u=s,s=o,o=ws(a,30),a=i,i=l}this.h[0]=Ts(this.h[0],i),this.h[1]=Ts(this.h[1],a),this.h[2]=Ts(this.h[2],o),this.h[3]=Ts(this.h[3],s),this.h[4]=Ts(this.h[4],u)},Rs.prototype._digest=function(e){return"hex"===e?gs.toHex32(this.h,"big"):gs.split32(this.h,"big")};var Os=Qo,ks=ss,Ss=fs,Ns=$o,xs=Os.sum32,Ps=Os.sum32_4,Ms=Os.sum32_5,Bs=Ss.ch32,Ds=Ss.maj32,Fs=Ss.s0_256,Ls=Ss.s1_256,Us=Ss.g0_256,qs=Ss.g1_256,js=ks.BlockHash,Gs=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function Hs(){if(!(this instanceof Hs))return new Hs;js.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Gs,this.W=new Array(64)}Os.inherits(Hs,js);var zs=Hs;Hs.blockSize=512,Hs.outSize=256,Hs.hmacStrength=192,Hs.padLength=64,Hs.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=Ps(qs(n[r-2]),n[r-7],Us(n[r-15]),n[r-16]);var i=this.h[0],a=this.h[1],o=this.h[2],s=this.h[3],u=this.h[4],c=this.h[5],l=this.h[6],d=this.h[7];for(Ns(this.k.length===n.length),r=0;r<n.length;r++){var f=Ms(d,Ls(u),Bs(u,c,l),this.k[r],n[r]),p=xs(Fs(i),Ds(i,a,o));d=l,l=c,c=u,u=xs(s,f),s=o,o=a,a=i,i=xs(f,p)}this.h[0]=xs(this.h[0],i),this.h[1]=xs(this.h[1],a),this.h[2]=xs(this.h[2],o),this.h[3]=xs(this.h[3],s),this.h[4]=xs(this.h[4],u),this.h[5]=xs(this.h[5],c),this.h[6]=xs(this.h[6],l),this.h[7]=xs(this.h[7],d)},Hs.prototype._digest=function(e){return"hex"===e?Os.toHex32(this.h,"big"):Os.split32(this.h,"big")};var Vs=Qo,Ws=zs;function Ks(){if(!(this instanceof Ks))return new Ks;Ws.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Vs.inherits(Ks,Ws);var Xs=Ks;Ks.blockSize=512,Ks.outSize=224,Ks.hmacStrength=192,Ks.padLength=64,Ks.prototype._digest=function(e){return"hex"===e?Vs.toHex32(this.h.slice(0,7),"big"):Vs.split32(this.h.slice(0,7),"big")};var Js=Qo,Ys=ss,Qs=$o,$s=Js.rotr64_hi,Zs=Js.rotr64_lo,eu=Js.shr64_hi,tu=Js.shr64_lo,nu=Js.sum64,ru=Js.sum64_hi,iu=Js.sum64_lo,au=Js.sum64_4_hi,ou=Js.sum64_4_lo,su=Js.sum64_5_hi,uu=Js.sum64_5_lo,cu=Ys.BlockHash,lu=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function du(){if(!(this instanceof du))return new du;cu.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=lu,this.W=new Array(160)}Js.inherits(du,cu);var fu=du;function pu(e,t,n,r,i){var a=e&n^~e&i;return a<0&&(a+=4294967296),a}function hu(e,t,n,r,i,a){var o=t&r^~t&a;return o<0&&(o+=4294967296),o}function mu(e,t,n,r,i){var a=e&n^e&i^n&i;return a<0&&(a+=4294967296),a}function yu(e,t,n,r,i,a){var o=t&r^t&a^r&a;return o<0&&(o+=4294967296),o}function gu(e,t){var n=$s(e,t,28)^$s(t,e,2)^$s(t,e,7);return n<0&&(n+=4294967296),n}function bu(e,t){var n=Zs(e,t,28)^Zs(t,e,2)^Zs(t,e,7);return n<0&&(n+=4294967296),n}function vu(e,t){var n=$s(e,t,14)^$s(e,t,18)^$s(t,e,9);return n<0&&(n+=4294967296),n}function wu(e,t){var n=Zs(e,t,14)^Zs(e,t,18)^Zs(t,e,9);return n<0&&(n+=4294967296),n}function Tu(e,t){var n=$s(e,t,1)^$s(e,t,8)^eu(e,t,7);return n<0&&(n+=4294967296),n}function Au(e,t){var n=Zs(e,t,1)^Zs(e,t,8)^tu(e,t,7);return n<0&&(n+=4294967296),n}function Eu(e,t){var n=$s(e,t,19)^$s(t,e,29)^eu(e,t,6);return n<0&&(n+=4294967296),n}function _u(e,t){var n=Zs(e,t,19)^Zs(t,e,29)^tu(e,t,6);return n<0&&(n+=4294967296),n}du.blockSize=1024,du.outSize=512,du.hmacStrength=192,du.padLength=128,du.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var i=Eu(n[r-4],n[r-3]),a=_u(n[r-4],n[r-3]),o=n[r-14],s=n[r-13],u=Tu(n[r-30],n[r-29]),c=Au(n[r-30],n[r-29]),l=n[r-32],d=n[r-31];n[r]=au(i,a,o,s,u,c,l,d),n[r+1]=ou(i,a,o,s,u,c,l,d)}},du.prototype._update=function(e,t){this._prepareBlock(e,t);var n=this.W,r=this.h[0],i=this.h[1],a=this.h[2],o=this.h[3],s=this.h[4],u=this.h[5],c=this.h[6],l=this.h[7],d=this.h[8],f=this.h[9],p=this.h[10],h=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];Qs(this.k.length===n.length);for(var v=0;v<n.length;v+=2){var w=g,T=b,A=vu(d,f),E=wu(d,f),_=pu(d,f,p,h,m),I=hu(d,f,p,h,m,y),R=this.k[v],C=this.k[v+1],O=n[v],k=n[v+1],S=su(w,T,A,E,_,I,R,C,O,k),N=uu(w,T,A,E,_,I,R,C,O,k);w=gu(r,i),T=bu(r,i),A=mu(r,i,a,o,s),E=yu(r,i,a,o,s,u);var x=ru(w,T,A,E),P=iu(w,T,A,E);g=m,b=y,m=p,y=h,p=d,h=f,d=ru(c,l,S,N),f=iu(l,l,S,N),c=s,l=u,s=a,u=o,a=r,o=i,r=ru(S,N,x,P),i=iu(S,N,x,P)}nu(this.h,0,r,i),nu(this.h,2,a,o),nu(this.h,4,s,u),nu(this.h,6,c,l),nu(this.h,8,d,f),nu(this.h,10,p,h),nu(this.h,12,m,y),nu(this.h,14,g,b)},du.prototype._digest=function(e){return"hex"===e?Js.toHex32(this.h,"big"):Js.split32(this.h,"big")};var Iu=Qo,Ru=fu;function Cu(){if(!(this instanceof Cu))return new Cu;Ru.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Iu.inherits(Cu,Ru);var Ou=Cu;Cu.blockSize=1024,Cu.outSize=384,Cu.hmacStrength=192,Cu.padLength=128,Cu.prototype._digest=function(e){return"hex"===e?Iu.toHex32(this.h.slice(0,12),"big"):Iu.split32(this.h.slice(0,12),"big")},ds.sha1=Cs,ds.sha224=Xs,ds.sha256=zs,ds.sha384=Ou,ds.sha512=fu;var ku={},Su=Qo,Nu=ss,xu=Su.rotl32,Pu=Su.sum32,Mu=Su.sum32_3,Bu=Su.sum32_4,Du=Nu.BlockHash;function Fu(){if(!(this instanceof Fu))return new Fu;Du.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function Lu(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function Uu(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function qu(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}Su.inherits(Fu,Du),ku.ripemd160=Fu,Fu.blockSize=512,Fu.outSize=160,Fu.hmacStrength=192,Fu.padLength=64,Fu.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],a=this.h[3],o=this.h[4],s=n,u=r,c=i,l=a,d=o,f=0;f<80;f++){var p=Pu(xu(Bu(n,Lu(f,r,i,a),e[ju[f]+t],Uu(f)),Hu[f]),o);n=o,o=a,a=xu(i,10),i=r,r=p,p=Pu(xu(Bu(s,Lu(79-f,u,c,l),e[Gu[f]+t],qu(f)),zu[f]),d),s=d,d=l,l=xu(c,10),c=u,u=p}p=Mu(this.h[1],i,l),this.h[1]=Mu(this.h[2],a,d),this.h[2]=Mu(this.h[3],o,s),this.h[3]=Mu(this.h[4],n,u),this.h[4]=Mu(this.h[0],r,c),this.h[0]=p},Fu.prototype._digest=function(e){return"hex"===e?Su.toHex32(this.h,"little"):Su.split32(this.h,"little")};var ju=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Gu=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Hu=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],zu=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],Vu=Qo,Wu=$o;function Ku(e,t,n){if(!(this instanceof Ku))return new Ku(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(Vu.toArray(t,n))}var Xu=Ku;Ku.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),Wu(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},Ku.prototype.update=function(e,t){return this.inner.update(e,t),this},Ku.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)},function(e){var t=e;t.utils=Qo,t.common=ss,t.sha=ds,t.ripemd=ku,t.hmac=Xu,t.sha1=t.sha.sha1,t.sha256=t.sha.sha256,t.sha224=t.sha.sha224,t.sha384=t.sha.sha384,t.sha512=t.sha.sha512,t.ripemd160=t.ripemd.ripemd160}(Yo);var Ju=lt(Yo);function Yu(e,t,n){return n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&n.path)}},e(n,n.exports),n.exports}var Qu=$u;function $u(e,t){if(!e)throw new Error(t||"Assertion failed")}$u.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var Zu=Yu((function(e,t){var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n<e.length;n++)t+=r(e[n].toString(16));return t}n.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"!=typeof e){for(var r=0;r<e.length;r++)n[r]=0|e[r];return n}if("hex"===t){(e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e);for(r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16))}else for(r=0;r<e.length;r++){var i=e.charCodeAt(r),a=i>>8,o=255&i;a?n.push(a,o):n.push(o)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}})),ec=Yu((function(e,t){var n=t;n.assert=Qu,n.toArray=Zu.toArray,n.zero2=Zu.zero2,n.toHex=Zu.toHex,n.encode=Zu.encode,n.getNAF=function(e,t,n){var r=new Array(Math.max(e.bitLength(),n)+1);r.fill(0);for(var i=1<<t+1,a=e.clone(),o=0;o<r.length;o++){var s,u=a.andln(i-1);a.isOdd()?(s=u>(i>>1)-1?(i>>1)-u:u,a.isubn(s)):s=0,r[o]=s,a.iushrn(1)}return r},n.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,a=0;e.cmpn(-i)>0||t.cmpn(-a)>0;){var o,s,u=e.andln(3)+i&3,c=t.andln(3)+a&3;3===u&&(u=-1),3===c&&(c=-1),o=0==(1&u)?0:3!==(r=e.andln(7)+i&7)&&5!==r||2!==c?u:-u,n[0].push(o),s=0==(1&c)?0:3!==(r=t.andln(7)+a&7)&&5!==r||2!==u?c:-c,n[1].push(s),2*i===o+1&&(i=1-i),2*a===s+1&&(a=1-a),e.iushrn(1),t.iushrn(1)}return n},n.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new mn(e,"hex","le")}})),tc=ec.getNAF,nc=ec.getJSF,rc=ec.assert;function ic(e,t){this.type=e,this.p=new mn(t.p,16),this.red=t.prime?mn.red(t.prime):mn.mont(this.p),this.zero=new mn(0).toRed(this.red),this.one=new mn(1).toRed(this.red),this.two=new mn(2).toRed(this.red),this.n=t.n&&new mn(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var ac=ic;function oc(e,t){this.curve=e,this.type=t,this.precomputed=null}ic.prototype.point=function(){throw new Error("Not implemented")},ic.prototype.validate=function(){throw new Error("Not implemented")},ic.prototype._fixedNafMul=function(e,t){rc(e.precomputed);var n=e._getDoubles(),r=tc(t,1,this._bitLength),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;var a,o,s=[];for(a=0;a<r.length;a+=n.step){o=0;for(var u=a+n.step-1;u>=a;u--)o=(o<<1)+r[u];s.push(o)}for(var c=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=i;d>0;d--){for(a=0;a<s.length;a++)(o=s[a])===d?l=l.mixedAdd(n.points[a]):o===-d&&(l=l.mixedAdd(n.points[a].neg()));c=c.add(l)}return c.toP()},ic.prototype._wnafMul=function(e,t){var n=4,r=e._getNAFPoints(n);n=r.wnd;for(var i=r.points,a=tc(t,n,this._bitLength),o=this.jpoint(null,null,null),s=a.length-1;s>=0;s--){for(var u=0;s>=0&&0===a[s];s--)u++;if(s>=0&&u++,o=o.dblp(u),s<0)break;var c=a[s];rc(0!==c),o="affine"===e.type?c>0?o.mixedAdd(i[c-1>>1]):o.mixedAdd(i[-c-1>>1].neg()):c>0?o.add(i[c-1>>1]):o.add(i[-c-1>>1].neg())}return"affine"===e.type?o.toP():o},ic.prototype._wnafMulAdd=function(e,t,n,r,i){var a,o,s,u=this._wnafT1,c=this._wnafT2,l=this._wnafT3,d=0;for(a=0;a<r;a++){var f=(s=t[a])._getNAFPoints(e);u[a]=f.wnd,c[a]=f.points}for(a=r-1;a>=1;a-=2){var p=a-1,h=a;if(1===u[p]&&1===u[h]){var m=[t[p],null,null,t[h]];0===t[p].y.cmp(t[h].y)?(m[1]=t[p].add(t[h]),m[2]=t[p].toJ().mixedAdd(t[h].neg())):0===t[p].y.cmp(t[h].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[h]),m[2]=t[p].add(t[h].neg())):(m[1]=t[p].toJ().mixedAdd(t[h]),m[2]=t[p].toJ().mixedAdd(t[h].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=nc(n[p],n[h]);for(d=Math.max(g[0].length,d),l[p]=new Array(d),l[h]=new Array(d),o=0;o<d;o++){var b=0|g[0][o],v=0|g[1][o];l[p][o]=y[3*(b+1)+(v+1)],l[h][o]=0,c[p]=m}}else l[p]=tc(n[p],u[p],this._bitLength),l[h]=tc(n[h],u[h],this._bitLength),d=Math.max(l[p].length,d),d=Math.max(l[h].length,d)}var w=this.jpoint(null,null,null),T=this._wnafT4;for(a=d;a>=0;a--){for(var A=0;a>=0;){var E=!0;for(o=0;o<r;o++)T[o]=0|l[o][a],0!==T[o]&&(E=!1);if(!E)break;A++,a--}if(a>=0&&A++,w=w.dblp(A),a<0)break;for(o=0;o<r;o++){var _=T[o];0!==_&&(_>0?s=c[o][_-1>>1]:_<0&&(s=c[o][-_-1>>1].neg()),w="affine"===s.type?w.mixedAdd(s):w.add(s))}}for(a=0;a<r;a++)c[a]=null;return i?w:w.toP()},ic.BasePoint=oc,oc.prototype.eq=function(){throw new Error("Not implemented")},oc.prototype.validate=function(){return this.curve.validate(this)},ic.prototype.decodePoint=function(e,t){e=ec.toArray(e,t);var n=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*n)return 6===e[0]?rc(e[e.length-1]%2==0):7===e[0]&&rc(e[e.length-1]%2==1),this.point(e.slice(1,1+n),e.slice(1+n,1+2*n));if((2===e[0]||3===e[0])&&e.length-1===n)return this.pointFromX(e.slice(1,1+n),3===e[0]);throw new Error("Unknown point format")},oc.prototype.encodeCompressed=function(e){return this.encode(e,!0)},oc.prototype._encode=function(e){var t=this.curve.p.byteLength(),n=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",t))},oc.prototype.encode=function(e,t){return ec.encode(this._encode(t),e)},oc.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},oc.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},oc.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<t;i+=e){for(var a=0;a<e;a++)r=r.dbl();n.push(r)}return{step:e,points:n}},oc.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],n=(1<<e)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)t[i]=t[i-1].add(r);return{wnd:e,points:t}},oc.prototype._getBeta=function(){return null},oc.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t};var sc=Yu((function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}})),uc=ec.assert;function cc(e){ac.call(this,"short",e),this.a=new mn(e.a,16).toRed(this.red),this.b=new mn(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}sc(cc,ac);var lc=cc;function dc(e,t,n,r){ac.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new mn(t,16),this.y=new mn(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function fc(e,t,n,r){ac.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new mn(0)):(this.x=new mn(t,16),this.y=new mn(n,16),this.z=new mn(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}cc.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new mn(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new mn(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?n=i[0]:(n=i[1],uc(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new mn(e.a,16),b:new mn(e.b,16)}})):this._getEndoBasis(n)}}},cc.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:mn.mont(e),n=new mn(2).toRed(t).redInvm(),r=n.redNeg(),i=new mn(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},cc.prototype._getEndoBasis=function(e){for(var t,n,r,i,a,o,s,u,c,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,f=this.n.clone(),p=new mn(1),h=new mn(0),m=new mn(0),y=new mn(1),g=0;0!==d.cmpn(0);){var b=f.div(d);u=f.sub(b.mul(d)),c=m.sub(b.mul(p));var v=y.sub(b.mul(h));if(!r&&u.cmp(l)<0)t=s.neg(),n=p,r=u.neg(),i=c;else if(r&&2==++g)break;s=u,f=d,d=u,m=p,p=c,y=h,h=v}a=u.neg(),o=c;var w=r.sqr().add(i.sqr());return a.sqr().add(o.sqr()).cmp(w)>=0&&(a=t,o=n),r.negative&&(r=r.neg(),i=i.neg()),a.negative&&(a=a.neg(),o=o.neg()),[{a:r,b:i},{a:a,b:o}]},cc.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),a=n.b.neg().mul(e).divRound(this.n),o=i.mul(n.a),s=a.mul(r.a),u=i.mul(n.b),c=a.mul(r.b);return{k1:e.sub(o).sub(s),k2:u.add(c).neg()}},cc.prototype.pointFromX=function(e,t){(e=new mn(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var i=r.fromRed().isOdd();return(t&&!i||!t&&i)&&(r=r.redNeg()),this.point(e,r)},cc.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},cc.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,a=0;a<e.length;a++){var o=this._endoSplit(t[a]),s=e[a],u=s._getBeta();o.k1.negative&&(o.k1.ineg(),s=s.neg(!0)),o.k2.negative&&(o.k2.ineg(),u=u.neg(!0)),r[2*a]=s,r[2*a+1]=u,i[2*a]=o.k1,i[2*a+1]=o.k2}for(var c=this._wnafMulAdd(1,r,i,2*a,n),l=0;l<2*a;l++)r[l]=null,i[l]=null;return c},sc(dc,ac.BasePoint),cc.prototype.point=function(e,t,n){return new dc(this,e,t,n)},cc.prototype.pointFromJSON=function(e,t){return dc.fromJSON(this,e,t)},dc.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var n=this.curve,r=function(e){return n.point(e.x.redMul(n.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(r)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(r)}}}return t}},dc.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},dc.fromJSON=function(e,t,n){"string"==typeof t&&(t=JSON.parse(t));var r=e.point(t[0],t[1],n);if(!t[2])return r;function i(t){return e.point(t[0],t[1],n)}var a=t[2];return r.precomputed={beta:null,doubles:a.doubles&&{step:a.doubles.step,points:[r].concat(a.doubles.points.map(i))},naf:a.naf&&{wnd:a.naf.wnd,points:[r].concat(a.naf.points.map(i))}},r},dc.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},dc.prototype.isInfinity=function(){return this.inf},dc.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},dc.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),a=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,o)},dc.prototype.getX=function(){return this.x.fromRed()},dc.prototype.getY=function(){return this.y.fromRed()},dc.prototype.mul=function(e){return e=new mn(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},dc.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},dc.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},dc.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},dc.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},dc.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},sc(fc,ac.BasePoint),cc.prototype.jpoint=function(e,t,n){return new fc(this,e,t,n)},fc.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},fc.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},fc.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),a=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(n.redMul(this.z)),s=r.redSub(i),u=a.redSub(o);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),l=c.redMul(s),d=r.redMul(c),f=u.redSqr().redIAdd(l).redISub(d).redISub(d),p=u.redMul(d.redISub(f)).redISub(a.redMul(l)),h=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,p,h)},fc.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,a=e.y.redMul(t).redMul(this.z),o=n.redSub(r),s=i.redSub(a);if(0===o.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=o.redSqr(),c=u.redMul(o),l=n.redMul(u),d=s.redSqr().redIAdd(c).redISub(l).redISub(l),f=s.redMul(l.redISub(d)).redISub(i.redMul(c)),p=this.z.redMul(o);return this.curve.jpoint(d,f,p)},fc.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t<e;t++)n=n.dbl();return n}var r=this.curve.a,i=this.curve.tinv,a=this.x,o=this.y,s=this.z,u=s.redSqr().redSqr(),c=o.redAdd(o);for(t=0;t<e;t++){var l=a.redSqr(),d=c.redSqr(),f=d.redSqr(),p=l.redAdd(l).redIAdd(l).redIAdd(r.redMul(u)),h=a.redMul(d),m=p.redSqr().redISub(h.redAdd(h)),y=h.redISub(m),g=p.redMul(y);g=g.redIAdd(g).redISub(f);var b=c.redMul(s);t+1<e&&(u=u.redMul(f)),a=m,s=b,c=g}return this.curve.jpoint(a,c.redMul(i),s)},fc.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},fc.prototype._zeroDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r),u=s.redSqr().redISub(o).redISub(o),c=a.redIAdd(a);c=(c=c.redIAdd(c)).redIAdd(c),e=u,t=s.redMul(o.redISub(u)).redISub(c),n=this.y.redAdd(this.y)}else{var l=this.x.redSqr(),d=this.y.redSqr(),f=d.redSqr(),p=this.x.redAdd(d).redSqr().redISub(l).redISub(f);p=p.redIAdd(p);var h=l.redAdd(l).redIAdd(l),m=h.redSqr(),y=f.redIAdd(f);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(p).redISub(p),t=h.redMul(p.redISub(e)).redISub(y),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(e,t,n)},fc.prototype._threeDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),u=s.redSqr().redISub(o).redISub(o);e=u;var c=a.redIAdd(a);c=(c=c.redIAdd(c)).redIAdd(c),t=s.redMul(o.redISub(u)).redISub(c),n=this.y.redAdd(this.y)}else{var l=this.z.redSqr(),d=this.y.redSqr(),f=this.x.redMul(d),p=this.x.redSub(l).redMul(this.x.redAdd(l));p=p.redAdd(p).redIAdd(p);var h=f.redIAdd(f),m=(h=h.redIAdd(h)).redAdd(h);e=p.redSqr().redISub(m),n=this.y.redAdd(this.z).redSqr().redISub(d).redISub(l);var y=d.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=p.redMul(h.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,n)},fc.prototype._dbl=function(){var e=this.curve.a,t=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),a=t.redSqr(),o=n.redSqr(),s=a.redAdd(a).redIAdd(a).redIAdd(e.redMul(i)),u=t.redAdd(t),c=(u=u.redIAdd(u)).redMul(o),l=s.redSqr().redISub(c.redAdd(c)),d=c.redISub(l),f=o.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var p=s.redMul(d).redISub(f),h=n.redAdd(n).redMul(r);return this.curve.jpoint(l,p,h)},fc.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr(),r=t.redSqr(),i=e.redAdd(e).redIAdd(e),a=i.redSqr(),o=this.x.redAdd(t).redSqr().redISub(e).redISub(r),s=(o=(o=(o=o.redIAdd(o)).redAdd(o).redIAdd(o)).redISub(a)).redSqr(),u=r.redIAdd(r);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var c=i.redIAdd(o).redSqr().redISub(a).redISub(s).redISub(u),l=t.redMul(c);l=(l=l.redIAdd(l)).redIAdd(l);var d=this.x.redMul(s).redISub(l);d=(d=d.redIAdd(d)).redIAdd(d);var f=this.y.redMul(c.redMul(u.redISub(c)).redISub(o.redMul(s)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var p=this.z.redAdd(o).redSqr().redISub(n).redISub(s);return this.curve.jpoint(d,f,p)},fc.prototype.mul=function(e,t){return e=new mn(e,t),this.curve._wnafMul(this,e)},fc.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),n=e.z.redSqr();if(0!==this.x.redMul(n).redISub(e.x.redMul(t)).cmpn(0))return!1;var r=t.redMul(this.z),i=n.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(r)).cmpn(0)},fc.prototype.eqXToP=function(e){var t=this.z.redSqr(),n=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(n))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(t);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},fc.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},fc.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var pc=Yu((function(e,t){var n=t;n.base=ac,n.short=lc,n.mont=null,n.edwards=null})),hc=Yu((function(e,t){var n,r=t,i=ec.assert;function a(e){"short"===e.type?this.curve=new pc.short(e):"edwards"===e.type?this.curve=new pc.edwards(e):this.curve=new pc.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function o(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){var n=new a(t);return Object.defineProperty(r,e,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=a,o("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:Ju.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),o("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:Ju.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),o("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:Ju.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),o("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:Ju.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),o("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:Ju.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),o("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Ju.sha256,gRed:!1,g:["9"]}),o("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Ju.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=null.crash()}catch(e){n=void 0}o("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:Ju.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})}));function mc(e){if(!(this instanceof mc))return new mc(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=Zu.toArray(e.entropy,e.entropyEnc||"hex"),n=Zu.toArray(e.nonce,e.nonceEnc||"hex"),r=Zu.toArray(e.pers,e.persEnc||"hex");Qu(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}var yc=mc;mc.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},mc.prototype._hmac=function(){return new Ju.hmac(this.hash,this.K)},mc.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},mc.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=Zu.toArray(e,t),n=Zu.toArray(n,r),Qu(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},mc.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=Zu.toArray(n,r||"hex"),this._update(n));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var a=i.slice(0,e);return this._update(n),this._reseed++,Zu.encode(a,t)};var gc=ec.assert;function bc(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var vc=bc;bc.fromPublic=function(e,t,n){return t instanceof bc?t:new bc(e,{pub:t,pubEnc:n})},bc.fromPrivate=function(e,t,n){return t instanceof bc?t:new bc(e,{priv:t,privEnc:n})},bc.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},bc.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},bc.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},bc.prototype._importPrivate=function(e,t){this.priv=new mn(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},bc.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?gc(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||gc(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},bc.prototype.derive=function(e){return e.validate()||gc(e.validate(),"public point not validated"),e.mul(this.priv).getX()},bc.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},bc.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},bc.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var wc=ec.assert;function Tc(e,t){if(e instanceof Tc)return e;this._importDER(e,t)||(wc(e.r&&e.s,"Signature without r or s"),this.r=new mn(e.r,16),this.s=new mn(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var Ac=Tc;function Ec(){this.place=0}function _c(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;for(var i=0,a=0,o=t.place;a<r;a++,o++)i<<=8,i|=e[o],i>>>=0;return!(i<=127)&&(t.place=o,i)}function Ic(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t<n;)t++;return 0===t?e:e.slice(t)}function Rc(e,t){if(t<128)e.push(t);else{var n=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}Tc.prototype._importDER=function(e,t){e=ec.toArray(e,t);var n=new Ec;if(48!==e[n.place++])return!1;var r=_c(e,n);if(!1===r)return!1;if(r+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var i=_c(e,n);if(!1===i)return!1;var a=e.slice(n.place,i+n.place);if(n.place+=i,2!==e[n.place++])return!1;var o=_c(e,n);if(!1===o)return!1;if(e.length!==o+n.place)return!1;var s=e.slice(n.place,o+n.place);if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}return this.r=new mn(a),this.s=new mn(s),this.recoveryParam=null,!0},Tc.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=Ic(t),n=Ic(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];Rc(r,t.length),(r=r.concat(t)).push(2),Rc(r,n.length);var i=r.concat(n),a=[48];return Rc(a,i.length),a=a.concat(i),ec.encode(a,e)};var Cc=function(){throw new Error("unsupported")},Oc=ec.assert;function kc(e){if(!(this instanceof kc))return new kc(e);"string"==typeof e&&(Oc(Object.prototype.hasOwnProperty.call(hc,e),"Unknown curve "+e),e=hc[e]),e instanceof hc.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var Sc=kc;kc.prototype.keyPair=function(e){return new vc(this,e)},kc.prototype.keyFromPrivate=function(e,t){return vc.fromPrivate(this,e,t)},kc.prototype.keyFromPublic=function(e,t){return vc.fromPublic(this,e,t)},kc.prototype.genKeyPair=function(e){e||(e={});for(var t=new yc({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||Cc(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),r=this.n.sub(new mn(2));;){var i=new mn(t.generate(n));if(!(i.cmp(r)>0))return i.iaddn(1),this.keyFromPrivate(i)}},kc.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},kc.prototype.sign=function(e,t,n,r){"object"==typeof n&&(r=n,n=null),r||(r={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new mn(e,16));for(var i=this.n.byteLength(),a=t.getPrivate().toArray("be",i),o=e.toArray("be",i),s=new yc({hash:this.hash,entropy:a,nonce:o,pers:r.pers,persEnc:r.persEnc||"utf8"}),u=this.n.sub(new mn(1)),c=0;;c++){var l=r.k?r.k(c):new mn(s.generate(this.n.byteLength()));if(!((l=this._truncateToN(l,!0)).cmpn(1)<=0||l.cmp(u)>=0)){var d=this.g.mul(l);if(!d.isInfinity()){var f=d.getX(),p=f.umod(this.n);if(0!==p.cmpn(0)){var h=l.invm(this.n).mul(p.mul(t.getPrivate()).iadd(e));if(0!==(h=h.umod(this.n)).cmpn(0)){var m=(d.getY().isOdd()?1:0)|(0!==f.cmp(p)?2:0);return r.canonical&&h.cmp(this.nh)>0&&(h=this.n.sub(h),m^=1),new Ac({r:p,s:h,recoveryParam:m})}}}}}},kc.prototype.verify=function(e,t,n,r){e=this._truncateToN(new mn(e,16)),n=this.keyFromPublic(n,r);var i=(t=new Ac(t,"hex")).r,a=t.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var o,s=a.invm(this.n),u=s.mul(e).umod(this.n),c=s.mul(i).umod(this.n);return this.curve._maxwellTrick?!(o=this.g.jmulAdd(u,n.getPublic(),c)).isInfinity()&&o.eqXToP(i):!(o=this.g.mulAdd(u,n.getPublic(),c)).isInfinity()&&0===o.getX().umod(this.n).cmp(i)},kc.prototype.recoverPubKey=function(e,t,n,r){Oc((3&n)===n,"The recovery param is more than two bits"),t=new Ac(t,r);var i=this.n,a=new mn(e),o=t.r,s=t.s,u=1&n,c=n>>1;if(o.cmp(this.curve.p.umod(this.curve.n))>=0&&c)throw new Error("Unable to find sencond key candinate");o=c?this.curve.pointFromX(o.add(this.curve.n),u):this.curve.pointFromX(o,u);var l=t.r.invm(i),d=i.sub(a).mul(l).umod(i),f=s.mul(l).umod(i);return this.g.mulAdd(d,o,f)},kc.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new Ac(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var a;try{a=this.recoverPubKey(e,t,i)}catch(e){continue}if(a.eq(n))return i}throw new Error("Unable to find valid recovery factor")};var Nc=Yu((function(e,t){var n=t;n.version="6.5.4",n.utils=ec,n.rand=function(){throw new Error("unsupported")},n.curve=pc,n.curves=hc,n.ec=Sc,n.eddsa=null})),xc=Nc.ec;const Pc=new In("signing-key/5.7.0");let Mc=null;function Bc(){return Mc||(Mc=new xc("secp256k1")),Mc}class Dc{constructor(e){Tr(this,"curve","secp256k1"),Tr(this,"privateKey",Un(e)),32!==qn(this.privateKey)&&Pc.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=Bc().keyFromPrivate(Pn(this.privateKey));Tr(this,"publicKey","0x"+t.getPublic(!1,"hex")),Tr(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),Tr(this,"_isSigningKey",!0)}_addPoint(e){const t=Bc().keyFromPublic(Pn(this.publicKey)),n=Bc().keyFromPublic(Pn(e));return"0x"+t.pub.add(n.pub).encodeCompressed("hex")}signDigest(e){const t=Bc().keyFromPrivate(Pn(this.privateKey)),n=Pn(e);32!==n.length&&Pc.throwArgumentError("bad digest length","digest",e);const r=t.sign(n,{canonical:!0});return Wn({recoveryParam:r.recoveryParam,r:Vn("0x"+r.r.toString(16),32),s:Vn("0x"+r.s.toString(16),32)})}computeSharedSecret(e){const t=Bc().keyFromPrivate(Pn(this.privateKey)),n=Bc().keyFromPublic(Pn(Lc(e)));return Vn("0x"+t.derive(n.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function Fc(e,t){const n=Wn(t),r={r:Pn(n.r),s:Pn(n.s)};return"0x"+Bc().recoverPubKey(Pn(e),r,n.recoveryParam).encode("hex",!1)}function Lc(e,t){const n=Pn(e);if(32===n.length){const e=new Dc(n);return t?"0x"+Bc().keyFromPrivate(n).getPublic(!0,"hex"):e.publicKey}return 33===n.length?t?Un(n):"0x"+Bc().keyFromPublic(n).getPublic(!1,"hex"):65===n.length?t?"0x"+Bc().keyFromPublic(n).getPublic(!0,"hex"):Un(n):Pc.throwArgumentError("invalid public or private key","key","[REDACTED]")}var Uc=Object.freeze({__proto__:null,SigningKey:Dc,computePublicKey:Lc,recoverPublicKey:Fc});const qc=new In("transactions/5.7.0");var jc;function Gc(e){return"0x"===e?null:_i(e)}function Hc(e){return"0x"===e?Hi:tr.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(jc||(jc={}));const zc=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],Vc={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function Wc(e){return _i(jn(ui(jn(Lc(e),1)),12))}function Kc(e,t){return Wc(Fc(Pn(e),t))}function Xc(e,t){const n=Bn(tr.from(e).toHexString());return n.length>32&&qc.throwArgumentError("invalid length for "+t,"transaction:"+t,e),n}function Jc(e,t){return{address:_i(e),storageKeys:(t||[]).map(((t,n)=>(32!==qn(t)&&qc.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase())))}}function Yc(e){if(Array.isArray(e))return e.map(((e,t)=>Array.isArray(e)?(e.length>2&&qc.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),Jc(e[0],e[1])):Jc(e.address,e.storageKeys)));const t=Object.keys(e).map((t=>{const n=e[t].reduce(((e,t)=>(e[t]=!0,e)),{});return Jc(t,Object.keys(n).sort())}));return t.sort(((e,t)=>e.address.localeCompare(t.address))),t}function Qc(e){return Yc(e).map((e=>[e.address,e.storageKeys]))}function $c(e,t){if(null!=e.gasPrice){const t=tr.from(e.gasPrice),n=tr.from(e.maxFeePerGas||0);t.eq(n)||qc.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:n})}const n=[Xc(e.chainId||0,"chainId"),Xc(e.nonce||0,"nonce"),Xc(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),Xc(e.maxFeePerGas||0,"maxFeePerGas"),Xc(e.gasLimit||0,"gasLimit"),null!=e.to?_i(e.to):"0x",Xc(e.value||0,"value"),e.data||"0x",Qc(e.accessList||[])];if(t){const e=Wn(t);n.push(Xc(e.recoveryParam,"recoveryParam")),n.push(Bn(e.r)),n.push(Bn(e.s))}return Gn(["0x02",hi(n)])}function Zc(e,t){const n=[Xc(e.chainId||0,"chainId"),Xc(e.nonce||0,"nonce"),Xc(e.gasPrice||0,"gasPrice"),Xc(e.gasLimit||0,"gasLimit"),null!=e.to?_i(e.to):"0x",Xc(e.value||0,"value"),e.data||"0x",Qc(e.accessList||[])];if(t){const e=Wn(t);n.push(Xc(e.recoveryParam,"recoveryParam")),n.push(Bn(e.r)),n.push(Bn(e.s))}return Gn(["0x01",hi(n)])}function el(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&qc.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){_r(e,Vc);const n=[];zc.forEach((function(t){let r=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),r=Pn(Un(r,i)),t.length&&r.length!==t.length&&r.length>0&&qc.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r),t.maxLength&&(r=Bn(r),r.length>t.maxLength&&qc.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r)),n.push(Un(r))}));let r=0;if(null!=e.chainId?(r=e.chainId,"number"!=typeof r&&qc.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!Sn(t)&&t.v>28&&(r=Math.floor((t.v-35)/2)),0!==r&&(n.push(Un(r)),n.push("0x"),n.push("0x")),!t)return hi(n);const i=Wn(t);let a=27+i.recoveryParam;return 0!==r?(n.pop(),n.pop(),n.pop(),a+=2*r+8,i.v>28&&i.v!==a&&qc.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==a&&qc.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),n.push(Un(a)),n.push(Bn(Pn(i.r))),n.push(Bn(Pn(i.s))),hi(n)}(e,t);switch(e.type){case 1:return Zc(e,t);case 2:return $c(e,t)}return qc.throwError(`unsupported transaction type: ${e.type}`,In.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function tl(e,t,n){try{const n=Hc(t[0]).toNumber();if(0!==n&&1!==n)throw new Error("bad recid");e.v=n}catch(e){qc.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=Vn(t[1],32),e.s=Vn(t[2],32);try{const t=ui(n(e));e.from=Kc(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}function nl(e){const t=Pn(e);if(t[0]>127)return function(e){const t=gi(e);9!==t.length&&6!==t.length&&qc.throwArgumentError("invalid raw transaction","rawTransaction",e);const n={nonce:Hc(t[0]).toNumber(),gasPrice:Hc(t[1]),gasLimit:Hc(t[2]),to:Gc(t[3]),value:Hc(t[4]),data:t[5],chainId:0};if(6===t.length)return n;try{n.v=tr.from(t[6]).toNumber()}catch(e){return n}if(n.r=Vn(t[7],32),n.s=Vn(t[8],32),tr.from(n.r).isZero()&&tr.from(n.s).isZero())n.chainId=n.v,n.v=0;else{n.chainId=Math.floor((n.v-35)/2),n.chainId<0&&(n.chainId=0);let r=n.v-27;const i=t.slice(0,6);0!==n.chainId&&(i.push(Un(n.chainId)),i.push("0x"),i.push("0x"),r-=2*n.chainId+8);const a=ui(hi(i));try{n.from=Kc(a,{r:Un(n.r),s:Un(n.s),recoveryParam:r})}catch(e){}n.hash=ui(e)}return n.type=null,n}(t);switch(t[0]){case 1:return function(e){const t=gi(e.slice(1));8!==t.length&&11!==t.length&&qc.throwArgumentError("invalid component count for transaction type: 1","payload",Un(e));const n={type:1,chainId:Hc(t[0]).toNumber(),nonce:Hc(t[1]).toNumber(),gasPrice:Hc(t[2]),gasLimit:Hc(t[3]),to:Gc(t[4]),value:Hc(t[5]),data:t[6],accessList:Yc(t[7])};return 8===t.length||(n.hash=ui(e),tl(n,t.slice(8),Zc)),n}(t);case 2:return function(e){const t=gi(e.slice(1));9!==t.length&&12!==t.length&&qc.throwArgumentError("invalid component count for transaction type: 2","payload",Un(e));const n=Hc(t[2]),r=Hc(t[3]),i={type:2,chainId:Hc(t[0]).toNumber(),nonce:Hc(t[1]).toNumber(),maxPriorityFeePerGas:n,maxFeePerGas:r,gasPrice:null,gasLimit:Hc(t[4]),to:Gc(t[5]),value:Hc(t[6]),data:t[7],accessList:Yc(t[8])};return 9===t.length||(i.hash=ui(e),tl(i,t.slice(9),$c)),i}(t)}return qc.throwError(`unsupported transaction type: ${t[0]}`,In.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}var rl=Object.freeze({__proto__:null,get TransactionTypes(){return jc},accessListify:Yc,computeAddress:Wc,parse:nl,recoverAddress:Kc,serialize:el});var il=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const al=new In("contracts/5.7.0"),ol={chainId:!0,data:!0,from:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0,customData:!0,ccipReadEnabled:!0};function sl(e,t){return il(this,void 0,void 0,(function*(){const n=yield t;"string"!=typeof n&&al.throwArgumentError("invalid address or ENS name","name",n);try{return _i(n)}catch(e){}e||al.throwError("a provider or signer is needed to resolve ENS names",In.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&al.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r}))}function ul(e,t,n){return il(this,void 0,void 0,(function*(){return Array.isArray(n)?yield Promise.all(n.map(((n,r)=>ul(e,Array.isArray(t)?t[r]:t[n.name],n)))):"address"===n.type?yield sl(e,t):"tuple"===n.type?yield ul(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map((t=>ul(e,t,n.arrayChildren)))):Promise.reject(al.makeError("invalid value for array",In.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t}))}function cl(e,t,n){return il(this,void 0,void 0,(function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=Ir(n.pop())),al.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from?r.from=Er({override:sl(e.signer,r.from),signer:e.signer.getAddress()}).then((e=>il(this,void 0,void 0,(function*(){return _i(e.signer)!==e.override&&al.throwError("Contract with a Signer cannot override from",In.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})))):r.from=e.signer.getAddress():r.from&&(r.from=sl(e.provider,r.from));const i=yield Er({args:ul(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:Er(r)||{}}),a=e.interface.encodeFunctionData(t,i.args),o={data:a,to:i.address},s=i.overrides;if(null!=s.nonce&&(o.nonce=tr.from(s.nonce).toNumber()),null!=s.gasLimit&&(o.gasLimit=tr.from(s.gasLimit)),null!=s.gasPrice&&(o.gasPrice=tr.from(s.gasPrice)),null!=s.maxFeePerGas&&(o.maxFeePerGas=tr.from(s.maxFeePerGas)),null!=s.maxPriorityFeePerGas&&(o.maxPriorityFeePerGas=tr.from(s.maxPriorityFeePerGas)),null!=s.from&&(o.from=s.from),null!=s.type&&(o.type=s.type),null!=s.accessList&&(o.accessList=Yc(s.accessList)),null==o.gasLimit&&null!=t.gas){let e=21e3;const n=Pn(a);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);o.gasLimit=tr.from(t.gas).add(e)}if(s.value){const e=tr.from(s.value);e.isZero()||t.payable||al.throwError("non-payable method cannot override value",In.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),o.value=e}s.customData&&(o.customData=Ir(s.customData)),s.ccipReadEnabled&&(o.ccipReadEnabled=!!s.ccipReadEnabled),delete r.nonce,delete r.gasLimit,delete r.gasPrice,delete r.from,delete r.value,delete r.type,delete r.accessList,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.customData,delete r.ccipReadEnabled;const u=Object.keys(r).filter((e=>null!=r[e]));return u.length&&al.throwError(`cannot override ${u.map((e=>JSON.stringify(e))).join(",")}`,In.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),o}))}function ll(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then((t=>(t.events=t.logs.map((n=>{let r=kr(n),i=null;try{i=e.interface.parseLog(n)}catch(e){}return i&&(r.args=i.args,r.decode=(t,n)=>e.interface.decodeEventLog(i.eventFragment,t,n),r.event=i.name,r.eventSignature=i.signature),r.removeListener=()=>e.provider,r.getBlock=()=>e.provider.getBlock(t.blockHash),r.getTransaction=()=>e.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>Promise.resolve(t),r})),t)))}function dl(e,t,n){const r=e.signer||e.provider;return function(...i){return il(this,void 0,void 0,(function*(){let a;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=Ir(i.pop());null!=e.blockTag&&(a=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(a));const o=yield cl(e,t,i),s=yield r.call(o,a);try{let r=e.interface.decodeFunctionResult(t,s);return n&&1===t.outputs.length&&(r=r[0]),r}catch(t){throw t.code===In.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=o),t}}))}}function fl(e,t,n){return t.constant?dl(e,t,n):function(e,t){return function(...n){return il(this,void 0,void 0,(function*(){e.signer||al.throwError("sending a transaction requires a signer",In.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield cl(e,t,n),i=yield e.signer.sendTransaction(r);return ll(e,i),i}))}}(e,t)}function pl(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map((e=>Array.isArray(e)?e.join("|"):e)).join(":"):""):"*"}let hl=class{constructor(e,t){Tr(this,"tag",e),Tr(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter((n=>!(!t&&n.listener===e)||(t=!0,!1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map((e=>e.listener))}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter((t=>{const n=e.slice();return setTimeout((()=>{t.listener.apply(this,n)}),0),!t.once})),t}prepareEvent(e){}getEmit(e){return[e]}},ml=class extends hl{constructor(){super("error",null)}},yl=class extends hl{constructor(e,t,n,r){const i={address:e};let a=t.getEventTopic(n);r?(a!==r[0]&&al.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[a],super(pl(i),i),Tr(this,"address",e),Tr(this,"interface",t),Tr(this,"fragment",n)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=ri(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}},gl=class extends hl{constructor(e,t){super("*",{address:e}),Tr(this,"address",e),Tr(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,n)=>this.interface.decodeEventLog(t.eventFragment,e,n),e.args=t.args}catch(e){}}},bl=class{constructor(e,t,n){Tr(this,"interface",Ar(new.target,"getInterface")(t)),null==n?(Tr(this,"provider",null),Tr(this,"signer",null)):Xo.isSigner(n)?(Tr(this,"provider",n.provider||null),Tr(this,"signer",n)):Ho.isProvider(n)?(Tr(this,"provider",n),Tr(this,"signer",null)):al.throwArgumentError("invalid signer or provider","signerOrProvider",n),Tr(this,"callStatic",{}),Tr(this,"estimateGas",{}),Tr(this,"functions",{}),Tr(this,"populateTransaction",{}),Tr(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach((t=>{const n=this.interface.events[t];Tr(this.filters,t,((...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(n,e)}))),e[n.name]||(e[n.name]=[]),e[n.name].push(t)})),Object.keys(e).forEach((t=>{const n=e[t];1===n.length?Tr(this.filters,t,this.filters[n[0]]):al.warn(`Duplicate definition of ${t} (${n.join(", ")})`)}))}if(Tr(this,"_runningEvents",{}),Tr(this,"_wrappedEmits",{}),null==e&&al.throwArgumentError("invalid contract address or ENS name","addressOrName",e),Tr(this,"address",e),this.provider)Tr(this,"resolvedAddress",sl(this.provider,e));else try{Tr(this,"resolvedAddress",Promise.resolve(_i(e)))}catch(e){al.throwError("provider is required to use ENS name as contract address",In.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch((e=>{}));const r={},i={};Object.keys(this.interface.functions).forEach((e=>{const t=this.interface.functions[e];if(i[e])al.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const n=t.name;r[`%${n}`]||(r[`%${n}`]=[]),r[`%${n}`].push(e)}null==this[e]&&Tr(this,e,fl(this,t,!0)),null==this.functions[e]&&Tr(this.functions,e,fl(this,t,!1)),null==this.callStatic[e]&&Tr(this.callStatic,e,dl(this,t,!0)),null==this.populateTransaction[e]&&Tr(this.populateTransaction,e,function(e,t){return function(...n){return cl(e,t,n)}}(this,t)),null==this.estimateGas[e]&&Tr(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return il(this,void 0,void 0,(function*(){n||al.throwError("estimate require a provider or signer",In.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield cl(e,t,r);return yield n.estimateGas(i)}))}}(this,t))}})),Object.keys(r).forEach((e=>{const t=r[e];if(t.length>1)return;e=e.substring(1);const n=t[0];try{null==this[e]&&Tr(this,e,this[n])}catch(e){}null==this.functions[e]&&Tr(this.functions,e,this.functions[n]),null==this.callStatic[e]&&Tr(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&Tr(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&Tr(this.estimateGas,e,this.estimateGas[n])}))}static getContractAddress(e){return Ci(e)}static getInterface(e){return Lo.isInterface(e)?e:new Lo(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then((()=>this)):this._deployedPromise=this.provider.getCode(this.address,e).then((e=>("0x"===e&&al.throwError("contract not deployed",In.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(e){this.signer||al.throwError("sending a transactions require a signer",In.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=Ir(e||{});return["from","to"].forEach((function(e){null!=t[e]&&al.throwError("cannot override "+e,In.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(t)))}connect(e){"string"==typeof e&&(e=new Jo(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&Tr(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return Bo.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new ml);if("event"===e)return this._normalizeRunningEvent(new hl("event",null));if("*"===e)return this._normalizeRunningEvent(new gl(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new yl(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const n=this.interface.getEvent(t);return this._normalizeRunningEvent(new yl(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new hl(pl(t),t))}return this._normalizeRunningEvent(new gl(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,n){const r=kr(t);return r.removeListener=()=>{n&&(e.removeListener(n),this._checkRunningEvents(e))},r.getBlock=()=>this.provider.getBlock(t.blockHash),r.getTransaction=()=>this.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(r),r}_addEventListener(e,t,n){if(this.provider||al.throwError("events require a provider or a signer with a provider",In.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,n),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const n=n=>{let r=this._wrapEvent(e,n,t);if(null==r.decodeError)try{const t=e.getEmit(r);this.emit(e.filter,...t)}catch(e){r.decodeError=e.error}null!=e.filter&&this.emit("event",r),null!=r.decodeError&&this.emit("error",r.decodeError,r)};this._wrappedEmits[e.tag]=n,null!=e.filter&&this.provider.on(e.filter,n)}}queryFilter(e,t,n){const r=this._getRunningEvent(e),i=Ir(r.filter);return"string"==typeof t&&Fn(t,32)?(null!=n&&al.throwArgumentError("cannot specify toBlock with blockhash","toBlock",n),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=n?n:"latest"),this.provider.getLogs(i).then((e=>e.map((e=>this._wrapEvent(r,e,null)))))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const n=this._getRunningEvent(e),r=n.run(t)>0;return this._checkRunningEvents(n),r}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce(((e,t)=>e+this._runningEvents[t].listenerCount()),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach((t=>{e.push(t)}));return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const n=this._getRunningEvent(e);return n.removeListener(t),this._checkRunningEvents(n),this}removeListener(e,t){return this.off(e,t)}},vl=class extends bl{};class wl{constructor(e,t,n){let r=null;r="string"==typeof t?t:xn(t)?Un(t):t&&"string"==typeof t.object?t.object:"!","0x"!==r.substring(0,2)&&(r="0x"+r),(!Fn(r)||r.length%2)&&al.throwArgumentError("invalid bytecode","bytecode",t),n&&!Xo.isSigner(n)&&al.throwArgumentError("invalid signer","signer",n),Tr(this,"bytecode",r),Tr(this,"interface",Ar(new.target,"getInterface")(e)),Tr(this,"signer",n||null)}getDeployTransaction(...e){let t={};if(e.length===this.interface.deploy.inputs.length+1&&"object"==typeof e[e.length-1]){t=Ir(e.pop());for(const e in t)if(!ol[e])throw new Error("unknown transaction override "+e)}if(["data","from","to"].forEach((e=>{null!=t[e]&&al.throwError("cannot override "+e,In.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.value){tr.from(t.value).isZero()||this.interface.deploy.payable||al.throwError("non-payable constructor cannot override value",In.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:t.value})}return al.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor"),t.data=Un(Mn([this.bytecode,this.interface.encodeDeploy(e)])),t}deploy(...e){return il(this,void 0,void 0,(function*(){let t={};e.length===this.interface.deploy.inputs.length+1&&(t=e.pop()),al.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor");const n=yield ul(this.signer,e,this.interface.deploy.inputs);n.push(t);const r=this.getDeployTransaction(...n),i=yield this.signer.sendTransaction(r),a=Ar(this.constructor,"getContractAddress")(i),o=Ar(this.constructor,"getContract")(a,this.interface,this.signer);return ll(o,i),Tr(o,"deployTransaction",i),o}))}attach(e){return this.constructor.getContract(e,this.interface,this.signer)}connect(e){return new this.constructor(this.interface,this.bytecode,e)}static fromSolidity(e,t){null==e&&al.throwError("missing compiler output",In.errors.MISSING_ARGUMENT,{argument:"compilerOutput"}),"string"==typeof e&&(e=JSON.parse(e));const n=e.abi;let r=null;return e.bytecode?r=e.bytecode:e.evm&&e.evm.bytecode&&(r=e.evm.bytecode),new this(n,r,t)}static getInterface(e){return vl.getInterface(e)}static getContractAddress(e){return Ci(e)}static getContract(e,t,n){return new vl(e,t,n)}}class Tl{constructor(e){Tr(this,"alphabet",e),Tr(this,"base",e.length),Tr(this,"_alphabetMap",{}),Tr(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=Pn(e);if(0===t.length)return"";let n=[0];for(let e=0;e<t.length;++e){let r=t[e];for(let e=0;e<n.length;++e)r+=n[e]<<8,n[e]=r%this.base,r=r/this.base|0;for(;r>0;)n.push(r%this.base),r=r/this.base|0}let r="";for(let e=0;0===t[e]&&e<t.length-1;++e)r+=this._leader;for(let e=n.length-1;e>=0;--e)r+=this.alphabet[n[e]];return r}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let n=0;n<e.length;n++){let r=this._alphabetMap[e[n]];if(void 0===r)throw new Error("Non-base"+this.base+" character");let i=r;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let n=0;e[n]===this._leader&&n<e.length-1;++n)t.push(0);return Pn(new Uint8Array(t.reverse()))}}const Al=new Tl("abcdefghijklmnopqrstuvwxyz234567"),El=new Tl("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");var _l,Il=Object.freeze({__proto__:null,Base32:Al,Base58:El,BaseX:Tl});!function(e){e.sha256="sha256",e.sha512="sha512"}(_l||(_l={}));const Rl=new In("sha2/5.7.0");function Cl(e){return"0x"+Ju.ripemd160().update(Pn(e)).digest("hex")}function Ol(e){return"0x"+Ju.sha256().update(Pn(e)).digest("hex")}function kl(e){return"0x"+Ju.sha512().update(Pn(e)).digest("hex")}function Sl(e,t,n){return _l[e]||Rl.throwError("unsupported algorithm "+e,In.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+Ju.hmac(Ju[e],Pn(t)).update(Pn(n)).digest("hex")}var Nl=Object.freeze({__proto__:null,get SupportedAlgorithm(){return _l},computeHmac:Sl,ripemd160:Cl,sha256:Ol,sha512:kl});function xl(e,t,n,r,i){let a;e=Pn(e),t=Pn(t);let o=1;const s=new Uint8Array(r),u=new Uint8Array(t.length+4);let c,l;u.set(t);for(let d=1;d<=o;d++){u[t.length]=d>>24&255,u[t.length+1]=d>>16&255,u[t.length+2]=d>>8&255,u[t.length+3]=255&d;let f=Pn(Sl(i,e,u));a||(a=f.length,l=new Uint8Array(a),o=Math.ceil(r/a),c=r-(o-1)*a),l.set(f);for(let t=1;t<n;t++){f=Pn(Sl(i,e,f));for(let e=0;e<a;e++)l[e]^=f[e]}const p=(d-1)*a,h=d===o?c:a;s.set(Pn(l).slice(0,h),p)}return Un(s)}const Pl=new In("wordlists/5.7.0");class Ml{constructor(e){Pl.checkAbstract(new.target,Ml),Tr(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let n=0;n<2048;n++){const r=e.getWord(n);if(n!==e.getWordIndex(r))return"0x";t.push(r)}return xa(t.join("\n")+"\n")}static register(e,t){t||(t=e.locale)}}let Bl=null;function Dl(e){if(null==Bl&&(Bl="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo".replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==Ml.check(e)))throw Bl=null,new Error("BIP39 Wordlist for en (English) FAILED")}const Fl=new class extends Ml{constructor(){super("en")}getWord(e){return Dl(this),Bl[e]}getWordIndex(e){return Dl(this),Bl.indexOf(e)}};Ml.register(Fl);const Ll={en:Fl},Ul=new In("hdnode/5.7.0"),ql=tr.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),jl=aa("Bitcoin seed"),Gl=2147483648;function Hl(e){return(1<<e)-1<<8-e}function zl(e){return Vn(Un(e),32)}function Vl(e){return El.encode(Mn([e,jn(Ol(Ol(e)),0,4)]))}function Wl(e){if(null==e)return Ll.en;if("string"==typeof e){const t=Ll[e];return null==t&&Ul.throwArgumentError("unknown locale","wordlist",e),t}return e}const Kl={},Xl="m/44'/60'/0'/0/0";class Jl{constructor(e,t,n,r,i,a,o,s){if(e!==Kl)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new Dc(t);Tr(this,"privateKey",e.privateKey),Tr(this,"publicKey",e.compressedPublicKey)}else Tr(this,"privateKey",null),Tr(this,"publicKey",Un(n));Tr(this,"parentFingerprint",r),Tr(this,"fingerprint",jn(Cl(Ol(this.publicKey)),0,4)),Tr(this,"address",Wc(this.publicKey)),Tr(this,"chainCode",i),Tr(this,"index",a),Tr(this,"depth",o),null==s?(Tr(this,"mnemonic",null),Tr(this,"path",null)):"string"==typeof s?(Tr(this,"mnemonic",null),Tr(this,"path",s)):(Tr(this,"mnemonic",s),Tr(this,"path",s.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return Vl(Mn([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Un(this.depth),this.parentFingerprint,Vn(Un(this.index),4),this.chainCode,null!=this.privateKey?Mn(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new Jl(Kl,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const n=new Uint8Array(37);if(e&Gl){if(!this.privateKey)throw new Error("cannot derive child of neutered node");n.set(Pn(this.privateKey),1),t&&(t+="'")}else n.set(Pn(this.publicKey));for(let t=24;t>=0;t-=8)n[33+(t>>3)]=e>>24-t&255;const r=Pn(Sl(_l.sha512,this.chainCode,n)),i=r.slice(0,32),a=r.slice(32);let o=null,s=null;if(this.privateKey)o=zl(tr.from(i).add(this.privateKey).mod(ql));else{s=new Dc(Un(i))._addPoint(this.publicKey)}let u=t;const c=this.mnemonic;return c&&(u=Object.freeze({phrase:c.phrase,path:t,locale:c.locale||"en"})),new Jl(Kl,o,s,this.fingerprint,zl(a),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let n=this;for(let e=0;e<t.length;e++){const r=t[e];if(r.match(/^[0-9]+'$/)){const e=parseInt(r.substring(0,r.length-1));if(e>=Gl)throw new Error("invalid path index - "+r);n=n._derive(Gl+e)}else{if(!r.match(/^[0-9]+$/))throw new Error("invalid path component - "+r);{const e=parseInt(r);if(e>=Gl)throw new Error("invalid path index - "+r);n=n._derive(e)}}}return n}static _fromSeed(e,t){const n=Pn(e);if(n.length<16||n.length>64)throw new Error("invalid seed");const r=Pn(Sl(_l.sha512,jl,n));return new Jl(Kl,zl(r.slice(0,32)),null,"0x00000000",zl(r.slice(32)),0,0,t)}static fromMnemonic(e,t,n){return e=$l(Ql(e,n=Wl(n)),n),Jl._fromSeed(Yl(e,t),{phrase:e,path:"m",locale:n.locale})}static fromSeed(e){return Jl._fromSeed(e,null)}static fromExtendedKey(e){const t=El.decode(e);82===t.length&&Vl(t.slice(0,78))===e||Ul.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const n=t[4],r=Un(t.slice(5,9)),i=parseInt(Un(t.slice(9,13)).substring(2),16),a=Un(t.slice(13,45)),o=t.slice(45,78);switch(Un(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new Jl(Kl,null,Un(o),r,a,i,n,null);case"0x0488ade4":case"0x04358394 ":if(0!==o[0])break;return new Jl(Kl,Un(o.slice(1)),null,r,a,i,n,null)}return Ul.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function Yl(e,t){t||(t="");const n=aa("mnemonic"+t,ea.NFKD);return xl(aa(e,ea.NFKD),n,2048,64,"sha512")}function Ql(e,t){t=Wl(t),Ul.checkNormalize();const n=t.split(e);if(n.length%3!=0)throw new Error("invalid mnemonic");const r=Pn(new Uint8Array(Math.ceil(11*n.length/8)));let i=0;for(let e=0;e<n.length;e++){let a=t.getWordIndex(n[e].normalize("NFKD"));if(-1===a)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)a&1<<10-e&&(r[i>>3]|=1<<7-i%8),i++}const a=32*n.length/3,o=Hl(n.length/3);if((Pn(Ol(r.slice(0,a/8)))[0]&o)!==(r[r.length-1]&o))throw new Error("invalid checksum");return Un(r.slice(0,a/8))}function $l(e,t){if(t=Wl(t),(e=Pn(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const n=[0];let r=11;for(let t=0;t<e.length;t++)r>8?(n[n.length-1]<<=8,n[n.length-1]|=e[t],r-=8):(n[n.length-1]<<=r,n[n.length-1]|=e[t]>>8-r,n.push(e[t]&(1<<8-r)-1),r+=3);const i=e.length/4,a=Pn(Ol(e))[0]&Hl(i);return n[n.length-1]<<=i,n[n.length-1]|=a>>8-i,t.join(n.map((e=>t.getWord(e))))}function Zl(e,t){try{return Ql(e,t),!0}catch(e){}return!1}function ed(e){return("number"!=typeof e||e<0||e>=Gl||e%1)&&Ul.throwArgumentError("invalid account index","index",e),`m/44'/60'/${e}'/0/0`}var td=Object.freeze({__proto__:null,HDNode:Jl,defaultPath:Xl,entropyToMnemonic:$l,getAccountPath:ed,isValidMnemonic:Zl,mnemonicToEntropy:Ql,mnemonicToSeed:Yl});const nd=new In("random/5.7.0");const rd=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let id=rd.crypto||rd.msCrypto;function ad(e){(e<=0||e>1024||e%1||e!=e)&&nd.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return id.getRandomValues(t),Pn(t)}function od(e){for(let t=(e=e.slice()).length-1;t>0;t--){const n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}id&&id.getRandomValues||(nd.warn("WARNING: Missing strong random number source"),id={getRandomValues:function(e){return nd.throwError("no secure random source avaialble",In.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});var sd=Object.freeze({__proto__:null,randomBytes:ad,shuffled:od}),ud={exports:{}};!function(e,t){!function(t){function n(e){return parseInt(e)===e}function r(e){if(!n(e.length))return!1;for(var t=0;t<e.length;t++)if(!n(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!r(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(n(e.length)&&r(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function a(e){return new Uint8Array(e)}function o(e,t,n,r,i){null==r&&null==i||(e=e.slice?e.slice(r,i):Array.prototype.slice.call(e,r,i)),t.set(e,n)}var s,u={toBytes:function(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var r=e.charCodeAt(n++);37===r?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(r)}return i(t)},fromBytes:function(e){for(var t=[],n=0;n<e.length;){var r=e[n];r<128?(t.push(String.fromCharCode(r)),n++):r>191&&r<224?(t.push(String.fromCharCode((31&r)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&r)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join("")}},c=(s="0123456789abcdef",{toBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},fromBytes:function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(s[(240&r)>>4]+s[15&r])}return t.join("")}}),l={16:10,24:12,32:14},d=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],f=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],p=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],h=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],w=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],T=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],A=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],E=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],_=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],I=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function R(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};C.prototype._prepare=function(){var e=l[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,r=4*(e+1),i=this.key.length/4,a=R(this.key);for(t=0;t<i;t++)n=t>>2,this._Ke[n][t%4]=a[t],this._Kd[e-n][t%4]=a[t];for(var o,s=0,u=i;u<r;){if(o=a[i-1],a[0]^=f[o>>16&255]<<24^f[o>>8&255]<<16^f[255&o]<<8^f[o>>24&255]^d[s]<<24,s+=1,8!=i)for(t=1;t<i;t++)a[t]^=a[t-1];else{for(t=1;t<i/2;t++)a[t]^=a[t-1];o=a[i/2-1],a[i/2]^=f[255&o]^f[o>>8&255]<<8^f[o>>16&255]<<16^f[o>>24&255]<<24;for(t=i/2+1;t<i;t++)a[t]^=a[t-1]}for(t=0;t<i&&u<r;)c=u>>2,p=u%4,this._Ke[c][p]=a[t],this._Kd[e-c][p]=a[t++],u++}for(var c=1;c<e;c++)for(var p=0;p<4;p++)o=this._Kd[c][p],this._Kd[c][p]=A[o>>24&255]^E[o>>16&255]^_[o>>8&255]^I[255&o]},C.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,n=[0,0,0,0],r=R(e),i=0;i<4;i++)r[i]^=this._Ke[0][i];for(var o=1;o<t;o++){for(i=0;i<4;i++)n[i]=h[r[i]>>24&255]^m[r[(i+1)%4]>>16&255]^y[r[(i+2)%4]>>8&255]^g[255&r[(i+3)%4]]^this._Ke[o][i];r=n.slice()}var s,u=a(16);for(i=0;i<4;i++)s=this._Ke[t][i],u[4*i]=255&(f[r[i]>>24&255]^s>>24),u[4*i+1]=255&(f[r[(i+1)%4]>>16&255]^s>>16),u[4*i+2]=255&(f[r[(i+2)%4]>>8&255]^s>>8),u[4*i+3]=255&(f[255&r[(i+3)%4]]^s);return u},C.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,n=[0,0,0,0],r=R(e),i=0;i<4;i++)r[i]^=this._Kd[0][i];for(var o=1;o<t;o++){for(i=0;i<4;i++)n[i]=b[r[i]>>24&255]^v[r[(i+3)%4]>>16&255]^w[r[(i+2)%4]>>8&255]^T[255&r[(i+1)%4]]^this._Kd[o][i];r=n.slice()}var s,u=a(16);for(i=0;i<4;i++)s=this._Kd[t][i],u[4*i]=255&(p[r[i]>>24&255]^s>>24),u[4*i+1]=255&(p[r[(i+3)%4]>>16&255]^s>>16),u[4*i+2]=255&(p[r[(i+2)%4]>>8&255]^s>>8),u[4*i+3]=255&(p[255&r[(i+1)%4]]^s);return u};var O=function(e){if(!(this instanceof O))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new C(e)};O.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16)o(e,n,0,r,r+16),o(n=this._aes.encrypt(n),t,r);return t},O.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16)o(e,n,0,r,r+16),o(n=this._aes.decrypt(n),t,r);return t};var k=function(e,t){if(!(this instanceof k))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=a(16);this._lastCipherblock=i(t,!0),this._aes=new C(e)};k.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16){o(e,n,0,r,r+16);for(var s=0;s<16;s++)n[s]^=this._lastCipherblock[s];this._lastCipherblock=this._aes.encrypt(n),o(this._lastCipherblock,t,r)}return t},k.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16){o(e,n,0,r,r+16),n=this._aes.decrypt(n);for(var s=0;s<16;s++)t[r+s]=n[s]^this._lastCipherblock[s];o(e,this._lastCipherblock,0,r,r+16)}return t};var S=function(e,t,n){if(!(this instanceof S))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=a(16);n||(n=1),this.segmentSize=n,this._shiftRegister=i(t,!0),this._aes=new C(e)};S.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(n,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n},S.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(e,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n};var N=function(e,t){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=a(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new C(e)};N.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},N.prototype.decrypt=N.prototype.encrypt;var x=function(e){if(!(this instanceof x))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=a(16),this.setValue(e)):this.setBytes(e)};x.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},x.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},x.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var P=function(e,t){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof x||(t=new x(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new C(e)};P.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t},P.prototype.decrypt=P.prototype.encrypt;var M={AES:C,Counter:x,ModeOfOperation:{ecb:O,cbc:k,cfb:S,ofb:N,ctr:P},utils:{hex:c,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,n=a(e.length+t);o(e,n);for(var r=e.length;r<n.length;r++)n[r]=t;return n},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var n=e.length-t,r=0;r<t;r++)if(e[n+r]!==t)throw new Error("PKCS#7 invalid padding byte");var s=a(n);return o(e,s,0,0,n),s}}},_arrayTest:{coerceArray:i,createArray:a,copyArray:o}};e.exports=M}()}(ud);var cd=lt(ud.exports);const ld="json-wallets/5.7.0";function dd(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Pn(e)}function fd(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function pd(e){return"string"==typeof e?aa(e,ea.NFKC):Pn(e)}function hd(e,t){let n=e;const r=t.toLowerCase().split("/");for(let e=0;e<r.length;e++){let t=null;for(const i in n)if(i.toLowerCase()===r[e]){t=n[i];break}if(null===t)return null;n=t}return n}function md(e){const t=Pn(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=Un(t);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const yd=new In(ld);class gd extends Sr{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function bd(e,t){const n=JSON.parse(e);t=pd(t);const r=_i(hd(n,"ethaddr")),i=dd(hd(n,"encseed"));i&&i.length%16==0||yd.throwArgumentError("invalid encseed","json",e);const a=Pn(xl(t,t,2e3,32,"sha256")).slice(0,16),o=i.slice(0,16),s=i.slice(16),u=new cd.ModeOfOperation.cbc(a,o),c=cd.padding.pkcs7.strip(Pn(u.decrypt(s)));let l="";for(let e=0;e<c.length;e++)l+=String.fromCharCode(c[e]);const d=ui(aa(l));return new gd({_isCrowdsaleAccount:!0,address:r,privateKey:d})}function vd(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function wd(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}function Td(e){if(vd(e))try{return _i(JSON.parse(e).ethaddr)}catch(e){return null}if(wd(e))try{return _i(JSON.parse(e).address)}catch(e){return null}return null}var Ad={exports:{}};!function(e,t){!function(t){const n=2147483647;function r(e){const t=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);let n=1779033703,r=3144134277,i=1013904242,a=2773480762,o=1359893119,s=2600822924,u=528734635,c=1541459225;const l=new Uint32Array(64);function d(e){let d=0,f=e.length;for(;f>=64;){let p,h,m,y,g,b=n,v=r,w=i,T=a,A=o,E=s,_=u,I=c;for(h=0;h<16;h++)m=d+4*h,l[h]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(h=16;h<64;h++)p=l[h-2],y=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=l[h-15],g=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,l[h]=(y+l[h-7]|0)+(g+l[h-16]|0)|0;for(h=0;h<64;h++)y=(((A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7))+(A&E^~A&_)|0)+(I+(t[h]+l[h]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&w^v&w)|0,I=_,_=E,E=A,A=T+y|0,T=w,w=v,v=b,b=y+g|0;n=n+b|0,r=r+v|0,i=i+w|0,a=a+T|0,o=o+A|0,s=s+E|0,u=u+_|0,c=c+I|0,d+=64,f-=64}}d(e);let f,p=e.length%64,h=e.length/536870912|0,m=e.length<<3,y=p<56?56:120,g=e.slice(e.length-p,e.length);for(g.push(128),f=p+1;f<y;f++)g.push(0);return g.push(h>>>24&255),g.push(h>>>16&255),g.push(h>>>8&255),g.push(h>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),d(g),[n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,c>>>24&255,c>>>16&255,c>>>8&255,c>>>0&255]}function i(e,t,n){e=e.length<=64?e:r(e);const i=64+t.length+4,a=new Array(i),o=new Array(64);let s,u=[];for(s=0;s<64;s++)a[s]=54;for(s=0;s<e.length;s++)a[s]^=e[s];for(s=0;s<t.length;s++)a[64+s]=t[s];for(s=i-4;s<i;s++)a[s]=0;for(s=0;s<64;s++)o[s]=92;for(s=0;s<e.length;s++)o[s]^=e[s];function c(){for(let e=i-1;e>=i-4;e--){if(a[e]++,a[e]<=255)return;a[e]=0}}for(;n>=32;)c(),u=u.concat(r(o.concat(r(a)))),n-=32;return n>0&&(c(),u=u.concat(r(o.concat(r(a))).slice(0,n))),u}function a(e,t,n,r,i){let a;for(c(e,16*(2*n-1),i,0,16),a=0;a<2*n;a++)u(e,16*a,i,16),s(i,r),c(i,0,e,t+16*a,16);for(a=0;a<n;a++)c(e,t+2*a*16,e,16*a,16);for(a=0;a<n;a++)c(e,t+16*(2*a+1),e,16*(a+n),16)}function o(e,t){return e<<t|e>>>32-t}function s(e,t){c(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=o(t[0]+t[12],7),t[8]^=o(t[4]+t[0],9),t[12]^=o(t[8]+t[4],13),t[0]^=o(t[12]+t[8],18),t[9]^=o(t[5]+t[1],7),t[13]^=o(t[9]+t[5],9),t[1]^=o(t[13]+t[9],13),t[5]^=o(t[1]+t[13],18),t[14]^=o(t[10]+t[6],7),t[2]^=o(t[14]+t[10],9),t[6]^=o(t[2]+t[14],13),t[10]^=o(t[6]+t[2],18),t[3]^=o(t[15]+t[11],7),t[7]^=o(t[3]+t[15],9),t[11]^=o(t[7]+t[3],13),t[15]^=o(t[11]+t[7],18),t[1]^=o(t[0]+t[3],7),t[2]^=o(t[1]+t[0],9),t[3]^=o(t[2]+t[1],13),t[0]^=o(t[3]+t[2],18),t[6]^=o(t[5]+t[4],7),t[7]^=o(t[6]+t[5],9),t[4]^=o(t[7]+t[6],13),t[5]^=o(t[4]+t[7],18),t[11]^=o(t[10]+t[9],7),t[8]^=o(t[11]+t[10],9),t[9]^=o(t[8]+t[11],13),t[10]^=o(t[9]+t[8],18),t[12]^=o(t[15]+t[14],7),t[13]^=o(t[12]+t[15],9),t[14]^=o(t[13]+t[12],13),t[15]^=o(t[14]+t[13],18);for(let n=0;n<16;++n)e[n]+=t[n]}function u(e,t,n,r){for(let i=0;i<r;i++)n[i]^=e[t+i]}function c(e,t,n,r,i){for(;i--;)n[r++]=e[t++]}function l(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const n=e[t];if("number"!=typeof n||n%1||n<0||n>=256)return!1}return!0}function d(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function f(e,t,r,o,s,f,p){if(r=d(r,"N"),o=d(o,"r"),s=d(s,"p"),f=d(f,"dkLen"),0===r||0!=(r&r-1))throw new Error("N must be power of 2");if(r>n/128/o)throw new Error("N too large");if(o>n/128/s)throw new Error("r too large");if(!l(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!l(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let h=i(e,t,128*s*o);const m=new Uint32Array(32*s*o);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&h[t+3])<<24|(255&h[t+2])<<16|(255&h[t+1])<<8|(255&h[t+0])<<0}const y=new Uint32Array(64*o),g=new Uint32Array(32*o*r),b=32*o,v=new Uint32Array(16),w=new Uint32Array(16),T=s*r*2;let A,E,_=0,I=null,R=!1,C=0,O=0;const k=p?parseInt(1e3/o):4294967295,S="undefined"!=typeof setImmediate?setImmediate:setTimeout,N=function(){if(R)return p(new Error("cancelled"),_/T);let t;switch(C){case 0:E=32*O*o,c(m,E,y,0,b),C=1,A=0;case 1:t=r-A,t>k&&(t=k);for(let e=0;e<t;e++)c(y,0,g,(A+e)*b,b),a(y,b,o,v,w);if(A+=t,_+=t,p){const e=parseInt(1e3*_/T);if(e!==I){if(R=p(null,_/T),R)break;I=e}}if(A<r)break;A=0,C=2;case 2:t=r-A,t>k&&(t=k);for(let e=0;e<t;e++){const e=y[16*(2*o-1)]&r-1;u(g,e*b,y,b),a(y,b,o,v,w)}if(A+=t,_+=t,p){const e=parseInt(1e3*_/T);if(e!==I){if(R=p(null,_/T),R)break;I=e}}if(A<r)break;if(c(y,0,m,E,b),O++,O<s){C=0;break}h=[];for(let e=0;e<m.length;e++)h.push(m[e]>>0&255),h.push(m[e]>>8&255),h.push(m[e]>>16&255),h.push(m[e]>>24&255);const n=i(e,h,f);return p&&p(null,1,n),n}p&&S(N)};if(!p)for(;;){const e=N();if(null!=e)return e}N()}const p={scrypt:function(e,t,n,r,i,a,o){return new Promise((function(s,u){let c=0;o&&o(0),f(e,t,n,r,i,a,(function(e,t,n){if(e)u(e);else if(n)o&&1!==c&&o(1),s(new Uint8Array(n));else if(o&&t!==c)return c=t,o(t)}))}))},syncScrypt:function(e,t,n,r,i,a){return new Uint8Array(f(e,t,n,r,i,a))}};e.exports=p}()}(Ad);var Ed=lt(Ad.exports),_d=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Id=new In(ld);function Rd(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class Cd extends Sr{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Od(e,t){const n=dd(hd(e,"crypto/ciphertext"));if(Un(ui(Mn([t.slice(16,32),n]))).substring(2)!==hd(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const r=function(e,t,n){if("aes-128-ctr"===hd(e,"crypto/cipher")){const r=dd(hd(e,"crypto/cipherparams/iv")),i=new cd.Counter(r);return Pn(new cd.ModeOfOperation.ctr(t,i).decrypt(n))}return null}(e,t.slice(0,16),n);r||Id.throwError("unsupported cipher",In.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),a=Wc(r);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),_i(t)!==a)throw new Error("address mismatch")}const o={_isKeystoreAccount:!0,address:a,privateKey:Un(r)};if("0.1"===hd(e,"x-ethers/version")){const t=dd(hd(e,"x-ethers/mnemonicCiphertext")),n=dd(hd(e,"x-ethers/mnemonicCounter")),r=new cd.Counter(n),a=new cd.ModeOfOperation.ctr(i,r),s=hd(e,"x-ethers/path")||Xl,u=hd(e,"x-ethers/locale")||"en",c=Pn(a.decrypt(t));try{const e=$l(c,u),t=Jl.fromMnemonic(e,null,u).derivePath(s);if(t.privateKey!=o.privateKey)throw new Error("mnemonic mismatch");o.mnemonic=t.mnemonic}catch(e){if(e.code!==In.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new Cd(o)}function kd(e,t,n,r,i){return Pn(xl(e,t,n,r,i))}function Sd(e,t,n,r,i){return Promise.resolve(kd(e,t,n,r,i))}function Nd(e,t,n,r,i){const a=pd(t),o=hd(e,"crypto/kdf");if(o&&"string"==typeof o){const t=function(e,t){return Id.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===o.toLowerCase()){const n=dd(hd(e,"crypto/kdfparams/salt")),s=parseInt(hd(e,"crypto/kdfparams/n")),u=parseInt(hd(e,"crypto/kdfparams/r")),c=parseInt(hd(e,"crypto/kdfparams/p"));s&&u&&c||t("kdf",o),0!=(s&s-1)&&t("N",s);const l=parseInt(hd(e,"crypto/kdfparams/dklen"));return 32!==l&&t("dklen",l),r(a,n,s,u,c,64,i)}if("pbkdf2"===o.toLowerCase()){const r=dd(hd(e,"crypto/kdfparams/salt"));let i=null;const o=hd(e,"crypto/kdfparams/prf");"hmac-sha256"===o?i="sha256":"hmac-sha512"===o?i="sha512":t("prf",o);const s=parseInt(hd(e,"crypto/kdfparams/c")),u=parseInt(hd(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),n(a,r,s,u,i)}}return Id.throwArgumentError("unsupported key-derivation function","kdf",o)}function xd(e,t){const n=JSON.parse(e);return Od(n,Nd(n,t,kd,Ed.syncScrypt))}function Pd(e,t,n){return _d(this,void 0,void 0,(function*(){const r=JSON.parse(e);return Od(r,yield Nd(r,t,Sd,Ed.scrypt,n))}))}function Md(e,t,n,r){try{if(_i(e.address)!==Wc(e.privateKey))throw new Error("address/privateKey mismatch");if(Rd(e)){const t=e.mnemonic;if(Jl.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||Xl).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof n||r||(r=n,n={}),n||(n={});const i=Pn(e.privateKey),a=pd(t);let o=null,s=null,u=null;if(Rd(e)){const t=e.mnemonic;o=Pn(Ql(t.phrase,t.locale||"en")),s=t.path||Xl,u=t.locale||"en"}let c=n.client;c||(c="ethers.js");let l=null;l=n.salt?Pn(n.salt):ad(32);let d=null;if(n.iv){if(d=Pn(n.iv),16!==d.length)throw new Error("invalid iv")}else d=ad(16);let f=null;if(n.uuid){if(f=Pn(n.uuid),16!==f.length)throw new Error("invalid uuid")}else f=ad(16);let p=1<<17,h=8,m=1;return n.scrypt&&(n.scrypt.N&&(p=n.scrypt.N),n.scrypt.r&&(h=n.scrypt.r),n.scrypt.p&&(m=n.scrypt.p)),Ed.scrypt(a,l,p,h,m,64,r).then((t=>{const n=(t=Pn(t)).slice(0,16),r=t.slice(16,32),a=t.slice(32,64),y=new cd.Counter(d),g=Pn(new cd.ModeOfOperation.ctr(n,y).encrypt(i)),b=ui(Mn([r,g])),v={address:e.address.substring(2).toLowerCase(),id:md(f),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Un(d).substring(2)},ciphertext:Un(g).substring(2),kdf:"scrypt",kdfparams:{salt:Un(l).substring(2),n:p,dklen:32,p:m,r:h},mac:b.substring(2)}};if(o){const e=ad(16),t=new cd.Counter(e),n=Pn(new cd.ModeOfOperation.ctr(a,t).encrypt(o)),r=new Date,i=r.getUTCFullYear()+"-"+fd(r.getUTCMonth()+1,2)+"-"+fd(r.getUTCDate(),2)+"T"+fd(r.getUTCHours(),2)+"-"+fd(r.getUTCMinutes(),2)+"-"+fd(r.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:c,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Un(e).substring(2),mnemonicCiphertext:Un(n).substring(2),path:s,locale:u,version:"0.1"}}return JSON.stringify(v)}))}function Bd(e,t,n){if(vd(e)){n&&n(0);const r=bd(e,t);return n&&n(1),Promise.resolve(r)}return wd(e)?Pd(e,t,n):Promise.reject(new Error("invalid JSON wallet"))}function Dd(e,t){if(vd(e))return bd(e,t);if(wd(e))return xd(e,t);throw new Error("invalid JSON wallet")}var Fd=Object.freeze({__proto__:null,decryptCrowdsale:bd,decryptJsonWallet:Bd,decryptJsonWalletSync:Dd,decryptKeystore:Pd,decryptKeystoreSync:xd,encryptKeystore:Md,getJsonWalletAddress:Td,isCrowdsaleWallet:vd,isKeystoreWallet:wd});var Ld=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Ud=new In("wallet/5.7.0");class qd extends Xo{constructor(e,t){if(super(),null!=(n=e)&&Fn(n.privateKey,32)&&null!=n.address){const t=new Dc(e.privateKey);if(Tr(this,"_signingKey",(()=>t)),Tr(this,"address",Wc(this.publicKey)),this.address!==_i(e.address)&&Ud.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;Tr(this,"_mnemonic",(()=>({phrase:t.phrase,path:t.path||Xl,locale:t.locale||"en"})));const n=this.mnemonic;Wc(Jl.fromMnemonic(n.phrase,null,n.locale).derivePath(n.path).privateKey)!==this.address&&Ud.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else Tr(this,"_mnemonic",(()=>null))}else{if(Dc.isSigningKey(e))"secp256k1"!==e.curve&&Ud.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),Tr(this,"_signingKey",(()=>e));else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new Dc(e);Tr(this,"_signingKey",(()=>t))}Tr(this,"_mnemonic",(()=>null)),Tr(this,"address",Wc(this.publicKey))}var n;t&&!Ho.isProvider(t)&&Ud.throwArgumentError("invalid provider","provider",t),Tr(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new qd(this,e)}signTransaction(e){return Er(e).then((t=>{null!=t.from&&(_i(t.from)!==this.address&&Ud.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const n=this._signingKey().signDigest(ui(el(t)));return el(t,n)}))}signMessage(e){return Ld(this,void 0,void 0,(function*(){return Kn(this._signingKey().signDigest(po(e)))}))}_signTypedData(e,t,n){return Ld(this,void 0,void 0,(function*(){const r=yield ko.resolveNames(e,t,n,(e=>(null==this.provider&&Ud.throwError("cannot resolve ENS names without a provider",In.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e))));return Kn(this._signingKey().signDigest(ko.hash(r.domain,t,r.value)))}))}encrypt(e,t,n){if("function"!=typeof t||n||(n=t,t={}),n&&"function"!=typeof n)throw new Error("invalid callback");return t||(t={}),Md(this,e,t,n)}static createRandom(e){let t=ad(16);e||(e={}),e.extraEntropy&&(t=Pn(jn(ui(Mn([t,e.extraEntropy])),0,16)));const n=$l(t,e.locale);return qd.fromMnemonic(n,e.path,e.locale)}static fromEncryptedJson(e,t,n){return Bd(e,t,n).then((e=>new qd(e)))}static fromEncryptedJsonSync(e,t){return new qd(Dd(e,t))}static fromMnemonic(e,t,n){return t||(t=Xl),new qd(Jl.fromMnemonic(e,null,n).derivePath(t))}}function jd(e,t){return Kc(po(e),t)}function Gd(e,t,n,r){return Kc(ko.hash(e,t,n),r)}var Hd=Object.freeze({__proto__:null,Wallet:qd,verifyMessage:jd,verifyTypedData:Gd});const zd=new In("networks/5.7.1");function Vd(e){const t=function(t,n){null==n&&(n={});const r=[];if(t.InfuraProvider&&"-"!==n.infura)try{r.push(new t.InfuraProvider(e,n.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==n.etherscan)try{r.push(new t.EtherscanProvider(e,n.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==n.alchemy)try{r.push(new t.AlchemyProvider(e,n.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==n.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const a=new t.PocketProvider(e,n.pocket);a.network&&-1===i.indexOf(a.network.name)&&r.push(a)}catch(e){}}if(t.CloudflareProvider&&"-"!==n.cloudflare)try{r.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==n.ankr)try{const i=["ropsten"],a=new t.AnkrProvider(e,n.ankr);a.network&&-1===i.indexOf(a.network.name)&&r.push(a)}catch(e){}if(0===r.length)return null;if(t.FallbackProvider){let i=1;return null!=n.quorum?i=n.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(r,i)}return r[0]};return t.renetwork=function(e){return Vd(e)},t}function Wd(e,t){const n=function(n,r){return n.JsonRpcProvider?new n.JsonRpcProvider(e,t):null};return n.renetwork=function(t){return Wd(e,t)},n}const Kd={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Vd("homestead")},Xd={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Vd("ropsten")},Jd={chainId:63,name:"classicMordor",_defaultProvider:Wd("https://www.ethercluster.com/mordor","classicMordor")},Yd={unspecified:{chainId:0,name:"unspecified"},homestead:Kd,mainnet:Kd,morden:{chainId:2,name:"morden"},ropsten:Xd,testnet:Xd,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Vd("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Vd("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Vd("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:Vd("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:Wd("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:Jd,classicTestnet:Jd,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:Wd("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Vd("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:Vd("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Qd(e){if(null==e)return null;if("number"==typeof e){for(const t in Yd){const n=Yd[t];if(n.chainId===e)return{name:n.name,chainId:n.chainId,ensAddress:n.ensAddress||null,_defaultProvider:n._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=Yd[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=Yd[e.name];if(!t)return"number"!=typeof e.chainId&&zd.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&zd.throwArgumentError("network chainId mismatch","network",e);let n=e._defaultProvider||null;var r;return null==n&&t._defaultProvider&&(n=(r=t._defaultProvider)&&"function"==typeof r.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:n}}var $d=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};function Zd(e,t){return $d(this,void 0,void 0,(function*(){null==t&&(t={});const n={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(n.mode="cors",n.cache="no-cache",n.credentials="same-origin",n.redirect="follow",n.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(n.mode=e.mode),e.cache&&(n.cache=e.cache),e.credentials&&(n.credentials=e.credentials),e.redirect&&(n.redirect=e.redirect),e.referrer&&(n.referrer=e.referrer)}const r=yield fetch(e,n),i=yield r.arrayBuffer(),a={};return r.headers.forEach?r.headers.forEach(((e,t)=>{a[t.toLowerCase()]=e})):r.headers.keys().forEach((e=>{a[e.toLowerCase()]=r.headers.get(e)})),{headers:a,statusCode:r.status,statusMessage:r.statusText,body:Pn(new Uint8Array(i))}}))}var ef=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const tf=new In("web/5.7.1");function nf(e){return new Promise((t=>{setTimeout(t,e)}))}function rf(e,t){if(null==e)return null;if("string"==typeof e)return e;if(Sn(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return ca(e)}catch(e){}return Un(e)}return e}function af(e,t,n){const r="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;tf.assertArgument(r>0&&r%1==0,"invalid connection throttle limit","connection.throttleLimit",r);const i="object"==typeof e?e.throttleCallback:null,a="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;tf.assertArgument(a>0&&a%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",a);const o="object"==typeof e&&!!e.errorPassThrough,s={};let u=null;const c={method:"GET"};let l=!1,d=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||tf.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(d=e.timeout),e.headers)for(const t in e.headers)s[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(l=!0);if(c.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password){"https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&tf.throwError("basic authentication requires a secure https url",In.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"});const t=e.user+":"+e.password;s.authorization={key:"Authorization",value:"Basic "+Ba(aa(t))}}null!=e.skipFetchSetup&&(c.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(c.fetchOptions=Ir(e.fetchOptions))}const f=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),p=u?u.match(f):null;if(p)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":p[1]||"text/plain"},body:p[2]?Ma(p[3]):(h=p[3],aa(h.replace(/%([0-9a-f][0-9a-f])/gi,((e,t)=>String.fromCharCode(parseInt(t,16))))))};let t=e.body;return n&&(t=n(e.body,e)),Promise.resolve(t)}catch(e){tf.throwError("processing response error",In.errors.SERVER_ERROR,{body:rf(p[1],p[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var h;t&&(c.method="POST",c.body=t,null==s["content-type"]&&(s["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==s["content-length"]&&(s["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(s).forEach((e=>{const t=s[e];m[t.key]=t.value})),c.headers=m;const y=function(){let e=null;return{promise:new Promise((function(t,n){d&&(e=setTimeout((()=>{null!=e&&(e=null,n(tf.makeError("timeout",In.errors.TIMEOUT,{requestBody:rf(c.body,m["content-type"]),requestMethod:c.method,timeout:d,url:u})))}),d))})),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return ef(this,void 0,void 0,(function*(){for(let e=0;e<r;e++){let t=null;try{if(t=yield Zd(u,c),e<r)if(301===t.statusCode||302===t.statusCode){const e=t.headers.location||"";if("GET"===c.method&&e.match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let n=!0;if(i&&(n=yield i(e,u)),n){let n=0;const r=t.headers["retry-after"];n="string"==typeof r&&r.match(/^[1-9][0-9]*$/)?1e3*parseInt(r):a*parseInt(String(Math.random()*Math.pow(2,e))),yield nf(n);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),tf.throwError("missing response",In.errors.SERVER_ERROR,{requestBody:rf(c.body,m["content-type"]),requestMethod:c.method,serverError:e,url:u}))}let s=t.body;if(l&&304===t.statusCode?s=null:!o&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),tf.throwError("bad response",In.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:rf(s,t.headers?t.headers["content-type"]:null),requestBody:rf(c.body,m["content-type"]),requestMethod:c.method,url:u})),n)try{const e=yield n(s,t);return y.cancel(),e}catch(n){if(n.throttleRetry&&e<r){let t=!0;if(i&&(t=yield i(e,u)),t){const t=a*parseInt(String(Math.random()*Math.pow(2,e)));yield nf(t);continue}}y.cancel(),tf.throwError("processing response error",In.errors.SERVER_ERROR,{body:rf(s,t.headers?t.headers["content-type"]:null),error:n,requestBody:rf(c.body,m["content-type"]),requestMethod:c.method,url:u})}return y.cancel(),s}return tf.throwError("failed response",In.errors.SERVER_ERROR,{requestBody:rf(c.body,m["content-type"]),requestMethod:c.method,url:u})}))}();return Promise.race([y.promise,g])}function of(e,t,n){let r=null;if(null!=t){r=aa(t);const n="string"==typeof e?{url:e}:Ir(e);if(n.headers){0!==Object.keys(n.headers).filter((e=>"content-type"===e.toLowerCase())).length||(n.headers=Ir(n.headers),n.headers["content-type"]="application/json")}else n.headers={"content-type":"application/json"};e=n}return af(e,r,((e,t)=>{let r=null;if(null!=e)try{r=JSON.parse(ca(e))}catch(t){tf.throwError("invalid JSON",In.errors.SERVER_ERROR,{body:e,error:t})}return n&&(r=n(r,t)),r}))}function sf(e,t){return t||(t={}),null==(t=Ir(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise((function(n,r){let i=null,a=!1;const o=()=>!a&&(a=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout((()=>{o()&&r(new Error("timeout"))}),t.timeout));const s=t.retryLimit;let u=0;!function i(){return e().then((function(e){if(void 0!==e)o()&&n(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!a){if(u++,u>s)return void(o()&&r(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null}),(function(e){o()&&r(e)}))}()}))}for(var uf=Object.freeze({__proto__:null,_fetchData:af,fetchJson:of,poll:sf}),cf="qpzry9x8gf2tvdw0s3jn54khce6mua7l",lf={},df=0;df<32;df++){var ff=cf.charAt(df);if(void 0!==lf[ff])throw new TypeError(ff+" is ambiguous");lf[ff]=df}function pf(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}function hf(e){for(var t=1,n=0;n<e.length;++n){var r=e.charCodeAt(n);if(r<33||r>126)return"Invalid prefix ("+e+")";t=pf(t)^r>>5}for(t=pf(t),n=0;n<e.length;++n){var i=e.charCodeAt(n);t=pf(t)^31&i}return t}function mf(e,t){if(t=t||90,e.length<8)return e+" too short";if(e.length>t)return"Exceeds length limit";var n=e.toLowerCase(),r=e.toUpperCase();if(e!==n&&e!==r)return"Mixed-case string "+e;var i=(e=n).lastIndexOf("1");if(-1===i)return"No separator character for "+e;if(0===i)return"Missing prefix for "+e;var a=e.slice(0,i),o=e.slice(i+1);if(o.length<6)return"Data too short";var s=hf(a);if("string"==typeof s)return s;for(var u=[],c=0;c<o.length;++c){var l=o.charAt(c),d=lf[l];if(void 0===d)return"Unknown character "+l;s=pf(s)^d,c+6>=o.length||u.push(d)}return 1!==s?"Invalid checksum for "+e:{prefix:a,words:u}}function yf(e,t,n,r){for(var i=0,a=0,o=(1<<n)-1,s=[],u=0;u<e.length;++u)for(i=i<<t|e[u],a+=t;a>=n;)a-=n,s.push(i>>a&o);if(r)a>0&&s.push(i<<n-a&o);else{if(a>=t)return"Excess padding";if(i<<n-a&o)return"Non-zero padding"}return s}var gf={decodeUnsafe:function(){var e=mf.apply(null,arguments);if("object"==typeof e)return e},decode:function(e){var t=mf.apply(null,arguments);if("object"==typeof t)return t;throw new Error(t)},encode:function(e,t,n){if(n=n||90,e.length+7+t.length>n)throw new TypeError("Exceeds length limit");var r=hf(e=e.toLowerCase());if("string"==typeof r)throw new Error(r);for(var i=e+"1",a=0;a<t.length;++a){var o=t[a];if(o>>5!=0)throw new Error("Non 5-bit word");r=pf(r)^o,i+=cf.charAt(o)}for(a=0;a<6;++a)r=pf(r);for(r^=1,a=0;a<6;++a){i+=cf.charAt(r>>5*(5-a)&31)}return i},toWordsUnsafe:function(e){var t=yf(e,8,5,!0);if(Array.isArray(t))return t},toWords:function(e){var t=yf(e,8,5,!0);if(Array.isArray(t))return t;throw new Error(t)},fromWordsUnsafe:function(e){var t=yf(e,5,8,!1);if(Array.isArray(t))return t},fromWords:function(e){var t=yf(e,5,8,!1);if(Array.isArray(t))return t;throw new Error(t)}},bf=lt(gf);const vf="providers/5.7.2",wf=new In(vf);class Tf{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),n=this.bigNumber.bind(this),r=this.blockTag.bind(this),i=this.data.bind(this),a=this.hash.bind(this),o=this.hex.bind(this),s=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:a,type:u,accessList:Tf.allowNull(this.accessList.bind(this),null),blockHash:Tf.allowNull(a,null),blockNumber:Tf.allowNull(s,null),transactionIndex:Tf.allowNull(s,null),confirmations:Tf.allowNull(s,null),from:t,gasPrice:Tf.allowNull(n),maxPriorityFeePerGas:Tf.allowNull(n),maxFeePerGas:Tf.allowNull(n),gasLimit:n,to:Tf.allowNull(t,null),value:n,nonce:s,data:i,r:Tf.allowNull(this.uint256),s:Tf.allowNull(this.uint256),v:Tf.allowNull(s),creates:Tf.allowNull(t,null),raw:Tf.allowNull(i)},e.transactionRequest={from:Tf.allowNull(t),nonce:Tf.allowNull(s),gasLimit:Tf.allowNull(n),gasPrice:Tf.allowNull(n),maxPriorityFeePerGas:Tf.allowNull(n),maxFeePerGas:Tf.allowNull(n),to:Tf.allowNull(t),value:Tf.allowNull(n),data:Tf.allowNull((e=>this.data(e,!0))),type:Tf.allowNull(s),accessList:Tf.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:s,blockNumber:s,transactionHash:a,address:t,topics:Tf.arrayOf(a),data:i,logIndex:s,blockHash:a},e.receipt={to:Tf.allowNull(this.address,null),from:Tf.allowNull(this.address,null),contractAddress:Tf.allowNull(t,null),transactionIndex:s,root:Tf.allowNull(o),gasUsed:n,logsBloom:Tf.allowNull(i),blockHash:a,transactionHash:a,logs:Tf.arrayOf(this.receiptLog.bind(this)),blockNumber:s,confirmations:Tf.allowNull(s,null),cumulativeGasUsed:n,effectiveGasPrice:Tf.allowNull(n),status:Tf.allowNull(s),type:u},e.block={hash:Tf.allowNull(a),parentHash:a,number:s,timestamp:s,nonce:Tf.allowNull(o),difficulty:this.difficulty.bind(this),gasLimit:n,gasUsed:n,miner:Tf.allowNull(t),extraData:i,transactions:Tf.allowNull(Tf.arrayOf(a)),baseFeePerGas:Tf.allowNull(n)},e.blockWithTransactions=Ir(e.block),e.blockWithTransactions.transactions=Tf.allowNull(Tf.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:Tf.allowNull(r,void 0),toBlock:Tf.allowNull(r,void 0),blockHash:Tf.allowNull(a,void 0),address:Tf.allowNull(t,void 0),topics:Tf.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:Tf.allowNull(s),blockHash:Tf.allowNull(a),transactionIndex:s,removed:Tf.allowNull(this.boolean.bind(this)),address:t,data:Tf.allowFalsish(i,"0x"),topics:Tf.arrayOf(a),transactionHash:a,logIndex:s},e}accessList(e){return Yc(e||[])}number(e){return"0x"===e?0:tr.from(e).toNumber()}type(e){return"0x"===e||null==e?0:tr.from(e).toNumber()}bigNumber(e){return tr.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),Fn(e))?e.toLowerCase():wf.throwArgumentError("invalid hash","value",e)}data(e,t){const n=this.hex(e,t);if(n.length%2!=0)throw new Error("invalid data; odd-length - "+e);return n}address(e){return _i(e)}callAddress(e){if(!Fn(e,32))return null;const t=_i(jn(e,12));return t===ji?null:t}contractAddress(e){return Ci(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||Fn(e))return Hn(e);throw new Error("invalid blockTag")}hash(e,t){const n=this.hex(e,t);return 32!==qn(n)?wf.throwArgumentError("invalid hash","value",e):n}difficulty(e){if(null==e)return null;const t=tr.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!Fn(e))throw new Error("invalid uint256");return Vn(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const n=null!=e._difficulty?e._difficulty:e.difficulty,r=Tf.check(t,e);return r._difficulty=null==n?null:tr.from(n),r}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return Tf.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&tr.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=Tf.check(this.formats.transaction,e);if(null!=e.chainId){let n=e.chainId;Fn(n)&&(n=tr.from(n).toNumber()),t.chainId=n}else{let n=e.networkId;null==n&&null==t.v&&(n=e.chainId),Fn(n)&&(n=tr.from(n).toNumber()),"number"!=typeof n&&null!=t.v&&(n=(t.v-35)/2,n<0&&(n=0),n=parseInt(n)),"number"!=typeof n&&(n=0),t.chainId=n}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return nl(e)}receiptLog(e){return Tf.check(this.formats.receiptLog,e)}receipt(e){const t=Tf.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=tr.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&wf.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):wf.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&wf.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map((e=>this.topics(e))):null!=e?this.hash(e,!0):null}filter(e){return Tf.check(this.formats.filter,e)}filterLog(e){return Tf.check(this.formats.filterLog,e)}static check(e,t){const n={};for(const r in e)try{const i=e[r](t[r]);void 0!==i&&(n[r]=i)}catch(e){throw e.checkKey=r,e.checkValue=t[r],e}return n}static allowNull(e,t){return function(n){return null==n?t:e(n)}}static allowFalsish(e,t){return function(n){return n?e(n):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const n=[];return t.forEach((function(t){n.push(e(t))})),n}}}function Af(e){return e&&"function"==typeof e.isCommunityResource}function Ef(e){return Af(e)&&e.isCommunityResource()}let _f=!1;function If(){_f||(_f=!0,console.log("========= NOTICE ========="),console.log("Request-Rate Exceeded (this message will not be repeated)"),console.log(""),console.log("The default API keys for each service are provided as a highly-throttled,"),console.log("community resource for low-traffic projects and early prototyping."),console.log(""),console.log("While your application will continue to function, we highly recommended"),console.log("signing up for your own API keys to improve performance, increase your"),console.log("request rate/limit and enable other perks, such as metrics and advanced APIs."),console.log(""),console.log("For more details: https://docs.ethers.io/api-keys/"),console.log("=========================="))}var Rf=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Cf=new In(vf);function Of(e){return null==e?"null":(32!==qn(e)&&Cf.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function kf(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map((e=>{if(Array.isArray(e)){const t={};e.forEach((e=>{t[Of(e)]=!0}));const n=Object.keys(t);return n.sort(),n.join("|")}return Of(e)})).join("&")}function Sf(e){if("string"==typeof e){if(32===qn(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+kf(e);if(Go.isForkEvent(e))throw Cf.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+kf(e.topics||[])}throw new Error("invalid event - "+e)}function Nf(){return(new Date).getTime()}function xf(e){return new Promise((t=>{setTimeout(t,e)}))}const Pf=["block","network","pending","poll"];class Mf{constructor(e,t,n){Tr(this,"tag",e),Tr(this,"listener",t),Tr(this,"once",n),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],n=""===(r=e[2])?[]:r.split(/&/g).map((e=>{if(""===e)return[];const t=e.split("|").map((e=>"null"===e?null:e));return 1===t.length?t[0]:t}));var r;const i={};return n.length>0&&(i.topics=n),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||Pf.indexOf(this.tag)>=0}}const Bf={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function Df(e){return Vn(tr.from(e).toHexString(),32)}function Ff(e){return El.encode(Mn([e,jn(Ol(Ol(e)),0,4)]))}const Lf=new RegExp("^(ipfs)://(.*)$","i"),Uf=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Lf,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function qf(e,t){try{return ca(jf(e,t))}catch(e){}return null}function jf(e,t){if("0x"===e)return null;const n=tr.from(jn(e,t,t+32)).toNumber(),r=tr.from(jn(e,n,n+32)).toNumber();return jn(e,n+32,n+32+r)}function Gf(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):Cf.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function Hf(e){const t=Pn(e);if(t.length>32)throw new Error("internal; should not happen");const n=new Uint8Array(32);return n.set(t,32-t.length),n}function zf(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Vf(e){const t=[];let n=0;for(let r=0;r<e.length;r++)t.push(null),n+=32;for(let r=0;r<e.length;r++){const i=Pn(e[r]);t[r]=Hf(n),t.push(Hf(i.length)),t.push(zf(i)),n+=32+32*Math.ceil(i.length/32)}return Gn(t)}class Wf{constructor(e,t,n,r){Tr(this,"provider",e),Tr(this,"name",n),Tr(this,"address",e.formatter.address(t)),Tr(this,"_resolvedAddress",r)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then((e=>tr.from(e).eq(1))).catch((e=>{if(e.code===In.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e}))),this._supportsEip2544}_fetch(e,t){return Rf(this,void 0,void 0,(function*(){const n={to:this.address,ccipReadEnabled:!0,data:Gn([e,co(this.name),t||"0x"])};let r=!1;(yield this.supportsWildcard())&&(r=!0,n.data=Gn(["0x9061b923",Vf([lo(this.name),n.data])]));try{let e=yield this.provider.call(n);return Pn(e).length%32==4&&Cf.throwError("resolver threw error",In.errors.CALL_EXCEPTION,{transaction:n,data:e}),r&&(e=jf(e,0)),e}catch(e){if(e.code===In.errors.CALL_EXCEPTION)return null;throw e}}))}_fetchBytes(e,t){return Rf(this,void 0,void 0,(function*(){const n=yield this._fetch(e,t);return null!=n?jf(n,0):null}))}_getAddress(e,t){const n=Bf[String(e)];if(null==n&&Cf.throwError(`unsupported coin type: ${e}`,In.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===n.ilk)return this.provider.formatter.address(t);const r=Pn(t);if(null!=n.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return Ff(Mn([[n.p2pkh],"0x"+e[2]]))}}if(null!=n.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return Ff(Mn([[n.p2sh],"0x"+e[2]]))}}if(null!=n.prefix){const e=r[1];let t=r[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&r.length===2+e&&e>=1&&e<=75){const e=bf.toWords(r.slice(2));return e.unshift(t),bf.encode(n.prefix,e)}}return null}getAddress(e){return Rf(this,void 0,void 0,(function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||e===Yi?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===In.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",Df(e));if(null==t||"0x"===t)return null;const n=this._getAddress(e,t);return null==n&&Cf.throwError("invalid or unsupported coin data",In.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),n}))}getAvatar(){return Rf(this,void 0,void 0,(function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let n=0;n<Uf.length;n++){const r=t.match(Uf[n]);if(null==r)continue;const i=r[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:Gf(t)};case"erc721":case"erc1155":{const n="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const a=this._resolvedAddress||(yield this.getAddress()),o=(r[2]||"").split("/");if(2!==o.length)return null;const s=yield this.provider.formatter.address(o[0]),u=Vn(tr.from(o[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:s,data:Gn(["0x6352211e",u])}));if(a!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=tr.from(yield this.provider.call({to:s,data:Gn(["0x00fdd58e",Vn(a,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const c={to:this.provider.formatter.address(o[0]),data:Gn([n,u])};let l=qf(yield this.provider.call(c),0);if(null==l)return null;e.push({type:"metadata-url-base",content:l}),"erc1155"===i&&(l=l.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:l})),l.match(/^ipfs:/i)&&(l=Gf(l)),e.push({type:"metadata-url",content:l});const d=yield of(l);if(!d)return null;e.push({type:"metadata",content:JSON.stringify(d)});let f=d.image;if("string"!=typeof f)return null;if(f.match(/^(https:\/\/|data:)/i));else{if(null==f.match(Lf))return null;e.push({type:"url-ipfs",content:f}),f=Gf(f)}return e.push({type:"url",content:f}),{linkage:e,url:f}}}}}catch(e){}return null}))}getContentHash(){return Rf(this,void 0,void 0,(function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+El.encode("0x"+t[1])}const n=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(n){const e=parseInt(n[3],16);if(n[4].length===2*e)return"ipns://"+El.encode("0x"+n[1])}const r=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(r&&64===r[1].length)return"bzz://"+r[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+Ba("0x"+i[1]).replace(/[=+\/]/g,(t=>e[t]))}return Cf.throwError("invalid or unsupported content hash data",In.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})}))}getText(e){return Rf(this,void 0,void 0,(function*(){let t=aa(e);t=Mn([Df(64),Df(t.length),t]),t.length%32!=0&&(t=Mn([t,Vn("0x",32-e.length%32)]));const n=yield this._fetchBytes("0x59d1d43c",Un(t));return null==n||"0x"===n?null:ca(n)}))}}let Kf=null,Xf=1;class Jf extends Ho{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),Tr(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch((e=>{})),this._ready().catch((e=>{}));else{const t=Ar(new.target,"getNetwork")(e);t?(Tr(this,"_network",t),this.emit("network",t,null)):Cf.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return Rf(this,void 0,void 0,(function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||Cf.throwError("no network detected",In.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:Tr(this,"_network",e),this.emit("network",e,null))}return this._network}))}get ready(){return sf((()=>this._ready().then((e=>e),(e=>{if(e.code!==In.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))))}static getFormatter(){return null==Kf&&(Kf=new Tf),Kf}static getNetwork(e){return Qd(null==e?"homestead":e)}ccipReadFetch(e,t,n){return Rf(this,void 0,void 0,(function*(){if(this.disableCcipRead||0===n.length)return null;const r=e.to.toLowerCase(),i=t.toLowerCase(),a=[];for(let e=0;e<n.length;e++){const t=n[e],o=t.replace("{sender}",r).replace("{data}",i),s=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:r}),u=yield of({url:o,errorPassThrough:!0},s,((e,t)=>(e.status=t.statusCode,e)));if(u.data)return u.data;const c=u.message||"unknown error";if(u.status>=400&&u.status<500)return Cf.throwError(`response not found during CCIP fetch: ${c}`,In.errors.SERVER_ERROR,{url:t,errorMessage:c});a.push(c)}return Cf.throwError(`error encountered during CCIP fetch: ${a.map((e=>JSON.stringify(e))).join(", ")}`,In.errors.SERVER_ERROR,{urls:n,errorMessages:a})}))}_getInternalBlockNumber(e){return Rf(this,void 0,void 0,(function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const n=yield t;if(Nf()-n.respTime<=e)return n.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=Nf(),n=Er({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then((e=>null),(e=>e))}).then((({blockNumber:e,networkError:r})=>{if(r)throw this._internalBlockNumber===n&&(this._internalBlockNumber=null),r;const i=Nf();return(e=tr.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}}));return this._internalBlockNumber=n,n.catch((e=>{this._internalBlockNumber===n&&(this._internalBlockNumber=null)})),(yield n).blockNumber}))}poll(){return Rf(this,void 0,void 0,(function*(){const e=Xf++,t=[];let n=null;try{n=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(n),this.emit("poll",e,n),n!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=n-1),Math.abs(this._emitted.block-n)>1e3)Cf.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${n})`),this.emit("error",Cf.makeError("network block skew detected",In.errors.NETWORK_ERROR,{blockNumber:n,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",n);else for(let e=this._emitted.block+1;e<=n;e++)this.emit("block",e);this._emitted.block!==n&&(this._emitted.block=n,Object.keys(this._emitted).forEach((e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&n-t>12&&delete this._emitted[e]}))),-2===this._lastBlockNumber&&(this._lastBlockNumber=n-1),this._events.forEach((e=>{switch(e.type){case"tx":{const n=e.hash;let r=this.getTransactionReceipt(n).then((e=>e&&null!=e.blockNumber?(this._emitted["t:"+n]=e.blockNumber,this.emit(n,e),null):null)).catch((e=>{this.emit("error",e)}));t.push(r);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=n-1);const r=e.filter;r.fromBlock=e._lastBlockNumber+1,r.toBlock=n;const i=r.toBlock-this._maxFilterBlockRange;i>r.fromBlock&&(r.fromBlock=i),r.fromBlock<0&&(r.fromBlock=0);const a=this.getLogs(r).then((t=>{e._inflight=!1,0!==t.length&&t.forEach((t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(r,t)}))})).catch((t=>{this.emit("error",t),e._inflight=!1}));t.push(a)}}})),this._lastBlockNumber=n,Promise.all(t).then((()=>{this.emit("didPoll",e)})).catch((e=>{this.emit("error",e)}))}else this.emit("didPoll",e)}))}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return Rf(this,void 0,void 0,(function*(){return Cf.throwError("provider does not support network detection",In.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})}))}getNetwork(){return Rf(this,void 0,void 0,(function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield xf(0),this._network;const n=Cf.makeError("underlying network changed",In.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",n),n}return e}))}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then((e=>{this._setFastBlockNumber(e)}),(e=>{})),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval((()=>{this.poll()}),this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout((()=>{this.poll(),this._bootstrapPoll=setTimeout((()=>{this._poller||this.poll(),this._bootstrapPoll=null}),this.pollingInterval)}),0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval((()=>{this.poll()}),this._pollingInterval))}_getFastBlockNumber(){const e=Nf();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then((e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber)))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=Nf(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,n){return Rf(this,void 0,void 0,(function*(){return this._waitForTransaction(e,null==t?1:t,n||0,null)}))}_waitForTransaction(e,t,n,r){return Rf(this,void 0,void 0,(function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise(((i,a)=>{const o=[];let s=!1;const u=function(){return!!s||(s=!0,o.forEach((e=>{e()})),!1)},c=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,c),o.push((()=>{this.removeListener(e,c)})),r){let n=r.startBlock,i=null;const c=o=>Rf(this,void 0,void 0,(function*(){s||(yield xf(1e3),this.getTransactionCount(r.from).then((l=>Rf(this,void 0,void 0,(function*(){if(!s){if(l<=r.nonce)n=o;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=n-3,i<r.startBlock&&(i=r.startBlock));i<=o;){if(s)return;const n=yield this.getBlockWithTransactions(i);for(let i=0;i<n.transactions.length;i++){const o=n.transactions[i];if(o.hash===e)return;if(o.from===r.from&&o.nonce===r.nonce){if(s)return;const n=yield this.waitForTransaction(o.hash,t);if(u())return;let i="replaced";return o.data===r.data&&o.to===r.to&&o.value.eq(r.value)?i="repriced":"0x"===o.data&&o.from===o.to&&o.value.isZero()&&(i="cancelled"),void a(Cf.makeError("transaction was replaced",In.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(o),hash:e,receipt:n}))}}i++}}s||this.once("block",c)}}))),(e=>{s||this.once("block",c)})))}));if(s)return;this.once("block",c),o.push((()=>{this.removeListener("block",c)}))}if("number"==typeof n&&n>0){const e=setTimeout((()=>{u()||a(Cf.makeError("timeout exceeded",In.errors.TIMEOUT,{timeout:n}))}),n);e.unref&&e.unref(),o.push((()=>{clearTimeout(e)}))}}))}))}getBlockNumber(){return Rf(this,void 0,void 0,(function*(){return this._getInternalBlockNumber(0)}))}getGasPrice(){return Rf(this,void 0,void 0,(function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return tr.from(e)}catch(t){return Cf.throwError("bad result from backend",In.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}}))}getBalance(e,t){return Rf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Er({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getBalance",n);try{return tr.from(r)}catch(e){return Cf.throwError("bad result from backend",In.errors.SERVER_ERROR,{method:"getBalance",params:n,result:r,error:e})}}))}getTransactionCount(e,t){return Rf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Er({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getTransactionCount",n);try{return tr.from(r).toNumber()}catch(e){return Cf.throwError("bad result from backend",In.errors.SERVER_ERROR,{method:"getTransactionCount",params:n,result:r,error:e})}}))}getCode(e,t){return Rf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Er({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getCode",n);try{return Un(r)}catch(e){return Cf.throwError("bad result from backend",In.errors.SERVER_ERROR,{method:"getCode",params:n,result:r,error:e})}}))}getStorageAt(e,t,n){return Rf(this,void 0,void 0,(function*(){yield this.getNetwork();const r=yield Er({address:this._getAddress(e),blockTag:this._getBlockTag(n),position:Promise.resolve(t).then((e=>Hn(e)))}),i=yield this.perform("getStorageAt",r);try{return Un(i)}catch(e){return Cf.throwError("bad result from backend",In.errors.SERVER_ERROR,{method:"getStorageAt",params:r,result:i,error:e})}}))}_wrapTransaction(e,t,n){if(null!=t&&32!==qn(t))throw new Error("invalid response - sendTransaction");const r=e;return null!=t&&e.hash!==t&&Cf.throwError("Transaction hash mismatch from Provider.sendTransaction.",In.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),r.wait=(t,r)=>Rf(this,void 0,void 0,(function*(){let i;null==t&&(t=1),null==r&&(r=0),0!==t&&null!=n&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:n});const a=yield this._waitForTransaction(e.hash,t,r,i);return null==a&&0===t?null:(this._emitted["t:"+e.hash]=a.blockNumber,0===a.status&&Cf.throwError("transaction failed",In.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:a}),a)})),r}sendTransaction(e){return Rf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then((e=>Un(e))),n=this.formatter.transaction(e);null==n.confirmations&&(n.confirmations=0);const r=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(n,e,r)}catch(e){throw e.transaction=n,e.transactionHash=n.hash,e}}))}_getTransactionRequest(e){return Rf(this,void 0,void 0,(function*(){const t=yield e,n={};return["from","to"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?this._getAddress(e):null)))})),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?tr.from(e):null)))})),["type"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>null!=e?e:null)))})),t.accessList&&(n.accessList=this.formatter.accessList(t.accessList)),["data"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?Un(e):null)))})),this.formatter.transactionRequest(yield Er(n))}))}_getFilter(e){return Rf(this,void 0,void 0,(function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach((n=>{null!=e[n]&&(t[n]=e[n])})),["fromBlock","toBlock"].forEach((n=>{null!=e[n]&&(t[n]=this._getBlockTag(e[n]))})),this.formatter.filter(yield Er(t))}))}_call(e,t,n){return Rf(this,void 0,void 0,(function*(){n>=10&&Cf.throwError("CCIP read exceeded maximum redirections",In.errors.SERVER_ERROR,{redirects:n,transaction:e});const r=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(n>=0&&"latest"===t&&null!=r&&"0x556f1830"===i.substring(0,10)&&qn(i)%32==4)try{const a=jn(i,4),o=jn(a,0,32);tr.from(o).eq(r)||Cf.throwError("CCIP Read sender did not match",In.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const s=[],u=tr.from(jn(a,32,64)).toNumber(),c=tr.from(jn(a,u,u+32)).toNumber(),l=jn(a,u+32);for(let t=0;t<c;t++){const n=qf(l,32*t);null==n&&Cf.throwError("CCIP Read contained corrupt URL string",In.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),s.push(n)}const d=jf(a,64);tr.from(jn(a,100,128)).isZero()||Cf.throwError("CCIP Read callback selector included junk",In.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const f=jn(a,96,100),p=jf(a,128),h=yield this.ccipReadFetch(e,d,s);null==h&&Cf.throwError("CCIP Read disabled or provided no URLs",In.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:r,data:Gn([f,Vf([h,p])])};return this._call(m,t,n+1)}catch(e){if(e.code===In.errors.SERVER_ERROR)throw e}try{return Un(i)}catch(n){return Cf.throwError("bad result from backend",In.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:n})}}))}call(e,t){return Rf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Er({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(n.transaction,n.blockTag,n.ccipReadEnabled?0:-1)}))}estimateGas(e){return Rf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Er({transaction:this._getTransactionRequest(e)}),n=yield this.perform("estimateGas",t);try{return tr.from(n)}catch(e){return Cf.throwError("bad result from backend",In.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:n,error:e})}}))}_getAddress(e){return Rf(this,void 0,void 0,(function*(){"string"!=typeof(e=yield e)&&Cf.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&Cf.throwError("ENS name not configured",In.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t}))}_getBlock(e,t){return Rf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;let n=-128;const r={includeTransactions:!!t};if(Fn(e,32))r.blockHash=e;else try{r.blockTag=yield this._getBlockTag(e),Fn(r.blockTag)&&(n=parseInt(r.blockTag.substring(2),16))}catch(t){Cf.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return sf((()=>Rf(this,void 0,void 0,(function*(){const e=yield this.perform("getBlock",r);if(null==e)return null!=r.blockHash&&null==this._emitted["b:"+r.blockHash]||null!=r.blockTag&&n>this._emitted.block?null:void 0;if(t){let t=null;for(let n=0;n<e.transactions.length;n++){const r=e.transactions[n];if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}}const n=this.formatter.blockWithTransactions(e);return n.transactions=n.transactions.map((e=>this._wrapTransaction(e))),n}return this.formatter.block(e)}))),{oncePoll:this})}))}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return Rf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return sf((()=>Rf(this,void 0,void 0,(function*(){const n=yield this.perform("getTransaction",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;const r=this.formatter.transactionResponse(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return this._wrapTransaction(r)}))),{oncePoll:this})}))}getTransactionReceipt(e){return Rf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return sf((()=>Rf(this,void 0,void 0,(function*(){const n=yield this.perform("getTransactionReceipt",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;if(null==n.blockHash)return;const r=this.formatter.receipt(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return r}))),{oncePoll:this})}))}getLogs(e){return Rf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Er({filter:this._getFilter(e)}),n=yield this.perform("getLogs",t);return n.forEach((e=>{null==e.removed&&(e.removed=!1)})),Tf.arrayOf(this.formatter.filterLog.bind(this.formatter))(n)}))}getEtherPrice(){return Rf(this,void 0,void 0,(function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})}))}_getBlockTag(e){return Rf(this,void 0,void 0,(function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&Cf.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)}))}getResolver(e){return Rf(this,void 0,void 0,(function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const n=yield this._getResolver(t,"getResolver");if(null!=n){const r=new Wf(this,n,e);return t===e||(yield r.supportsWildcard())?r:null}t=t.split(".").slice(1).join(".")}}))}_getResolver(e,t){return Rf(this,void 0,void 0,(function*(){null==t&&(t="ENS");const n=yield this.getNetwork();n.ensAddress||Cf.throwError("network does not support ENS",In.errors.UNSUPPORTED_OPERATION,{operation:t,network:n.name});try{const t=yield this.call({to:n.ensAddress,data:"0x0178b8bf"+co(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null}))}resolveName(e){return Rf(this,void 0,void 0,(function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(Fn(e))throw t}"string"!=typeof e&&Cf.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null}))}lookupAddress(e){return Rf(this,void 0,void 0,(function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(t,"lookupAddress");if(null==n)return null;const r=qf(yield this.call({to:n,data:"0x691f3431"+co(t).substring(2)}),0);return(yield this.resolveName(r))!=e?null:r}))}getAvatar(e){return Rf(this,void 0,void 0,(function*(){let t=null;if(Fn(e)){const n=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(n,"getAvatar");if(!r)return null;t=new Wf(this,r,n);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==In.errors.CALL_EXCEPTION)throw e}try{const e=qf(yield this.call({to:r,data:"0x691f3431"+co(n).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==In.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const n=yield t.getAvatar();return null==n?null:n.url}))}perform(e,t){return Cf.throwError(e+" not implemented",In.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter((e=>e.pollable())).length>0}_stopEvent(e){this.polling=this._events.filter((e=>e.pollable())).length>0}_addEventListener(e,t,n){const r=new Mf(Sf(e),t,n);return this._events.push(r),this._startEvent(r),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let n=!1,r=[],i=Sf(e);return this._events=this._events.filter((e=>e.tag!==i||(setTimeout((()=>{e.listener.apply(this,t)}),0),n=!0,!e.once||(r.push(e),!1)))),r.forEach((e=>{this._stopEvent(e)})),n}listenerCount(e){if(!e)return this._events.length;let t=Sf(e);return this._events.filter((e=>e.tag===t)).length}listeners(e){if(null==e)return this._events.map((e=>e.listener));let t=Sf(e);return this._events.filter((e=>e.tag===t)).map((e=>e.listener))}off(e,t){if(null==t)return this.removeAllListeners(e);const n=[];let r=!1,i=Sf(e);return this._events=this._events.filter((e=>e.tag!==i||e.listener!=t||(!!r||(r=!0,n.push(e),!1)))),n.forEach((e=>{this._stopEvent(e)})),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const n=Sf(e);this._events=this._events.filter((e=>e.tag!==n||(t.push(e),!1)))}return t.forEach((e=>{this._stopEvent(e)})),this}}var Yf=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Qf=new In(vf),$f=["call","estimateGas"];function Zf(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const n=Fn(e.data)?e.data:null;if(!t||n)return{message:e.message,data:n}}if("object"==typeof e){for(const n in e){const r=Zf(e[n],t);if(r)return r}return null}if("string"==typeof e)try{return Zf(JSON.parse(e),t)}catch(e){}return null}function ep(e,t,n){const r=n.transaction||n.signedTransaction;if("call"===e){const e=Zf(t,!0);if(e)return e.data;Qf.throwError("missing revert data in call exception; Transaction reverted without a reason string",In.errors.CALL_EXCEPTION,{data:"0x",transaction:r,error:t})}if("estimateGas"===e){let n=Zf(t.body,!1);null==n&&(n=Zf(t,!1)),n&&Qf.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",In.errors.UNPREDICTABLE_GAS_LIMIT,{reason:n.message,method:e,transaction:r,error:t})}let i=t.message;throw t.code===In.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Qf.throwError("insufficient funds for intrinsic transaction cost",In.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:r}),i.match(/nonce (is )?too low/i)&&Qf.throwError("nonce has already been used",In.errors.NONCE_EXPIRED,{error:t,method:e,transaction:r}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Qf.throwError("replacement fee too low",In.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:r}),i.match(/only replay-protected/i)&&Qf.throwError("legacy pre-eip-155 transactions not supported",In.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:r}),$f.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Qf.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",In.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:r}),t}function tp(e){return new Promise((function(t){setTimeout(t,e)}))}function np(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function rp(e){return e?e.toLowerCase():e}const ip={};class ap extends Xo{constructor(e,t,n){if(super(),e!==ip)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");Tr(this,"provider",t),null==n&&(n=0),"string"==typeof n?(Tr(this,"_address",this.provider.formatter.address(n)),Tr(this,"_index",null)):"number"==typeof n?(Tr(this,"_index",n),Tr(this,"_address",null)):Qf.throwArgumentError("invalid address or index","addressOrIndex",n)}connect(e){return Qf.throwError("cannot alter JSON-RPC Signer connection",In.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new op(ip,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then((e=>(e.length<=this._index&&Qf.throwError("unknown account #"+this._index,In.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index]))))}sendUncheckedTransaction(e){e=Ir(e);const t=this.getAddress().then((e=>(e&&(e=e.toLowerCase()),e)));if(null==e.gasLimit){const n=Ir(e);n.from=t,e.gasLimit=this.provider.estimateGas(n)}return null!=e.to&&(e.to=Promise.resolve(e.to).then((e=>Yf(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Qf.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))))),Er({tx:Er(e),sender:t}).then((({tx:t,sender:n})=>{null!=t.from?t.from.toLowerCase()!==n&&Qf.throwArgumentError("from address mismatch","transaction",e):t.from=n;const r=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[r]).then((e=>e),(e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&Qf.throwError("user rejected transaction",In.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),ep("sendTransaction",e,r))))}))}signTransaction(e){return Qf.throwError("signing transactions is unsupported",In.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return Yf(this,void 0,void 0,(function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),n=yield this.sendUncheckedTransaction(e);try{return yield sf((()=>Yf(this,void 0,void 0,(function*(){const e=yield this.provider.getTransaction(n);if(null!==e)return this.provider._wrapTransaction(e,n,t)}))),{oncePoll:this.provider})}catch(e){throw e.transactionHash=n,e}}))}signMessage(e){return Yf(this,void 0,void 0,(function*(){const t="string"==typeof e?aa(e):e,n=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Un(t),n.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Qf.throwError("user rejected signing",In.errors.ACTION_REJECTED,{action:"signMessage",from:n,messageData:e}),t}}))}_legacySignMessage(e){return Yf(this,void 0,void 0,(function*(){const t="string"==typeof e?aa(e):e,n=yield this.getAddress();try{return yield this.provider.send("eth_sign",[n.toLowerCase(),Un(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Qf.throwError("user rejected signing",In.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:n,messageData:e}),t}}))}_signTypedData(e,t,n){return Yf(this,void 0,void 0,(function*(){const r=yield ko.resolveNames(e,t,n,(e=>this.provider.resolveName(e))),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(ko.getPayload(r.domain,t,r.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Qf.throwError("user rejected signing",In.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:r.domain,types:t,value:r.value}}),e}}))}unlock(e){return Yf(this,void 0,void 0,(function*(){const t=this.provider,n=yield this.getAddress();return t.send("personal_unlockAccount",[n.toLowerCase(),e,null])}))}}class op extends ap{sendTransaction(e){return this.sendUncheckedTransaction(e).then((e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)})))}}const sp={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};let up=class extends Jf{constructor(e,t){let n=t;null==n&&(n=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then((t=>{e(t)}),(e=>{t(e)}))}),0)}))),super(n),e||(e=Ar(this.constructor,"defaultUrl")()),Tr(this,"connection","string"==typeof e?Object.freeze({url:e}):Object.freeze(Ir(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout((()=>{this._cache.detectNetwork=null}),0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return Yf(this,void 0,void 0,(function*(){yield tp(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=Ar(this.constructor,"getNetwork");try{return t(tr.from(e).toNumber())}catch(t){return Qf.throwError("could not detect network",In.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Qf.throwError("could not detect network",In.errors.NETWORK_ERROR,{event:"noNetwork"})}))}getSigner(e){return new ap(ip,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then((e=>e.map((e=>this.formatter.address(e)))))}send(e,t){const n={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:kr(n),provider:this});const r=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(r&&this._cache[e])return this._cache[e];const i=of(this.connection,JSON.stringify(n),np).then((e=>(this.emit("debug",{action:"response",request:n,response:e,provider:this}),e)),(e=>{throw this.emit("debug",{action:"response",error:e,request:n,provider:this}),e}));return r&&(this._cache[e]=i,setTimeout((()=>{this._cache[e]=null}),0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[rp(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[rp(t.address),t.blockTag]];case"getCode":return["eth_getCode",[rp(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[rp(t.address),Vn(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[Ar(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[Ar(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=rp(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return Yf(this,void 0,void 0,(function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&tr.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const n=yield this.getFeeData();null==n.maxFeePerGas&&null==n.maxPriorityFeePerGas&&((t=Ir(t)).transaction=Ir(e),delete t.transaction.type)}}const n=this.prepareRequest(e,t);null==n&&Qf.throwError(e+" not implemented",In.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(n[0],n[1])}catch(n){return ep(e,n,t)}}))}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then((function(n){return function r(){e.send("eth_getFilterChanges",[n]).then((function(n){if(e._pendingFilter!=t)return null;let r=Promise.resolve();return n.forEach((function(t){e._emitted["t:"+t.toLowerCase()]="pending",r=r.then((function(){return e.getTransaction(t).then((function(t){return e.emit("pending",t),null}))}))})),r.then((function(){return tp(1e3)}))})).then((function(){if(e._pendingFilter==t)return setTimeout((function(){r()}),0),null;e.send("eth_uninstallFilter",[n])})).catch((e=>{}))}(),n})).catch((e=>{}))}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const n=Ir(sp);if(t)for(const e in t)t[e]&&(n[e]=!0);_r(e,n);const r={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((function(t){if(null==e[t])return;const n=Hn(tr.from(e[t]));"gasLimit"===t&&(t="gas"),r[t]=n})),["from","to","data"].forEach((function(t){null!=e[t]&&(r[t]=Un(e[t]))})),e.accessList&&(r.accessList=Yc(e.accessList)),r}},cp=null;try{if(cp=WebSocket,null==cp)throw new Error("inject please")}catch(e){const t=new In(vf);cp=function(){t.throwError("WebSockets not supported in this environment",In.errors.UNSUPPORTED_OPERATION,{operation:"new WebSocket()"})}}var lp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const dp=new In(vf);let fp=1;class pp extends up{constructor(e,t){"any"===t&&dp.throwError("WebSocketProvider does not support 'any' network yet",In.errors.UNSUPPORTED_OPERATION,{operation:"network:any"}),super("string"==typeof e?e:"_websocket",t),this._pollingInterval=-1,this._wsReady=!1,Tr(this,"_websocket","string"==typeof e?new cp(this.connection.url):e),Tr(this,"_requests",{}),Tr(this,"_subs",{}),Tr(this,"_subIds",{}),Tr(this,"_detectNetwork",super.detectNetwork()),this.websocket.onopen=()=>{this._wsReady=!0,Object.keys(this._requests).forEach((e=>{this.websocket.send(this._requests[e].payload)}))},this.websocket.onmessage=e=>{const t=e.data,n=JSON.parse(t);if(null!=n.id){const e=String(n.id),r=this._requests[e];if(delete this._requests[e],void 0!==n.result)r.callback(null,n.result),this.emit("debug",{action:"response",request:JSON.parse(r.payload),response:n.result,provider:this});else{let e=null;n.error?(e=new Error(n.error.message||"unknown error"),Tr(e,"code",n.error.code||null),Tr(e,"response",t)):e=new Error("unknown error"),r.callback(e,void 0),this.emit("debug",{action:"response",error:e,request:JSON.parse(r.payload),provider:this})}}else if("eth_subscription"===n.method){const e=this._subs[n.params.subscription];e&&e.processFunc(n.params.result)}else console.warn("this should not happen")};const n=setInterval((()=>{this.emit("poll")}),1e3);n.unref&&n.unref()}get websocket(){return this._websocket}detectNetwork(){return this._detectNetwork}get pollingInterval(){return 0}resetEventsBlock(e){dp.throwError("cannot reset events block on WebSocketProvider",In.errors.UNSUPPORTED_OPERATION,{operation:"resetEventBlock"})}set pollingInterval(e){dp.throwError("cannot set polling interval on WebSocketProvider",In.errors.UNSUPPORTED_OPERATION,{operation:"setPollingInterval"})}poll(){return lp(this,void 0,void 0,(function*(){return null}))}set polling(e){e&&dp.throwError("cannot set polling on WebSocketProvider",In.errors.UNSUPPORTED_OPERATION,{operation:"setPolling"})}send(e,t){const n=fp++;return new Promise(((r,i)=>{const a=JSON.stringify({method:e,params:t,id:n,jsonrpc:"2.0"});this.emit("debug",{action:"request",request:JSON.parse(a),provider:this}),this._requests[String(n)]={callback:function(e,t){return e?i(e):r(t)},payload:a},this._wsReady&&this.websocket.send(a)}))}static defaultUrl(){return"ws://localhost:8546"}_subscribe(e,t,n){return lp(this,void 0,void 0,(function*(){let r=this._subIds[e];null==r&&(r=Promise.all(t).then((e=>this.send("eth_subscribe",e))),this._subIds[e]=r);const i=yield r;this._subs[i]={tag:e,processFunc:n}}))}_startEvent(e){switch(e.type){case"block":this._subscribe("block",["newHeads"],(e=>{const t=tr.from(e.number).toNumber();this._emitted.block=t,this.emit("block",t)}));break;case"pending":this._subscribe("pending",["newPendingTransactions"],(e=>{this.emit("pending",e)}));break;case"filter":this._subscribe(e.tag,["logs",this._getFilter(e.filter)],(t=>{null==t.removed&&(t.removed=!1),this.emit(e.filter,this.formatter.filterLog(t))}));break;case"tx":{const t=e=>{const t=e.hash;this.getTransactionReceipt(t).then((e=>{e&&this.emit(t,e)}))};t(e),this._subscribe("tx",["newHeads"],(e=>{this._events.filter((e=>"tx"===e.type)).forEach(t)}));break}case"debug":case"poll":case"willPoll":case"didPoll":case"error":break;default:console.log("unhandled:",e)}}_stopEvent(e){let t=e.tag;if("tx"===e.type){if(this._events.filter((e=>"tx"===e.type)).length)return;t="tx"}else if(this.listenerCount(e.event))return;const n=this._subIds[t];n&&(delete this._subIds[t],n.then((e=>{this._subs[e]&&(delete this._subs[e],this.send("eth_unsubscribe",[e]))})))}destroy(){return lp(this,void 0,void 0,(function*(){this.websocket.readyState===cp.CONNECTING&&(yield new Promise((e=>{this.websocket.onopen=function(){e(!0)},this.websocket.onerror=function(){e(!1)}}))),this.websocket.close(1e3)}))}}var hp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const mp=new In(vf);class yp extends up{detectNetwork(){const e=Object.create(null,{detectNetwork:{get:()=>super.detectNetwork}});return hp(this,void 0,void 0,(function*(){let t=this.network;return null==t&&(t=yield e.detectNetwork.call(this),t||mp.throwError("no network detected",In.errors.UNKNOWN_ERROR,{}),null==this._network&&(Tr(this,"_network",t),this.emit("network",t,null))),t}))}}class gp extends yp{constructor(e,t){mp.checkAbstract(new.target,gp),e=Ar(new.target,"getNetwork")(e),t=Ar(new.target,"getApiKey")(t);super(Ar(new.target,"getUrl")(e,t),e),"string"==typeof t?Tr(this,"apiKey",t):null!=t&&Object.keys(t).forEach((e=>{Tr(this,e,t[e])}))}_startPending(){mp.warn("WARNING: API provider does not support pending filters")}isCommunityResource(){return!1}getSigner(e){return mp.throwError("API provider does not support signing",In.errors.UNSUPPORTED_OPERATION,{operation:"getSigner"})}listAccounts(){return Promise.resolve([])}static getApiKey(e){return e}static getUrl(e,t){return mp.throwError("not implemented; sub-classes must override getUrl",In.errors.NOT_IMPLEMENTED,{operation:"getUrl"})}}const bp=new In(vf),vp="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";class wp extends pp{constructor(e,t){const n=new Tp(e,t);super(n.connection.url.replace(/^http/i,"ws").replace(".alchemyapi.",".ws.alchemyapi."),n.network),Tr(this,"apiKey",n.apiKey)}isCommunityResource(){return this.apiKey===vp}}class Tp extends gp{static getWebSocketProvider(e,t){return new wp(e,t)}static getApiKey(e){return null==e?vp:(e&&"string"!=typeof e&&bp.throwArgumentError("invalid apiKey","apiKey",e),e)}static getUrl(e,t){let n=null;switch(e.name){case"homestead":n="eth-mainnet.alchemyapi.io/v2/";break;case"goerli":n="eth-goerli.g.alchemy.com/v2/";break;case"matic":n="polygon-mainnet.g.alchemy.com/v2/";break;case"maticmum":n="polygon-mumbai.g.alchemy.com/v2/";break;case"arbitrum":n="arb-mainnet.g.alchemy.com/v2/";break;case"arbitrum-goerli":n="arb-goerli.g.alchemy.com/v2/";break;case"optimism":n="opt-mainnet.g.alchemy.com/v2/";break;case"optimism-goerli":n="opt-goerli.g.alchemy.com/v2/";break;default:bp.throwArgumentError("unsupported network","network",arguments[0])}return{allowGzip:!0,url:"https://"+n+t,throttleCallback:(e,n)=>(t===vp&&If(),Promise.resolve(!0))}}isCommunityResource(){return this.apiKey===vp}}const Ap=new In(vf),Ep="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";function _p(e){switch(e){case"homestead":return"rpc.ankr.com/eth/";case"ropsten":return"rpc.ankr.com/eth_ropsten/";case"rinkeby":return"rpc.ankr.com/eth_rinkeby/";case"goerli":return"rpc.ankr.com/eth_goerli/";case"matic":return"rpc.ankr.com/polygon/";case"arbitrum":return"rpc.ankr.com/arbitrum/"}return Ap.throwArgumentError("unsupported network","name",e)}class Ip extends gp{isCommunityResource(){return this.apiKey===Ep}static getApiKey(e){return null==e?Ep:e}static getUrl(e,t){null==t&&(t=Ep);const n={allowGzip:!0,url:"https://"+_p(e.name)+t,throttleCallback:(e,n)=>(t.apiKey===Ep&&If(),Promise.resolve(!0))};return null!=t.projectSecret&&(n.user="",n.password=t.projectSecret),n}}var Rp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Cp=new In(vf);class Op extends gp{static getApiKey(e){return null!=e&&Cp.throwArgumentError("apiKey not supported for cloudflare","apiKey",e),null}static getUrl(e,t){let n=null;if("homestead"===e.name)n="https://cloudflare-eth.com/";else Cp.throwArgumentError("unsupported network","network",arguments[0]);return n}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return Rp(this,void 0,void 0,(function*(){if("getBlockNumber"===e){return(yield n.perform.call(this,"getBlock",{blockTag:"latest"})).number}return n.perform.call(this,e,t)}))}}var kp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Sp=new In(vf);function Np(e){const t={};for(let n in e){if(null==e[n])continue;let r=e[n];"type"===n&&0===r||(r={type:!0,gasLimit:!0,gasPrice:!0,maxFeePerGs:!0,maxPriorityFeePerGas:!0,nonce:!0,value:!0}[n]?Hn(Un(r)):"accessList"===n?"["+Yc(r).map((e=>`{address:"${e.address}",storageKeys:["${e.storageKeys.join('","')}"]}`)).join(",")+"]":Un(r),t[n]=r)}return t}function xp(e){if(0==e.status&&("No records found"===e.message||"No transactions found"===e.message))return e.result;if(1!=e.status||"string"!=typeof e.message||!e.message.match(/^OK/)){const t=new Error("invalid response");throw t.result=JSON.stringify(e),(e.result||"").toLowerCase().indexOf("rate limit")>=0&&(t.throttleRetry=!0),t}return e.result}function Pp(e){if(e&&0==e.status&&"NOTOK"==e.message&&(e.result||"").toLowerCase().indexOf("rate limit")>=0){const t=new Error("throttled response");throw t.result=JSON.stringify(e),t.throttleRetry=!0,t}if("2.0"!=e.jsonrpc){const t=new Error("invalid response");throw t.result=JSON.stringify(e),t}if(e.error){const t=new Error(e.error.message||"unknown error");throw e.error.code&&(t.code=e.error.code),e.error.data&&(t.data=e.error.data),t}return e.result}function Mp(e){if("pending"===e)throw new Error("pending not supported");return"latest"===e?e:parseInt(e.substring(2),16)}function Bp(e,t,n){if("call"===e&&t.code===In.errors.SERVER_ERROR){const e=t.error;if(e&&(e.message.match(/reverted/i)||e.message.match(/VM execution error/i))){let n=e.data;if(n&&(n="0x"+n.replace(/^.*0x/i,"")),Fn(n))return n;Sp.throwError("missing revert data in call exception",In.errors.CALL_EXCEPTION,{error:t,data:"0x"})}}let r=t.message;throw t.code===In.errors.SERVER_ERROR&&(t.error&&"string"==typeof t.error.message?r=t.error.message:"string"==typeof t.body?r=t.body:"string"==typeof t.responseText&&(r=t.responseText)),r=(r||"").toLowerCase(),r.match(/insufficient funds/)&&Sp.throwError("insufficient funds for intrinsic transaction cost",In.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),r.match(/same hash was already imported|transaction nonce is too low|nonce too low/)&&Sp.throwError("nonce has already been used",In.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),r.match(/another transaction with same nonce/)&&Sp.throwError("replacement fee too low",In.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),r.match(/execution failed due to an exception|execution reverted/)&&Sp.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",In.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}class Dp extends Jf{constructor(e,t){super(e),Tr(this,"baseUrl",this.getBaseUrl()),Tr(this,"apiKey",t||null)}getBaseUrl(){switch(this.network?this.network.name:"invalid"){case"homestead":return"https://api.etherscan.io";case"goerli":return"https://api-goerli.etherscan.io";case"sepolia":return"https://api-sepolia.etherscan.io";case"matic":return"https://api.polygonscan.com";case"maticmum":return"https://api-testnet.polygonscan.com";case"arbitrum":return"https://api.arbiscan.io";case"arbitrum-goerli":return"https://api-goerli.arbiscan.io";case"optimism":return"https://api-optimistic.etherscan.io";case"optimism-goerli":return"https://api-goerli-optimistic.etherscan.io"}return Sp.throwArgumentError("unsupported network","network",this.network.name)}getUrl(e,t){const n=Object.keys(t).reduce(((e,n)=>{const r=t[n];return null!=r&&(e+=`&${n}=${r}`),e}),""),r=this.apiKey?`&apikey=${this.apiKey}`:"";return`${this.baseUrl}/api?module=${e}${n}${r}`}getPostUrl(){return`${this.baseUrl}/api`}getPostData(e,t){return t.module=e,t.apikey=this.apiKey,t}fetch(e,t,n){return kp(this,void 0,void 0,(function*(){const r=n?this.getPostUrl():this.getUrl(e,t),i=n?this.getPostData(e,t):null,a="proxy"===e?Pp:xp;this.emit("debug",{action:"request",request:r,provider:this});const o={url:r,throttleSlotInterval:1e3,throttleCallback:(e,t)=>(this.isCommunityResource()&&If(),Promise.resolve(!0))};let s=null;i&&(o.headers={"content-type":"application/x-www-form-urlencoded; charset=UTF-8"},s=Object.keys(i).map((e=>`${e}=${i[e]}`)).join("&"));const u=yield of(o,s,a||Pp);return this.emit("debug",{action:"response",request:r,response:kr(u),provider:this}),u}))}detectNetwork(){return kp(this,void 0,void 0,(function*(){return this.network}))}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return kp(this,void 0,void 0,(function*(){switch(e){case"getBlockNumber":return this.fetch("proxy",{action:"eth_blockNumber"});case"getGasPrice":return this.fetch("proxy",{action:"eth_gasPrice"});case"getBalance":return this.fetch("account",{action:"balance",address:t.address,tag:t.blockTag});case"getTransactionCount":return this.fetch("proxy",{action:"eth_getTransactionCount",address:t.address,tag:t.blockTag});case"getCode":return this.fetch("proxy",{action:"eth_getCode",address:t.address,tag:t.blockTag});case"getStorageAt":return this.fetch("proxy",{action:"eth_getStorageAt",address:t.address,position:t.position,tag:t.blockTag});case"sendTransaction":return this.fetch("proxy",{action:"eth_sendRawTransaction",hex:t.signedTransaction},!0).catch((e=>Bp("sendTransaction",e,t.signedTransaction)));case"getBlock":if(t.blockTag)return this.fetch("proxy",{action:"eth_getBlockByNumber",tag:t.blockTag,boolean:t.includeTransactions?"true":"false"});throw new Error("getBlock by blockHash not implemented");case"getTransaction":return this.fetch("proxy",{action:"eth_getTransactionByHash",txhash:t.transactionHash});case"getTransactionReceipt":return this.fetch("proxy",{action:"eth_getTransactionReceipt",txhash:t.transactionHash});case"call":{if("latest"!==t.blockTag)throw new Error("EtherscanProvider does not support blockTag for call");const e=Np(t.transaction);e.module="proxy",e.action="eth_call";try{return yield this.fetch("proxy",e,!0)}catch(e){return Bp("call",e,t.transaction)}}case"estimateGas":{const e=Np(t.transaction);e.module="proxy",e.action="eth_estimateGas";try{return yield this.fetch("proxy",e,!0)}catch(e){return Bp("estimateGas",e,t.transaction)}}case"getLogs":{const e={action:"getLogs"};if(t.filter.fromBlock&&(e.fromBlock=Mp(t.filter.fromBlock)),t.filter.toBlock&&(e.toBlock=Mp(t.filter.toBlock)),t.filter.address&&(e.address=t.filter.address),t.filter.topics&&t.filter.topics.length>0&&(t.filter.topics.length>1&&Sp.throwError("unsupported topic count",In.errors.UNSUPPORTED_OPERATION,{topics:t.filter.topics}),1===t.filter.topics.length)){const n=t.filter.topics[0];"string"==typeof n&&66===n.length||Sp.throwError("unsupported topic format",In.errors.UNSUPPORTED_OPERATION,{topic0:n}),e.topic0=n}const n=yield this.fetch("logs",e);let r={};for(let e=0;e<n.length;e++){const t=n[e];if(null==t.blockHash){if(null==r[t.blockNumber]){const e=yield this.getBlock(t.blockNumber);e&&(r[t.blockNumber]=e.hash)}t.blockHash=r[t.blockNumber]}}return n}case"getEtherPrice":return"homestead"!==this.network.name?0:parseFloat((yield this.fetch("stats",{action:"ethprice"})).ethusd)}return n.perform.call(this,e,t)}))}getHistory(e,t,n){return kp(this,void 0,void 0,(function*(){const r={action:"txlist",address:yield this.resolveName(e),startblock:null==t?0:t,endblock:null==n?99999999:n,sort:"asc"};return(yield this.fetch("account",r)).map((e=>{["contractAddress","to"].forEach((function(t){""==e[t]&&delete e[t]})),null==e.creates&&null!=e.contractAddress&&(e.creates=e.contractAddress);const t=this.formatter.transactionResponse(e);return e.timeStamp&&(t.timestamp=parseInt(e.timeStamp)),t}))}))}isCommunityResource(){return null==this.apiKey}}var Fp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Lp=new In(vf);function Up(){return(new Date).getTime()}function qp(e){let t=null;for(let n=0;n<e.length;n++){const r=e[n];if(null==r)return null;t?t.name===r.name&&t.chainId===r.chainId&&(t.ensAddress===r.ensAddress||null==t.ensAddress&&null==r.ensAddress)||Lp.throwArgumentError("provider mismatch","networks",e):t=r}return t}function jp(e,t){e=e.slice().sort();const n=Math.floor(e.length/2);if(e.length%2)return e[n];const r=e[n-1],i=e[n];return null!=t&&Math.abs(r-i)>t?null:(r+i)/2}function Gp(e){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return JSON.stringify(e);if("string"==typeof e)return e;if(tr.isBigNumber(e))return e.toString();if(Array.isArray(e))return JSON.stringify(e.map((e=>Gp(e))));if("object"==typeof e){const t=Object.keys(e);return t.sort(),"{"+t.map((t=>{let n=e[t];return n="function"==typeof n?"[function]":Gp(n),JSON.stringify(t)+":"+n})).join(",")+"}"}throw new Error("unknown value type: "+typeof e)}let Hp=1;function zp(e){let t=null,n=null,r=new Promise((r=>{t=function(){n&&(clearTimeout(n),n=null),r()},n=setTimeout(t,e)}));return{cancel:t,getPromise:function(){return r},wait:e=>(r=r.then(e),r)}}const Vp=[In.errors.CALL_EXCEPTION,In.errors.INSUFFICIENT_FUNDS,In.errors.NONCE_EXPIRED,In.errors.REPLACEMENT_UNDERPRICED,In.errors.UNPREDICTABLE_GAS_LIMIT],Wp=["address","args","errorArgs","errorSignature","method","transaction"];function Kp(e,t){const n={weight:e.weight};return Object.defineProperty(n,"provider",{get:()=>e.provider}),e.start&&(n.start=e.start),t&&(n.duration=t-e.start),e.done&&(e.error?n.error=e.error:n.result=e.result||null),n}function Xp(e,t,n){let r=Gp;switch(t){case"getBlockNumber":return function(t){const n=t.map((e=>e.result));let r=jp(t.map((e=>e.result)),2);if(null!=r)return r=Math.ceil(r),n.indexOf(r+1)>=0&&r++,r>=e._highestBlockNumber&&(e._highestBlockNumber=r),e._highestBlockNumber};case"getGasPrice":return function(e){const t=e.map((e=>e.result));return t.sort(),t[Math.floor(t.length/2)]};case"getEtherPrice":return function(e){return jp(e.map((e=>e.result)))};case"getBalance":case"getTransactionCount":case"getCode":case"getStorageAt":case"call":case"estimateGas":case"getLogs":break;case"getTransaction":case"getTransactionReceipt":r=function(e){return null==e?null:((e=Ir(e)).confirmations=-1,Gp(e))};break;case"getBlock":r=n.includeTransactions?function(e){return null==e?null:((e=Ir(e)).transactions=e.transactions.map((e=>((e=Ir(e)).confirmations=-1,e))),Gp(e))}:function(e){return null==e?null:Gp(e)};break;default:throw new Error("unknown method: "+t)}return function(e,t){return function(n){const r={};n.forEach((t=>{const n=e(t.result);r[n]||(r[n]={count:0,result:t.result}),r[n].count++}));const i=Object.keys(r);for(let e=0;e<i.length;e++){const n=r[i[e]];if(n.count>=t)return n.result}}}(r,e.quorum)}function Jp(e,t){return Fp(this,void 0,void 0,(function*(){const n=e.provider;return null!=n.blockNumber&&n.blockNumber>=t||-1===t?n:sf((()=>new Promise(((r,i)=>{setTimeout((function(){return n.blockNumber>=t?r(n):e.cancelled?r(null):r(void 0)}),0)}))),{oncePoll:n})}))}function Yp(e,t,n,r){return Fp(this,void 0,void 0,(function*(){let i=e.provider;switch(n){case"getBlockNumber":case"getGasPrice":return i[n]();case"getEtherPrice":if(i.getEtherPrice)return i.getEtherPrice();break;case"getBalance":case"getTransactionCount":case"getCode":return r.blockTag&&Fn(r.blockTag)&&(i=yield Jp(e,t)),i[n](r.address,r.blockTag||"latest");case"getStorageAt":return r.blockTag&&Fn(r.blockTag)&&(i=yield Jp(e,t)),i.getStorageAt(r.address,r.position,r.blockTag||"latest");case"getBlock":return r.blockTag&&Fn(r.blockTag)&&(i=yield Jp(e,t)),i[r.includeTransactions?"getBlockWithTransactions":"getBlock"](r.blockTag||r.blockHash);case"call":case"estimateGas":return r.blockTag&&Fn(r.blockTag)&&(i=yield Jp(e,t)),"call"===n&&r.blockTag?i[n](r.transaction,r.blockTag):i[n](r.transaction);case"getTransaction":case"getTransactionReceipt":return i[n](r.transactionHash);case"getLogs":{let n=r.filter;return(n.fromBlock&&Fn(n.fromBlock)||n.toBlock&&Fn(n.toBlock))&&(i=yield Jp(e,t)),i.getLogs(n)}}return Lp.throwError("unknown method error",In.errors.UNKNOWN_ERROR,{method:n,params:r})}))}class Qp extends Jf{constructor(e,t){0===e.length&&Lp.throwArgumentError("missing providers","providers",e);const n=e.map(((e,t)=>{if(Ho.isProvider(e)){const t=Ef(e)?2e3:750,n=1;return Object.freeze({provider:e,weight:1,stallTimeout:t,priority:n})}const n=Ir(e);null==n.priority&&(n.priority=1),null==n.stallTimeout&&(n.stallTimeout=Ef(e)?2e3:750),null==n.weight&&(n.weight=1);const r=n.weight;return(r%1||r>512||r<1)&&Lp.throwArgumentError("invalid weight; must be integer in [1, 512]",`providers[${t}].weight`,r),Object.freeze(n)})),r=n.reduce(((e,t)=>e+t.weight),0);null==t?t=r/2:t>r&&Lp.throwArgumentError("quorum will always fail; larger than total weight","quorum",t);let i=qp(n.map((e=>e.provider.network)));null==i&&(i=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then(e,t)}),0)}))),super(i),Tr(this,"providerConfigs",Object.freeze(n)),Tr(this,"quorum",t),this._highestBlockNumber=-1}detectNetwork(){return Fp(this,void 0,void 0,(function*(){return qp(yield Promise.all(this.providerConfigs.map((e=>e.provider.getNetwork()))))}))}perform(e,t){return Fp(this,void 0,void 0,(function*(){if("sendTransaction"===e){const e=yield Promise.all(this.providerConfigs.map((e=>e.provider.sendTransaction(t.signedTransaction).then((e=>e.hash),(e=>e)))));for(let t=0;t<e.length;t++){const n=e[t];if("string"==typeof n)return n}throw e[0]}-1===this._highestBlockNumber&&"getBlockNumber"!==e&&(yield this.getBlockNumber());const n=Xp(this,e,t),r=od(this.providerConfigs.map(Ir));r.sort(((e,t)=>e.priority-t.priority));const i=this._highestBlockNumber;let a=0,o=!0;for(;;){const s=Up();let u=r.filter((e=>e.runner&&s-e.start<e.stallTimeout)).reduce(((e,t)=>e+t.weight),0);for(;u<this.quorum&&a<r.length;){const n=r[a++],o=Hp++;n.start=Up(),n.staller=zp(n.stallTimeout),n.staller.wait((()=>{n.staller=null})),n.runner=Yp(n,i,e,t).then((r=>{n.done=!0,n.result=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:Kp(n,Up()),request:{method:e,params:kr(t)},provider:this})}),(r=>{n.done=!0,n.error=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:Kp(n,Up()),request:{method:e,params:kr(t)},provider:this})})),this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:Kp(n,null),request:{method:e,params:kr(t)},provider:this}),u+=n.weight}const c=[];r.forEach((e=>{!e.done&&e.runner&&(c.push(e.runner),e.staller&&c.push(e.staller.getPromise()))})),c.length&&(yield Promise.race(c));const l=r.filter((e=>e.done&&null==e.error));if(l.length>=this.quorum){const e=n(l);if(void 0!==e)return r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0})),e;o||(yield zp(100).getPromise()),o=!1}const d=r.reduce(((e,t)=>{if(!t.done||null==t.error)return e;const n=t.error.code;return Vp.indexOf(n)>=0&&(e[n]||(e[n]={error:t.error,weight:0}),e[n].weight+=t.weight),e}),{});if(Object.keys(d).forEach((e=>{const t=d[e];if(t.weight<this.quorum)return;r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0}));const n=t.error,i={};Wp.forEach((e=>{null!=n[e]&&(i[e]=n[e])})),Lp.throwError(n.reason||n.message,e,i)})),0===r.filter((e=>!e.done)).length)break}return r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0})),Lp.throwError("failed to meet quorum",In.errors.SERVER_ERROR,{method:e,params:t,results:r.map((e=>Kp(e))),provider:this})}))}}const $p=new In(vf),Zp="84842078b09946638c03157f83405213";class eh extends pp{constructor(e,t){const n=new th(e,t),r=n.connection;r.password&&$p.throwError("INFURA WebSocket project secrets unsupported",In.errors.UNSUPPORTED_OPERATION,{operation:"InfuraProvider.getWebSocketProvider()"});super(r.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/"),e),Tr(this,"apiKey",n.projectId),Tr(this,"projectId",n.projectId),Tr(this,"projectSecret",n.projectSecret)}isCommunityResource(){return this.projectId===Zp}}class th extends gp{static getWebSocketProvider(e,t){return new eh(e,t)}static getApiKey(e){const t={apiKey:Zp,projectId:Zp,projectSecret:null};return null==e||("string"==typeof e?t.projectId=e:null!=e.projectSecret?($p.assertArgument("string"==typeof e.projectId,"projectSecret requires a projectId","projectId",e.projectId),$p.assertArgument("string"==typeof e.projectSecret,"invalid projectSecret","projectSecret","[REDACTED]"),t.projectId=e.projectId,t.projectSecret=e.projectSecret):e.projectId&&(t.projectId=e.projectId),t.apiKey=t.projectId),t}static getUrl(e,t){let n=null;switch(e?e.name:"unknown"){case"homestead":n="mainnet.infura.io";break;case"goerli":n="goerli.infura.io";break;case"sepolia":n="sepolia.infura.io";break;case"matic":n="polygon-mainnet.infura.io";break;case"maticmum":n="polygon-mumbai.infura.io";break;case"optimism":n="optimism-mainnet.infura.io";break;case"optimism-goerli":n="optimism-goerli.infura.io";break;case"arbitrum":n="arbitrum-mainnet.infura.io";break;case"arbitrum-goerli":n="arbitrum-goerli.infura.io";break;default:$p.throwError("unsupported network",In.errors.INVALID_ARGUMENT,{argument:"network",value:e})}const r={allowGzip:!0,url:"https://"+n+"/v3/"+t.projectId,throttleCallback:(e,n)=>(t.projectId===Zp&&If(),Promise.resolve(!0))};return null!=t.projectSecret&&(r.user="",r.password=t.projectSecret),r}isCommunityResource(){return this.projectId===Zp}}const nh=new In(vf);class rh extends gp{static getApiKey(e){return e&&"string"!=typeof e&&nh.throwArgumentError("invalid apiKey","apiKey",e),e||"ETHERS_JS_SHARED"}static getUrl(e,t){nh.warn("NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.");let n=null;switch(e.name){case"homestead":n="https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc";break;case"ropsten":n="https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc";break;case"rinkeby":n="https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc";break;case"goerli":n="https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc";break;case"kovan":n="https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc";break;default:nh.throwArgumentError("unsupported network","network",arguments[0])}return n+"?apiKey="+t}}const ih=new In(vf),ah="62e1ad51b37b8e00394bda3b";class oh extends gp{static getApiKey(e){const t={applicationId:null,loadBalancer:!0,applicationSecretKey:null};return null==e?t.applicationId=ah:"string"==typeof e?t.applicationId=e:null!=e.applicationSecretKey?(t.applicationId=e.applicationId,t.applicationSecretKey=e.applicationSecretKey):e.applicationId?t.applicationId=e.applicationId:ih.throwArgumentError("unsupported PocketProvider apiKey","apiKey",e),t}static getUrl(e,t){let n=null;switch(e?e.name:"unknown"){case"goerli":n="eth-goerli.gateway.pokt.network";break;case"homestead":n="eth-mainnet.gateway.pokt.network";break;case"kovan":n="poa-kovan.gateway.pokt.network";break;case"matic":n="poly-mainnet.gateway.pokt.network";break;case"maticmum":n="polygon-mumbai-rpc.gateway.pokt.network";break;case"rinkeby":n="eth-rinkeby.gateway.pokt.network";break;case"ropsten":n="eth-ropsten.gateway.pokt.network";break;default:ih.throwError("unsupported network",In.errors.INVALID_ARGUMENT,{argument:"network",value:e})}const r={headers:{},url:`https://${n}/v1/lb/${t.applicationId}`};return null!=t.applicationSecretKey&&(r.user="",r.password=t.applicationSecretKey),r}isCommunityResource(){return this.applicationId===ah}}const sh=new In(vf);let uh=1;function ch(e,t){const n="Web3LegacyFetcher";return function(e,r){const i={method:e,params:r,id:uh++,jsonrpc:"2.0"};return new Promise(((e,r)=>{this.emit("debug",{action:"request",fetcher:n,request:kr(i),provider:this}),t(i,((t,a)=>{if(t)return this.emit("debug",{action:"response",fetcher:n,error:t,request:i,provider:this}),r(t);if(this.emit("debug",{action:"response",fetcher:n,request:i,response:a,provider:this}),a.error){const e=new Error(a.error.message);return e.code=a.error.code,e.data=a.error.data,r(e)}e(a.result)}))}))}}class lh extends up{constructor(e,t){null==e&&sh.throwArgumentError("missing provider","provider",e);let n=null,r=null,i=null;"function"==typeof e?(n="unknown:",r=e):(n=e.host||e.path||"",!n&&e.isMetaMask&&(n="metamask"),i=e,e.request?(""===n&&(n="eip-1193:"),r=function(e){return function(t,n){null==n&&(n=[]);const r={method:t,params:n};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:kr(r),provider:this}),e.request(r).then((e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,response:e,provider:this}),e)),(e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,error:e,provider:this}),e}))}}(e)):e.sendAsync?r=ch(0,e.sendAsync.bind(e)):e.send?r=ch(0,e.send.bind(e)):sh.throwArgumentError("unsupported provider","provider",e),n||(n="unknown:")),super(n,t),Tr(this,"jsonRpcFetchFunc",r),Tr(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}const dh=new In(vf);function fh(e,t){if(null==e&&(e="homestead"),"string"==typeof e){const t=e.match(/^(ws|http)s?:/i);if(t)switch(t[1].toLowerCase()){case"http":case"https":return new up(e);case"ws":case"wss":return new pp(e);default:dh.throwArgumentError("unsupported URL scheme","network",e)}}const n=Qd(e);return n&&n._defaultProvider||dh.throwError("unsupported getDefaultProvider network",In.errors.NETWORK_ERROR,{operation:"getDefaultProvider",network:e}),n._defaultProvider({FallbackProvider:Qp,AlchemyProvider:Tp,AnkrProvider:Ip,CloudflareProvider:Op,EtherscanProvider:Dp,InfuraProvider:th,JsonRpcProvider:up,NodesmithProvider:rh,PocketProvider:oh,Web3Provider:lh,IpcProvider:null},t)}var ph=Object.freeze({__proto__:null,AlchemyProvider:Tp,AlchemyWebSocketProvider:wp,AnkrProvider:Ip,BaseProvider:Jf,CloudflareProvider:Op,EtherscanProvider:Dp,FallbackProvider:Qp,Formatter:Tf,InfuraProvider:th,InfuraWebSocketProvider:eh,IpcProvider:null,JsonRpcBatchProvider:class extends up{send(e,t){const n={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};null==this._pendingBatch&&(this._pendingBatch=[]);const r={request:n,resolve:null,reject:null},i=new Promise(((e,t)=>{r.resolve=e,r.reject=t}));return this._pendingBatch.push(r),this._pendingBatchAggregator||(this._pendingBatchAggregator=setTimeout((()=>{const e=this._pendingBatch;this._pendingBatch=null,this._pendingBatchAggregator=null;const t=e.map((e=>e.request));return this.emit("debug",{action:"requestBatch",request:kr(t),provider:this}),of(this.connection,JSON.stringify(t)).then((n=>{this.emit("debug",{action:"response",request:t,response:n,provider:this}),e.forEach(((e,t)=>{const r=n[t];if(r.error){const t=new Error(r.error.message);t.code=r.error.code,t.data=r.error.data,e.reject(t)}else e.resolve(r.result)}))}),(n=>{this.emit("debug",{action:"response",error:n,request:t,provider:this}),e.forEach((e=>{e.reject(n)}))}))}),10)),i}},JsonRpcProvider:up,JsonRpcSigner:ap,NodesmithProvider:rh,PocketProvider:oh,Provider:Ho,Resolver:Wf,StaticJsonRpcProvider:yp,UrlJsonRpcProvider:gp,Web3Provider:lh,WebSocketProvider:pp,getDefaultProvider:fh,getNetwork:Qd,isCommunityResourcable:Af,isCommunityResource:Ef,showThrottleMessage:If});const hh=new RegExp("^bytes([0-9]+)$"),mh=new RegExp("^(u?int)([0-9]*)$"),yh=new RegExp("^(.*)\\[([0-9]*)\\]$"),gh="0000000000000000000000000000000000000000000000000000000000000000",bh=new In("solidity/5.7.0");function vh(e,t,n){switch(e){case"address":return n?Dn(t,32):Pn(t);case"string":return aa(t);case"bytes":return Pn(t);case"bool":return t=t?"0x01":"0x00",n?Dn(t,32):Pn(t)}let r=e.match(mh);if(r){let i=parseInt(r[2]||"256");return(r[2]&&String(i)!==r[2]||i%8!=0||0===i||i>256)&&bh.throwArgumentError("invalid number type","type",e),n&&(i=256),Dn(t=tr.from(t).toTwos(i),i/8)}if(r=e.match(hh),r){const i=parseInt(r[1]);return(String(i)!==r[1]||0===i||i>32)&&bh.throwArgumentError("invalid bytes type","type",e),Pn(t).byteLength!==i&&bh.throwArgumentError(`invalid value for ${e}`,"value",t),n?Pn((t+gh).substring(0,66)):t}if(r=e.match(yh),r&&Array.isArray(t)){const n=r[1];parseInt(r[2]||String(t.length))!=t.length&&bh.throwArgumentError(`invalid array length for ${e}`,"value",t);const i=[];return t.forEach((function(e){i.push(vh(n,e,!0))})),Mn(i)}return bh.throwArgumentError("invalid type","type",e)}function wh(e,t){e.length!=t.length&&bh.throwArgumentError("wrong number of values; expected ${ types.length }","values",t);const n=[];return e.forEach((function(e,r){n.push(vh(e,t[r]))})),Un(Mn(n))}function Th(e,t){return ui(wh(e,t))}function Ah(e,t){return Ol(wh(e,t))}var Eh=Object.freeze({__proto__:null,keccak256:Th,pack:wh,sha256:Ah});const _h=new In("units/5.7.0"),Ih=["wei","kwei","mwei","gwei","szabo","finney","ether"];function Rh(e){const t=String(e).split(".");(t.length>2||!t[0].match(/^-?[0-9]*$/)||t[1]&&!t[1].match(/^[0-9]*$/)||"."===e||"-."===e)&&_h.throwArgumentError("invalid value","value",e);let n=t[0],r="";for("-"===n.substring(0,1)&&(r="-",n=n.substring(1));"0"===n.substring(0,1);)n=n.substring(1);""===n&&(n="0");let i="";for(2===t.length&&(i="."+(t[1]||"0"));i.length>2&&"0"===i[i.length-1];)i=i.substring(0,i.length-1);const a=[];for(;n.length;){if(n.length<=3){a.unshift(n);break}{const e=n.length-3;a.unshift(n.substring(e)),n=n.substring(0,e)}}return r+a.join(",")+i}function Ch(e,t){if("string"==typeof t){const e=Ih.indexOf(t);-1!==e&&(t=3*e)}return pr(e,null!=t?t:18)}function Oh(e,t){if("string"!=typeof e&&_h.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=Ih.indexOf(t);-1!==e&&(t=3*e)}return hr(e,null!=t?t:18)}function kh(e){return Ch(e,18)}function Sh(e){return Oh(e,18)}var Nh=Object.freeze({__proto__:null,commify:Rh,formatEther:kh,formatUnits:Ch,parseEther:Sh,parseUnits:Oh}),xh=Object.freeze({__proto__:null,AbiCoder:Sa,ConstructorFragment:Xr,ErrorFragment:Qr,EventFragment:zr,FormatTypes:Ur,Fragment:Hr,FunctionFragment:Jr,HDNode:Jl,Indexed:Bo,Interface:Lo,LogDescription:xo,Logger:In,ParamType:jr,RLP:bi,SigningKey:Dc,get SupportedAlgorithm(){return _l},TransactionDescription:Po,get TransactionTypes(){return jc},get UnicodeNormalizationForm(){return ea},Utf8ErrorFuncs:ra,get Utf8ErrorReason(){return ta},_TypedDataEncoder:ko,_fetchData:af,_toEscapedUtf8String:sa,accessListify:Yc,arrayify:Pn,base58:El,base64:Da,checkProperties:_r,checkResultErrors:ri,commify:Rh,computeAddress:Wc,computeHmac:Sl,computePublicKey:Lc,concat:Mn,deepCopy:kr,defaultAbiCoder:Na,defaultPath:Xl,defineReadOnly:Tr,dnsEncode:lo,entropyToMnemonic:$l,fetchJson:of,formatBytes32String:da,formatEther:kh,formatUnits:Ch,getAccountPath:ed,getAddress:_i,getContractAddress:Ci,getCreate2Address:Oi,getIcapAddress:Ri,getJsonWalletAddress:Td,getStatic:Ar,hashMessage:po,hexConcat:Gn,hexDataLength:qn,hexDataSlice:jn,hexStripZeros:zn,hexValue:Hn,hexZeroPad:Vn,hexlify:Un,id:xa,isAddress:Ii,isBytes:xn,isBytesLike:Sn,isHexString:Fn,isValidMnemonic:Zl,isValidName:uo,joinSignature:Kn,keccak256:ui,mnemonicToEntropy:Ql,mnemonicToSeed:Yl,namehash:co,nameprep:Ea,parseBytes32String:fa,parseEther:Sh,parseTransaction:nl,parseUnits:Oh,poll:sf,randomBytes:ad,recoverAddress:Kc,recoverPublicKey:Fc,resolveProperties:Er,ripemd160:Cl,serializeTransaction:el,sha256:Ol,sha512:kl,shallowCopy:Ir,shuffled:od,solidityKeccak256:Th,solidityPack:wh,soliditySha256:Ah,splitSignature:Wn,stripZeros:Bn,toUtf8Bytes:aa,toUtf8CodePoints:la,toUtf8String:ca,verifyMessage:jd,verifyTypedData:Gd,zeroPad:Dn});const Ph="ethers/5.7.2",Mh=new In(Ph);var Bh=Object.freeze({__proto__:null,BaseContract:bl,BigNumber:tr,Contract:vl,ContractFactory:wl,FixedNumber:yr,Signer:Xo,VoidSigner:Jo,Wallet:qd,Wordlist:Ml,constants:Qi,get errors(){return En},getDefaultProvider:fh,logger:Mh,providers:ph,utils:xh,version:Ph,wordlists:Ll});try{const e=window;null==e._ethers&&(e._ethers=Bh)}catch(e){}var Dh,Fh,Lh,Uh,qh,jh,Gh=Object.freeze({__proto__:null,BaseContract:bl,BigNumber:tr,Contract:vl,ContractFactory:wl,FixedNumber:yr,Signer:Xo,VoidSigner:Jo,Wallet:qd,Wordlist:Ml,constants:Qi,get errors(){return En},ethers:Bh,getDefaultProvider:fh,logger:Mh,providers:ph,utils:xh,version:Ph,wordlists:Ll});e.ChainId=void 0,function(e){e[e.IMTBL_ZKEVM_MAINNET=13371]="IMTBL_ZKEVM_MAINNET",e[e.IMTBL_ZKEVM_TESTNET=13472]="IMTBL_ZKEVM_TESTNET",e[e.IMTBL_ZKEVM_DEVNET=13433]="IMTBL_ZKEVM_DEVNET",e[e.ETHEREUM=1]="ETHEREUM",e[e.SEPOLIA=11155111]="SEPOLIA"}(e.ChainId||(e.ChainId={})),e.ChainName=void 0,(Dh=e.ChainName||(e.ChainName={})).ETHEREUM="Ethereum",Dh.SEPOLIA="Sepolia",Dh.IMTBL_ZKEVM_TESTNET="Immutable zkEVM Test",Dh.IMTBL_ZKEVM_DEVNET="Immutable zkEVM Dev",Dh.IMTBL_ZKEVM_MAINNET="Immutable zkEVM",function(e){e.TRANSAK="201811419111"}(Fh||(Fh={})),e.GasEstimateType=void 0,(Lh=e.GasEstimateType||(e.GasEstimateType={})).BRIDGE_TO_L2="BRIDGE_TO_L2",Lh.SWAP="SWAP",e.NetworkFilterTypes=void 0,(e.NetworkFilterTypes||(e.NetworkFilterTypes={})).ALL="all",e.TokenFilterTypes=void 0,(Uh=e.TokenFilterTypes||(e.TokenFilterTypes={})).ALL="all",Uh.SWAP="swap",Uh.BRIDGE="bridge",Uh.ONRAMP="onramp",function(e){e.CHECK_CONNECTION="eth_accounts",e.CONNECT="eth_requestAccounts",e.ADD_NETWORK="wallet_addEthereumChain",e.SWITCH_NETWORK="wallet_switchEthereumChain",e.GET_CHAINID="eth_chainId"}(qh||(qh={})),e.WalletFilterTypes=void 0,(e.WalletFilterTypes||(e.WalletFilterTypes={})).ALL="all",e.WalletProviderName=void 0,(jh=e.WalletProviderName||(e.WalletProviderName={})).PASSPORT="passport",jh.METAMASK="metamask";const Hh={allowMistmatchedChainId:!1,allowUnsupportedProvider:!1},zh="development",Vh="0x0000000000000000000000000000000000001010",Wh=18,Kh={name:"IMX",symbol:"IMX",decimals:Wh,address:Vh},Xh={[zh]:"https://api.dev.immutable.com",[st.SANDBOX]:"https://api.sandbox.immutable.com",[st.PRODUCTION]:"https://api.immutable.com"},Jh={[zh]:"https://checkout-api.dev.immutable.com",[st.SANDBOX]:"https://checkout-api.sandbox.immutable.com",[st.PRODUCTION]:"https://checkout-api.immutable.com"},Yh={[st.SANDBOX]:"https://global-stg.transak.com",[st.PRODUCTION]:"https://global.transak.com/"},Qh=new Map([[e.ChainId.ETHEREUM,{chainIdHex:`0x${e.ChainId.ETHEREUM.toString(16)}`,chainName:e.ChainName.ETHEREUM,rpcUrls:["https://checkout-api.immutable.com/v1/rpc/eth-mainnet"],nativeCurrency:{name:e.ChainName.ETHEREUM,symbol:"ETH",decimals:18},blockExplorerUrls:["https://etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_MAINNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_MAINNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_MAINNET,rpcUrls:["https://rpc.immutable.com"],nativeCurrency:Kh}]]),$h=new Map([[e.ChainId.SEPOLIA,{chainIdHex:`0x${e.ChainId.SEPOLIA.toString(16)}`,chainName:e.ChainName.SEPOLIA,rpcUrls:["https://checkout-api.sandbox.immutable.com/v1/rpc/eth-sepolia"],nativeCurrency:{name:"Sep Eth",symbol:"ETH",decimals:18},blockExplorerUrls:["https://sepolia.etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_TESTNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_TESTNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_TESTNET,rpcUrls:["https://rpc.testnet.immutable.com"],nativeCurrency:Kh}]]),Zh=new Map([[e.ChainId.SEPOLIA,{chainIdHex:`0x${e.ChainId.SEPOLIA.toString(16)}`,chainName:e.ChainName.SEPOLIA,rpcUrls:["https://checkout-api.dev.immutable.com/v1/rpc/eth-sepolia"],nativeCurrency:{name:"Sep Eth",symbol:"ETH",decimals:18},blockExplorerUrls:["https://sepolia.etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_DEVNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_DEVNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_DEVNET,rpcUrls:["https://rpc.dev.immutable.com"],nativeCurrency:Kh}]]),em={[e.ChainId.IMTBL_ZKEVM_TESTNET]:{url:"https://explorer.testnet.immutable.com",nativeToken:$h.get(e.ChainId.IMTBL_ZKEVM_TESTNET).nativeCurrency},[e.ChainId.IMTBL_ZKEVM_MAINNET]:{url:"https://explorer.mainnet.immutable.com",nativeToken:Qh.get(e.ChainId.IMTBL_ZKEVM_MAINNET).nativeCurrency},[e.ChainId.SEPOLIA]:{url:"https://eth-sepolia.blockscout.com",nativeToken:$h.get(e.ChainId.SEPOLIA).nativeCurrency},[e.ChainId.ETHEREUM]:{url:"https://eth.blockscout.com/",nativeToken:Qh.get(e.ChainId.ETHEREUM).nativeCurrency}},tm=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],nm=[{constant:!1,inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}];var rm,im,am,om,sm,um,cm;e.CheckoutStatus=void 0,(rm=e.CheckoutStatus||(e.CheckoutStatus={})).SUCCESS="SUCCESS",rm.FAILED="FAILED",rm.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.ItemType=void 0,function(e){e.NATIVE="NATIVE",e.ERC20="ERC20",e.ERC721="ERC721"}(e.ItemType||(e.ItemType={})),e.TransactionOrGasType=void 0,(im=e.TransactionOrGasType||(e.TransactionOrGasType={})).TRANSACTION="TRANSACTION",im.GAS="GAS",e.GasTokenType=void 0,(am=e.GasTokenType||(e.GasTokenType={})).NATIVE="NATIVE",am.ERC20="ERC20",e.RoutingOutcomeType=void 0,(om=e.RoutingOutcomeType||(e.RoutingOutcomeType={})).ROUTES_FOUND="ROUTES_FOUND",om.NO_ROUTES_FOUND="NO_ROUTES_FOUND",om.NO_ROUTE_OPTIONS="NO_ROUTE_OPTIONS",e.FundingStepType=void 0,(sm=e.FundingStepType||(e.FundingStepType={})).BRIDGE="BRIDGE",sm.SWAP="SWAP",sm.ONRAMP="ONRAMP",e.ExchangeType=void 0,(e.ExchangeType||(e.ExchangeType={})).ONRAMP="onramp",e.CheckoutErrorType=void 0,(um=e.CheckoutErrorType||(e.CheckoutErrorType={})).WEB3_PROVIDER_ERROR="WEB3_PROVIDER_ERROR",um.PROVIDER_ERROR="PROVIDER_ERROR",um.DEFAULT_PROVIDER_ERROR="DEFAULT_PROVIDER_ERROR",um.CONNECT_PROVIDER_ERROR="CONNECT_PROVIDER_ERROR",um.GET_BALANCE_ERROR="GET_BALANCE_ERROR",um.GET_INDEXER_BALANCE_ERROR="GET_INDEXER_BALANCE_ERROR",um.GET_ERC20_BALANCE_ERROR="GET_ERC20_BALANCE_ERROR",um.GET_ERC721_BALANCE_ERROR="GET_ERC721_BALANCE_ERROR",um.GET_NETWORK_INFO_ERROR="GET_NETWORK_INFO_ERROR",um.METAMASK_PROVIDER_ERROR="METAMASK_PROVIDER_ERROR",um.CHAIN_NOT_SUPPORTED_ERROR="CHAIN_NOT_SUPPORTED_ERROR",um.PROVIDER_REQUEST_MISSING_ERROR="PROVIDER_REQUEST_MISSING_ERROR",um.PROVIDER_REQUEST_FAILED_ERROR="PROVIDER_REQUEST_FAILED_ERROR",um.USER_REJECTED_REQUEST_ERROR="USER_REJECTED_REQUEST_ERROR",um.TRANSACTION_FAILED="TRANSACTION_FAILED",um.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",um.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",um.INVALID_GAS_ESTIMATE_TYPE="INVALID_GAS_ESTIMATE_TYPE",um.UNSUPPORTED_TOKEN_TYPE_ERROR="UNSUPPORTED_TOKEN_TYPE_ERROR",um.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR="UNSUPPORTED_BALANCE_REQUIREMENT_ERROR",um.GET_ORDER_LISTING_ERROR="GET_ORDER_LISTING_ERROR",um.CANCEL_ORDER_LISTING_ERROR="CANCEL_ORDER_LISTING_ERROR",um.PREPARE_ORDER_LISTING_ERROR="PREPARE_ORDER_LISTING_ERROR",um.CREATE_ORDER_LISTING_ERROR="CREATE_ORDER_LISTING_ERROR",um.FULFILL_ORDER_LISTING_ERROR="FULFILL_ORDER_LISTING_ERROR",um.SWITCH_NETWORK_UNSUPPORTED="SWITCH_NETWORK_UNSUPPORTED",um.GET_ERC20_ALLOWANCE_ERROR="GET_ERC20_ALLOWANCE_ERROR",um.GET_ERC721_ALLOWANCE_ERROR="GET_ERC721_ALLOWANCE_ERROR",um.EXECUTE_APPROVAL_TRANSACTION_ERROR="EXECUTE_APPROVAL_TRANSACTION_ERROR",um.EXECUTE_FULFILLMENT_TRANSACTION_ERROR="EXECUTE_FULFILLMENT_TRANSACTION_ERROR",um.SIGN_MESSAGE_ERROR="SIGN_MESSAGE_ERROR",um.BRIDGE_GAS_ESTIMATE_ERROR="BRIDGE_GAS_ESTIMATE_ERROR",um.ORDER_FEE_ERROR="ORDER_FEE_ERROR",um.ITEM_REQUIREMENTS_ERROR="ITEM_REQUIREMENTS_ERROR",um.API_ERROR="API_ERROR",um.ORDER_EXPIRED_ERROR="ORDER_EXPIRED_ERROR",um.WIDGETS_SCRIPT_LOAD_ERROR="WIDGETS_SCRIPT_LOAD_ERROR";class lm extends Error{message;type;data;constructor(e,t,n){super(e),this.message=e,this.type=t,this.data=n}}!function(e){e.REJECTED_SWITCH_AFTER_ADDING_NETWORK="REJECTED_SWITCH_AFTER_ADDING_NETWORK"}(cm||(cm={}));const dm=async(e,t)=>{try{return await e()}catch(e){const n=`${e.message}`||"UnknownError",r=t.message?`[${t.type}]:${t.message}. Cause:${n}`:`[${t.type}] Cause:${n}`;if(e instanceof lm)throw new lm(r,t.type,{...t.data,innerErrorType:e.type,...e.data});throw new lm(r,t.type,{...t.data})}};async function fm(t){if(!t.provider?.request)throw new lm("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const n=await t.provider.request({method:qh.GET_CHAINID,params:[]});return parseInt(n,16)}async function pm(t,{type:n=e.NetworkFilterTypes.ALL,exclude:r}){const{networkMap:i}=t,a=(await t.remote.getConfig("allowedNetworks")).filter((t=>{const i=n===e.NetworkFilterTypes.ALL,a=!(r||[]).map((e=>e.chainId)).includes(t.chainId);return i&&a})),o=[];return a.forEach((e=>{const t=i.get(e.chainId);t&&o.push({name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0})})),{networks:o}}async function hm(t,n){const{networkMap:r}=t;return dm((async()=>{try{const e=await n.getNetwork();if(Array.from(r.keys()).includes(e.chainId)){const t=r.get(e.chainId);return{name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0}}return{chainId:e.chainId,name:e.name,isSupported:!1}}catch(e){const t=await fm(n);return{chainId:t,isSupported:Array.from(r.keys()).includes(t)}}}),{type:e.CheckoutErrorType.GET_NETWORK_INFO_ERROR})}async function mm(t,n,r){const{networkMap:i}=t;if(!(await pm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===r)))throw new lm(`Chain:${r} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(n.provider?.isPassport)throw new lm("Switching networks with Passport provider is not supported",e.CheckoutErrorType.SWITCH_NETWORK_UNSUPPORTED);try{await async function(e,t,n){if(t.provider?.request)return await t.provider.request({method:qh.SWITCH_NETWORK,params:[{chainId:e.get(n)?.chainIdHex}]})}(i,n,r)}catch(t){if(4902!==t.code)throw new lm("User cancelled switch network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);try{await async function(e,t,n){if(t.provider?.request){const r=e.get(n),i={chainId:r?.chainIdHex,chainName:r?.chainName,rpcUrls:r?.rpcUrls,nativeCurrency:r?.nativeCurrency,blockExplorerUrls:r?.blockExplorerUrls};return await t.provider.request({method:qh.ADD_NETWORK,params:[i]})}}(i,n,r)}catch(t){throw new lm("User cancelled add network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR)}}const a=new lh(n.provider);if((await a.getNetwork()).chainId!==r)throw new lm("User cancelled switch network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);return{network:await hm(t,a),provider:a}}class ym{isDevelopment;isProduction;configCache;tokensCache;constructor(e){this.isDevelopment=e.isDevelopment,this.isProduction=e.isProduction}static async makeHttpRequest(t){let n;try{n=await Ve.get(t)}catch(t){throw new lm(`Error fetching from api: ${t.message}`,e.CheckoutErrorType.API_ERROR)}if(200!==n.status)throw new lm(`Error fetching from api: ${n.status} ${n.statusText}`,e.CheckoutErrorType.API_ERROR);return n}getEndpoint=()=>this.isDevelopment?Jh[zh]:this.isProduction?Jh[st.PRODUCTION]:Jh[st.SANDBOX];async loadConfig(){if(this.configCache)return this.configCache;const e=await ym.makeHttpRequest(`${this.getEndpoint()}/v1/config`);return this.configCache=e.data,this.configCache}async loadConfigTokens(){if(this.tokensCache)return this.tokensCache;const e=await ym.makeHttpRequest(`${this.getEndpoint()}/v1/config/tokens`);return this.tokensCache=e.data,this.tokensCache}async getConfig(e){const t=await this.loadConfig();if(t)return e?t[e]:t}async getTokensConfig(e){const t=await this.loadConfigTokens();return t&&t[e]?t[e]??[]:{}}}class gm extends Error{message;constructor(e){super(e),this.message=e}}const bm=t=>t.isProduction?e.ChainId.ETHEREUM:e.ChainId.SEPOLIA,vm=t=>t.isDevelopment?e.ChainId.IMTBL_ZKEVM_DEVNET:t.isProduction?e.ChainId.IMTBL_ZKEVM_MAINNET:e.ChainId.IMTBL_ZKEVM_TESTNET;class wm{isDevelopment=!1;isProduction;isOnRampEnabled;isSwapEnabled;isBridgeEnabled;remote;environment;networkMap;constructor(e){if(!Object.values(st).includes(e.baseConfig.environment))throw new gm("Invalid checkout configuration of environment");var t;this.environment=e.baseConfig.environment,this.isProduction=!this.isDevelopment&&this.environment===st.PRODUCTION,this.isOnRampEnabled=e.isOnRampEnabled??true,this.isSwapEnabled=e.isSwapEnabled??true,this.isBridgeEnabled=e.isBridgeEnabled??true,this.networkMap=(t=this.isProduction,this.isDevelopment?Zh:t?Qh:$h),this.remote=new ym({isDevelopment:this.isDevelopment,isProduction:this.isProduction})}}const Tm=async(t,{type:n=e.TokenFilterTypes.ALL,chainId:r,exclude:i})=>{let a,o=[];switch(n){case e.TokenFilterTypes.SWAP:o=(await t.remote.getConfig("dex")).tokens||[];break;case e.TokenFilterTypes.ONRAMP:a=await t.remote.getConfig("onramp"),a||(o=[]),o=a[Fh.TRANSAK]?.tokens||[];break;case e.TokenFilterTypes.BRIDGE:case e.TokenFilterTypes.ALL:default:o=(await t.remote.getTokensConfig(r||bm(t))).allowed}return i&&0!==i?.length?{tokens:o.filter((e=>!i.map((e=>e.address)).includes(e.address||"")))}:{tokens:o}};class Am{url;nativeToken;ttl;chainId;cacheMap;static async makeHttpRequest(e){return Ve.get(e)}setCache(e,t){this.cacheMap[e]={data:t,ttl:(new Date).getTime()+1e3*this.ttl}}getCache(e){const t=this.cacheMap[e];return!t||t.ttl<=(new Date).getTime()?null:t.data}constructor(e){this.chainId=e.chainId,this.url=em[this.chainId].url;const t=em[this.chainId].nativeToken;this.nativeToken={address:t.address??"",decimals:t.decimals.toString(),name:t.name,symbol:t.symbol},this.cacheMap={},this.ttl=void 0!==e.ttl?e.ttl:60}static isChainSupported=e=>Boolean(em[e]);static isBlockscoutError=e=>"code"in e;async getTokensByWalletAddress(e){try{let t=`${this.url}/api/v2/addresses/${e.walletAddress}/tokens?type=${e.tokenType}`;e.nextPage&&(t+=`&${new URLSearchParams(e.nextPage)}`);const n=this.getCache(t);if(n)return Promise.resolve(n);const r=await Am.makeHttpRequest(t);if(r.status>=400)return Promise.reject({code:r.status,message:r.statusText});const i={items:r.data?.items?.filter((e=>e.token.address&&e.token.address!==this.nativeToken.address)),next_page_params:r.data?.next_page_params};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=it.InternalServerError,n="InternalServerError";return Ve.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}async getNativeTokenByWalletAddress(e){try{const t=`${this.url}/api/v2/addresses/${e.walletAddress}`,n=this.getCache(t);if(n)return Promise.resolve(n);const r=await Am.makeHttpRequest(t);if(r.status>=400)return Promise.reject({code:r.status,message:r.statusText});const i={token:this.nativeToken,value:r.data.coin_balance};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=it.InternalServerError,n="InternalServerError";return Ve.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}}var Em;!function(e){e.ERC20="ERC-20"}(Em||(Em={}));const _m=(e,t,n)=>{e.isProduction||console.info(t,n)},Im=async(e,t,n)=>{const r=performance.now(),i=await n,a=performance.now();return _m(e,t,(a-r)/1e3),i},Rm=async(t,n,r)=>await dm((async()=>{const i=await hm(t,n);if(!i.isSupported)throw new lm(`Chain:${i.chainId} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR,{chainName:i.name});const a=await n.getBalance(r);return{balance:a,formattedBalance:Ch(a,i.nativeCurrency.decimals),token:i.nativeCurrency}}),{type:e.CheckoutErrorType.GET_BALANCE_ERROR});async function Cm(t,n,r){return await dm((async()=>{const e=new vl(r,JSON.stringify(tm),t);return Promise.all([e.name(),e.symbol(),e.balanceOf(n),e.decimals()]).then((([e,t,n,i])=>({balance:n,formattedBalance:Ch(n,i),token:{name:e,symbol:t,decimals:i,address:r}})))}),{type:e.CheckoutErrorType.GET_ERC20_BALANCE_ERROR})}const Om=new Map,km=async(e,t,n,r)=>{const i=[];r.forEach((r=>{r.address&&r.address!==Vh?i.push(Cm(t,n,r.address)):i.push(Rm(e,t,n))}));return{balances:(await Promise.allSettled(i)).filter((e=>"fulfilled"===e.status)).map((e=>e.value))}},Sm=async(t,n,r,i)=>{const{tokens:a}=await Tm(t,{type:e.TokenFilterTypes.ALL,chainId:i});let o=!1;try{o=(await t.remote.getTokensConfig(i)).blockscout||o}catch(e){console.error(e)}if(o&&Am.isChainSupported(i)){const n=bm(t)===i;return Im(t,`Time to fetch balances using blockscout for ${i}`,(async(t,n,r)=>{const i=r.length>0,a=Object.assign({},...r.map((e=>({[e.address||""]:e}))));let o=Om.get(n);o||(o=new Am({chainId:n}),Om.set(n,o));const s=[],u=Em.ERC20;await Promise.all([(async n=>{let r;try{do{r=await n.getTokensByWalletAddress({walletAddress:t,tokenType:u,nextPage:r?.next_page_params}),s.push(...r.items)}while(r.next_page_params)}catch(t){if(t?.code!==it.NotFound)throw new lm(t.message||"InternalServerError | getTokensByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,t)}})(o),(async n=>{try{const e=await n.getNativeTokenByWalletAddress({walletAddress:t});s.push(e)}catch(t){if(t?.code!==it.NotFound)throw new lm(t.message||"InternalServerError | getNativeTokenByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,t)}})(o)]);const c=[];return s.forEach((e=>{if(i&&!a[e.token.address])return;const t=e.token||{},n=tr.from(e.value);let r=parseInt(t.decimals,10);Number.isNaN(r)&&(r=Wh);const o={...t,decimals:r},s=Ch(e.value,o.decimals);c.push({balance:n,formattedBalance:s,token:o})})),{balances:c}})(r,i,n?a:[]))}return await Im(t,`Time to fetch balances using RPC for ${i}`,km(t,n,r,a))};var Nm=function({mustBeMetaMask:e=!1,silent:t=!1,timeout:n=3e3}={}){!function(){if("boolean"!=typeof e)throw new Error("@metamask/detect-provider: Expected option 'mustBeMetaMask' to be a boolean.");if("boolean"!=typeof t)throw new Error("@metamask/detect-provider: Expected option 'silent' to be a boolean.");if("number"!=typeof n)throw new Error("@metamask/detect-provider: Expected option 'timeout' to be a number.")}();let r=!1;return new Promise((i=>{function a(){if(r)return;r=!0,window.removeEventListener("ethereum#initialized",a);const{ethereum:n}=window;if(!n||e&&!n.isMetaMask){const r=e&&n?"Non-MetaMask window.ethereum detected.":"Unable to detect window.ethereum.";!t&&console.error("@metamask/detect-provider:",r),i(null)}else i(n)}window.ethereum?a():(window.addEventListener("ethereum#initialized",a,{once:!0}),setTimeout((()=>{a()}),n))}))},xm=lt(Nm);async function Pm(t,n){let r=null;switch(t){case e.WalletProviderName.PASSPORT:if(!n)throw console.error("WalletProviderName was PASSPORT but the passport instance was not provided to the Checkout constructor"),new lm("Passport not provided",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR);r=new lh(n.connectEvm());break;case e.WalletProviderName.METAMASK:r=await async function(){const t=await dm((async()=>await xm()),{type:e.CheckoutErrorType.METAMASK_PROVIDER_ERROR});if(!t||!t.request)throw new lm("No MetaMask provider installed.",e.CheckoutErrorType.METAMASK_PROVIDER_ERROR);return new lh(t)}();break;default:throw console.error("The WalletProviderName that was provided is not supported"),new lm("Provider not supported",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR)}return{provider:r,walletProviderName:t}}function Mm(e){return!(!e||!e.provider?.request||"function"!=typeof e.provider.request)}async function Bm(t,n,r){return dm((async()=>{if(n.provider?.isPassport)return n;if(!Mm(n))throw new lm("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const i={...Hh,...r},a=await fm(n);let o=n.network?.chainId;try{o=n.network?.chainId,o||(o=(await n.getNetwork()).chainId)}catch(t){throw new lm("Unable to detect the web3Provider network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR)}if(o!==a&&!i.allowMistmatchedChainId)throw new lm("Your wallet has changed network, please switch to a supported network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);if(!(await pm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===a))&&!i.allowUnsupportedProvider)throw new lm("Your wallet is connected to an unsupported network, please switch to a supported network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);return n}),{type:e.CheckoutErrorType.WEB3_PROVIDER_ERROR})}const Dm=e=>(e=>!!e.maxFeePerGas&&!!e.maxPriorityFeePerGas)(e)?tr.from(e.maxFeePerGas).add(tr.from(e.maxPriorityFeePerGas)):e.gasPrice?tr.from(e.gasPrice):null,Fm=async e=>{const t=await e.getFeeData(),n=Dm(t);if(n)return n.mul(14e4)};const Lm="11155111",Um="0x0000000000000000000000000000000000001002",qm="0x0000000000000000000000000000000000000001",jm={rootChainID:Lm,childChainID:"13473"},Gm={rootChainID:Lm,childChainID:"13472"},Hm={rootChainID:"1",childChainID:"13371"};var zm="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Vm(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Wm={exports:{}};!function(e){!function(e,t){function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function r(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var a;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require("buffer").Buffer}catch(e){}function o(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,"Invalid character in "+e)}function s(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function u(e,t,r,i){for(var a=0,o=0,s=Math.min(e.length,r),u=t;u<s;u++){var c=e.charCodeAt(u)-48;a*=i,o=c>=49?c-49+10:c>=17?c-17+10:c,n(c>=0&&o<i,"Invalid character"),a+=o}return a}function c(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,r):(this._parseBase(e,t,i),"le"===r&&this._initArray(this.toArray(),t,r)))},i.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},i.prototype._initArray=function(e,t,r){if(n("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var a,o,s=0;if("be"===r)for(i=e.length-1,a=0;i>=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(i=0,a=0;i<e.length;i+=3)o=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this._strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,a=0,o=0;if("be"===n)for(r=e.length-1;r>=t;r-=2)i=s(e,t,r)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)i=s(e,t,r)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;this._strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,o=a%r,s=Math.min(a,a-o)+n,c=0,l=n;l<s;l+=r)c=u(e,l,l+r,t),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==o){var d=1;for(c=u(e,l,e.length,t),l=0;l<o;l++)d*=t;this.imuln(d),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){c(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){i.prototype.inspect=l}else i.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,a=0,o=0;o<this.length;o++){var s=this.words[o],u=(16777215&(s<<i|a)).toString(16);a=s>>>24-i&16777215,(i+=2)>=26&&(i-=26,o--),r=0!==a||o!==this.length-1?d[6-u.length]+u+r:u+r}for(0!==a&&(r=a.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=f[e],l=p[e];r="";var h=this.clone();for(h.negative=0;!h.isZero();){var m=h.modrn(l).toString(e);r=(h=h.idivn(l)).isZero()?m+r:d[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},a&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(a,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function h(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],o=i*a,s=67108863&o,u=o/67108864|0;n.words[0]=s;for(var c=1;c<r;c++){for(var l=u>>>26,d=67108863&u,f=Math.min(c,t.length-1),p=Math.max(0,c-e.length+1);p<=f;p++){var h=c-p|0;l+=(o=(i=0|e.words[h])*(a=0|t.words[p])+d)/67108864|0,d=67108863&o}n.words[c]=0|d,u=0|l}return 0!==u?n.words[c]=0|u:n.length--,n._strip()}i.prototype.toArrayLike=function(e,t,r){this._strip();var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,"byte array longer than desired length"),n(a>0,"Requested array length <= 0");var o=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,a);return this["_toArrayLike"+("le"===t?"LE":"BE")](o,i),o},i.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,a=0;i<this.length;i++){var o=this.words[i]<<a|r;e[n++]=255&o,n<e.length&&(e[n++]=o>>8&255),n<e.length&&(e[n++]=o>>16&255),6===a?(n<e.length&&(e[n++]=o>>24&255),r=0,a=0):(r=o>>>24,a+=2)}if(n<e.length)for(e[n++]=r;n<e.length;)e[n++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var n=e.length-1,r=0,i=0,a=0;i<this.length;i++){var o=this.words[i]<<a|r;e[n--]=255&o,n>=0&&(e[n--]=o>>8&255),n>=0&&(e[n--]=o>>16&255),6===a?(n>=0&&(e[n--]=o>>24&255),r=0,a=0):(r=o>>>24,a+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?i.prototype._countBits=function(e){return 32-Math.clz32(e)}:i.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return n(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return n(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return n(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<i:this.words[r]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a<r.length;a++)t=(0|n.words[a])+(0|r.words[a])+i,this.words[a]=67108863&t,i=t>>>26;for(;0!==i&&a<n.length;a++)t=(0|n.words[a])+i,this.words[a]=67108863&t,i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;a<n.length;a++)this.words[a]=n.words[a];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,o=0;o<r.length;o++)a=(t=(0|n.words[o])-(0|r.words[o])+a)>>26,this.words[o]=67108863&t;for(;0!==a&&o<n.length;o++)a=(t=(0|n.words[o])+a)>>26,this.words[o]=67108863&t;if(0===a&&o<n.length&&n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this.length=Math.max(this.length,o),n!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,n){var r,i,a,o=e.words,s=t.words,u=n.words,c=0,l=0|o[0],d=8191&l,f=l>>>13,p=0|o[1],h=8191&p,m=p>>>13,y=0|o[2],g=8191&y,b=y>>>13,v=0|o[3],w=8191&v,T=v>>>13,A=0|o[4],E=8191&A,_=A>>>13,I=0|o[5],R=8191&I,C=I>>>13,O=0|o[6],k=8191&O,S=O>>>13,N=0|o[7],x=8191&N,P=N>>>13,M=0|o[8],B=8191&M,D=M>>>13,F=0|o[9],L=8191&F,U=F>>>13,q=0|s[0],j=8191&q,G=q>>>13,H=0|s[1],z=8191&H,V=H>>>13,W=0|s[2],K=8191&W,X=W>>>13,J=0|s[3],Y=8191&J,Q=J>>>13,$=0|s[4],Z=8191&$,ee=$>>>13,te=0|s[5],ne=8191&te,re=te>>>13,ie=0|s[6],ae=8191&ie,oe=ie>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,pe=0|s[9],he=8191&pe,me=pe>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(c+(r=Math.imul(d,j))|0)+((8191&(i=(i=Math.imul(d,G))+Math.imul(f,j)|0))<<13)|0;c=((a=Math.imul(f,G))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(h,j),i=(i=Math.imul(h,G))+Math.imul(m,j)|0,a=Math.imul(m,G);var ge=(c+(r=r+Math.imul(d,z)|0)|0)+((8191&(i=(i=i+Math.imul(d,V)|0)+Math.imul(f,z)|0))<<13)|0;c=((a=a+Math.imul(f,V)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(g,j),i=(i=Math.imul(g,G))+Math.imul(b,j)|0,a=Math.imul(b,G),r=r+Math.imul(h,z)|0,i=(i=i+Math.imul(h,V)|0)+Math.imul(m,z)|0,a=a+Math.imul(m,V)|0;var be=(c+(r=r+Math.imul(d,K)|0)|0)+((8191&(i=(i=i+Math.imul(d,X)|0)+Math.imul(f,K)|0))<<13)|0;c=((a=a+Math.imul(f,X)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(w,j),i=(i=Math.imul(w,G))+Math.imul(T,j)|0,a=Math.imul(T,G),r=r+Math.imul(g,z)|0,i=(i=i+Math.imul(g,V)|0)+Math.imul(b,z)|0,a=a+Math.imul(b,V)|0,r=r+Math.imul(h,K)|0,i=(i=i+Math.imul(h,X)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,X)|0;var ve=(c+(r=r+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,Q)|0)+Math.imul(f,Y)|0))<<13)|0;c=((a=a+Math.imul(f,Q)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,j),i=(i=Math.imul(E,G))+Math.imul(_,j)|0,a=Math.imul(_,G),r=r+Math.imul(w,z)|0,i=(i=i+Math.imul(w,V)|0)+Math.imul(T,z)|0,a=a+Math.imul(T,V)|0,r=r+Math.imul(g,K)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,K)|0,a=a+Math.imul(b,X)|0,r=r+Math.imul(h,Y)|0,i=(i=i+Math.imul(h,Q)|0)+Math.imul(m,Y)|0,a=a+Math.imul(m,Q)|0;var we=(c+(r=r+Math.imul(d,Z)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;c=((a=a+Math.imul(f,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(R,j),i=(i=Math.imul(R,G))+Math.imul(C,j)|0,a=Math.imul(C,G),r=r+Math.imul(E,z)|0,i=(i=i+Math.imul(E,V)|0)+Math.imul(_,z)|0,a=a+Math.imul(_,V)|0,r=r+Math.imul(w,K)|0,i=(i=i+Math.imul(w,X)|0)+Math.imul(T,K)|0,a=a+Math.imul(T,X)|0,r=r+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,Q)|0)+Math.imul(b,Y)|0,a=a+Math.imul(b,Q)|0,r=r+Math.imul(h,Z)|0,i=(i=i+Math.imul(h,ee)|0)+Math.imul(m,Z)|0,a=a+Math.imul(m,ee)|0;var Te=(c+(r=r+Math.imul(d,ne)|0)|0)+((8191&(i=(i=i+Math.imul(d,re)|0)+Math.imul(f,ne)|0))<<13)|0;c=((a=a+Math.imul(f,re)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(k,j),i=(i=Math.imul(k,G))+Math.imul(S,j)|0,a=Math.imul(S,G),r=r+Math.imul(R,z)|0,i=(i=i+Math.imul(R,V)|0)+Math.imul(C,z)|0,a=a+Math.imul(C,V)|0,r=r+Math.imul(E,K)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(_,K)|0,a=a+Math.imul(_,X)|0,r=r+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,Q)|0)+Math.imul(T,Y)|0,a=a+Math.imul(T,Q)|0,r=r+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,a=a+Math.imul(b,ee)|0,r=r+Math.imul(h,ne)|0,i=(i=i+Math.imul(h,re)|0)+Math.imul(m,ne)|0,a=a+Math.imul(m,re)|0;var Ae=(c+(r=r+Math.imul(d,ae)|0)|0)+((8191&(i=(i=i+Math.imul(d,oe)|0)+Math.imul(f,ae)|0))<<13)|0;c=((a=a+Math.imul(f,oe)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(x,j),i=(i=Math.imul(x,G))+Math.imul(P,j)|0,a=Math.imul(P,G),r=r+Math.imul(k,z)|0,i=(i=i+Math.imul(k,V)|0)+Math.imul(S,z)|0,a=a+Math.imul(S,V)|0,r=r+Math.imul(R,K)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(C,K)|0,a=a+Math.imul(C,X)|0,r=r+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,Q)|0)+Math.imul(_,Y)|0,a=a+Math.imul(_,Q)|0,r=r+Math.imul(w,Z)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(T,Z)|0,a=a+Math.imul(T,ee)|0,r=r+Math.imul(g,ne)|0,i=(i=i+Math.imul(g,re)|0)+Math.imul(b,ne)|0,a=a+Math.imul(b,re)|0,r=r+Math.imul(h,ae)|0,i=(i=i+Math.imul(h,oe)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,oe)|0;var Ee=(c+(r=r+Math.imul(d,ue)|0)|0)+((8191&(i=(i=i+Math.imul(d,ce)|0)+Math.imul(f,ue)|0))<<13)|0;c=((a=a+Math.imul(f,ce)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,j),i=(i=Math.imul(B,G))+Math.imul(D,j)|0,a=Math.imul(D,G),r=r+Math.imul(x,z)|0,i=(i=i+Math.imul(x,V)|0)+Math.imul(P,z)|0,a=a+Math.imul(P,V)|0,r=r+Math.imul(k,K)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(S,K)|0,a=a+Math.imul(S,X)|0,r=r+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,Q)|0)+Math.imul(C,Y)|0,a=a+Math.imul(C,Q)|0,r=r+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(_,Z)|0,a=a+Math.imul(_,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(T,ne)|0,a=a+Math.imul(T,re)|0,r=r+Math.imul(g,ae)|0,i=(i=i+Math.imul(g,oe)|0)+Math.imul(b,ae)|0,a=a+Math.imul(b,oe)|0,r=r+Math.imul(h,ue)|0,i=(i=i+Math.imul(h,ce)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,ce)|0;var _e=(c+(r=r+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;c=((a=a+Math.imul(f,fe)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(L,j),i=(i=Math.imul(L,G))+Math.imul(U,j)|0,a=Math.imul(U,G),r=r+Math.imul(B,z)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(D,z)|0,a=a+Math.imul(D,V)|0,r=r+Math.imul(x,K)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(P,K)|0,a=a+Math.imul(P,X)|0,r=r+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,Q)|0)+Math.imul(S,Y)|0,a=a+Math.imul(S,Q)|0,r=r+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(C,Z)|0,a=a+Math.imul(C,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(_,ne)|0,a=a+Math.imul(_,re)|0,r=r+Math.imul(w,ae)|0,i=(i=i+Math.imul(w,oe)|0)+Math.imul(T,ae)|0,a=a+Math.imul(T,oe)|0,r=r+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,ce)|0)+Math.imul(b,ue)|0,a=a+Math.imul(b,ce)|0,r=r+Math.imul(h,de)|0,i=(i=i+Math.imul(h,fe)|0)+Math.imul(m,de)|0,a=a+Math.imul(m,fe)|0;var Ie=(c+(r=r+Math.imul(d,he)|0)|0)+((8191&(i=(i=i+Math.imul(d,me)|0)+Math.imul(f,he)|0))<<13)|0;c=((a=a+Math.imul(f,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,z),i=(i=Math.imul(L,V))+Math.imul(U,z)|0,a=Math.imul(U,V),r=r+Math.imul(B,K)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,K)|0,a=a+Math.imul(D,X)|0,r=r+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,Q)|0)+Math.imul(P,Y)|0,a=a+Math.imul(P,Q)|0,r=r+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(S,Z)|0,a=a+Math.imul(S,ee)|0,r=r+Math.imul(R,ne)|0,i=(i=i+Math.imul(R,re)|0)+Math.imul(C,ne)|0,a=a+Math.imul(C,re)|0,r=r+Math.imul(E,ae)|0,i=(i=i+Math.imul(E,oe)|0)+Math.imul(_,ae)|0,a=a+Math.imul(_,oe)|0,r=r+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,ce)|0)+Math.imul(T,ue)|0,a=a+Math.imul(T,ce)|0,r=r+Math.imul(g,de)|0,i=(i=i+Math.imul(g,fe)|0)+Math.imul(b,de)|0,a=a+Math.imul(b,fe)|0;var Re=(c+(r=r+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,me)|0)+Math.imul(m,he)|0))<<13)|0;c=((a=a+Math.imul(m,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(L,K),i=(i=Math.imul(L,X))+Math.imul(U,K)|0,a=Math.imul(U,X),r=r+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,Q)|0)+Math.imul(D,Y)|0,a=a+Math.imul(D,Q)|0,r=r+Math.imul(x,Z)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(P,Z)|0,a=a+Math.imul(P,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(S,ne)|0,a=a+Math.imul(S,re)|0,r=r+Math.imul(R,ae)|0,i=(i=i+Math.imul(R,oe)|0)+Math.imul(C,ae)|0,a=a+Math.imul(C,oe)|0,r=r+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,ce)|0)+Math.imul(_,ue)|0,a=a+Math.imul(_,ce)|0,r=r+Math.imul(w,de)|0,i=(i=i+Math.imul(w,fe)|0)+Math.imul(T,de)|0,a=a+Math.imul(T,fe)|0;var Ce=(c+(r=r+Math.imul(g,he)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,he)|0))<<13)|0;c=((a=a+Math.imul(b,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(L,Y),i=(i=Math.imul(L,Q))+Math.imul(U,Y)|0,a=Math.imul(U,Q),r=r+Math.imul(B,Z)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,a=a+Math.imul(D,ee)|0,r=r+Math.imul(x,ne)|0,i=(i=i+Math.imul(x,re)|0)+Math.imul(P,ne)|0,a=a+Math.imul(P,re)|0,r=r+Math.imul(k,ae)|0,i=(i=i+Math.imul(k,oe)|0)+Math.imul(S,ae)|0,a=a+Math.imul(S,oe)|0,r=r+Math.imul(R,ue)|0,i=(i=i+Math.imul(R,ce)|0)+Math.imul(C,ue)|0,a=a+Math.imul(C,ce)|0,r=r+Math.imul(E,de)|0,i=(i=i+Math.imul(E,fe)|0)+Math.imul(_,de)|0,a=a+Math.imul(_,fe)|0;var Oe=(c+(r=r+Math.imul(w,he)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(T,he)|0))<<13)|0;c=((a=a+Math.imul(T,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(L,Z),i=(i=Math.imul(L,ee))+Math.imul(U,Z)|0,a=Math.imul(U,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(D,ne)|0,a=a+Math.imul(D,re)|0,r=r+Math.imul(x,ae)|0,i=(i=i+Math.imul(x,oe)|0)+Math.imul(P,ae)|0,a=a+Math.imul(P,oe)|0,r=r+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,ce)|0)+Math.imul(S,ue)|0,a=a+Math.imul(S,ce)|0,r=r+Math.imul(R,de)|0,i=(i=i+Math.imul(R,fe)|0)+Math.imul(C,de)|0,a=a+Math.imul(C,fe)|0;var ke=(c+(r=r+Math.imul(E,he)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(_,he)|0))<<13)|0;c=((a=a+Math.imul(_,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(L,ne),i=(i=Math.imul(L,re))+Math.imul(U,ne)|0,a=Math.imul(U,re),r=r+Math.imul(B,ae)|0,i=(i=i+Math.imul(B,oe)|0)+Math.imul(D,ae)|0,a=a+Math.imul(D,oe)|0,r=r+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,ce)|0)+Math.imul(P,ue)|0,a=a+Math.imul(P,ce)|0,r=r+Math.imul(k,de)|0,i=(i=i+Math.imul(k,fe)|0)+Math.imul(S,de)|0,a=a+Math.imul(S,fe)|0;var Se=(c+(r=r+Math.imul(R,he)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(C,he)|0))<<13)|0;c=((a=a+Math.imul(C,me)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(L,ae),i=(i=Math.imul(L,oe))+Math.imul(U,ae)|0,a=Math.imul(U,oe),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(D,ue)|0,a=a+Math.imul(D,ce)|0,r=r+Math.imul(x,de)|0,i=(i=i+Math.imul(x,fe)|0)+Math.imul(P,de)|0,a=a+Math.imul(P,fe)|0;var Ne=(c+(r=r+Math.imul(k,he)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(S,he)|0))<<13)|0;c=((a=a+Math.imul(S,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(L,ue),i=(i=Math.imul(L,ce))+Math.imul(U,ue)|0,a=Math.imul(U,ce),r=r+Math.imul(B,de)|0,i=(i=i+Math.imul(B,fe)|0)+Math.imul(D,de)|0,a=a+Math.imul(D,fe)|0;var xe=(c+(r=r+Math.imul(x,he)|0)|0)+((8191&(i=(i=i+Math.imul(x,me)|0)+Math.imul(P,he)|0))<<13)|0;c=((a=a+Math.imul(P,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(L,de),i=(i=Math.imul(L,fe))+Math.imul(U,de)|0,a=Math.imul(U,fe);var Pe=(c+(r=r+Math.imul(B,he)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,he)|0))<<13)|0;c=((a=a+Math.imul(D,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(c+(r=Math.imul(L,he))|0)+((8191&(i=(i=Math.imul(L,me))+Math.imul(U,he)|0))<<13)|0;return c=((a=Math.imul(U,me))+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=we,u[5]=Te,u[6]=Ae,u[7]=Ee,u[8]=_e,u[9]=Ie,u[10]=Re,u[11]=Ce,u[12]=Oe,u[13]=ke,u[14]=Se,u[15]=Ne,u[16]=xe,u[17]=Pe,u[18]=Me,0!==c&&(u[19]=c,n.length++),n};function y(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a<n.length-1;a++){var o=i;i=0;for(var s=67108863&r,u=Math.min(a,t.length-1),c=Math.max(0,a-e.length+1);c<=u;c++){var l=a-c,d=(0|e.words[l])*(0|t.words[c]),f=67108863&d;s=67108863&(f=f+s|0),i+=(o=(o=o+(d/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}n.words[a]=s,r=o,o=i}return 0!==r?n.words[a]=r:n.length--,n._strip()}function g(e,t,n){return y(e,t,n)}Math.imul||(m=h),i.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):n<63?h(this,e,t):n<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),n("number"==typeof e),n(e<67108864);for(var r=0,i=0;i<this.length;i++){var a=(0|this.words[i])*e,o=(67108863&a)+(67108863&r);r>>=26,r+=a/67108864|0,r+=o>>>26,this.words[i]=67108863&o}return 0!==r&&(this.words[i]=r,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++){var r=n/26|0,i=n%26;t[n]=e.words[r]>>>i&1}return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var a=n.sqr();r<t.length;r++,a=a.sqr())0!==t[r]&&(n=n.mul(a));return n},i.prototype.iushln=function(e){n("number"==typeof e&&e>=0);var t,r=e%26,i=(e-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t<this.length;t++){var s=this.words[t]&a,u=(0|this.words[t])-s<<r;this.words[t]=u|o,o=s>>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return n(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,r){var i;n("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var a=e%26,o=Math.min((e-a)/26,this.length),s=67108863^67108863>>>a<<a,u=r;if(i-=o,i=Math.max(0,i),u){for(var c=0;c<o;c++)u.words[c]=this.words[c];u.length=o}if(0===o);else if(this.length>o)for(this.length-=o,c=0;c<this.length;c++)this.words[c]=this.words[c+o];else this.words[0]=0,this.length=1;var l=0;for(c=this.length-1;c>=0&&(0!==l||c>=i);c--){var d=0|this.words[c];this.words[c]=l<<26-a|d>>>a,l=d&s}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,i=1<<t;return!(this.length<=r)&&!!(this.words[r]&i)},i.prototype.imaskn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this._strip()},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return n("number"==typeof e),n(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,r){var i,a,o=e.length+r;this._expand(o);var s=0;for(i=0;i<e.length;i++){a=(0|this.words[i+r])+s;var u=(0|e.words[i])*t;s=((a-=67108863&u)>>26)-(u/67108864|0),this.words[i+r]=67108863&a}for(;i<this.length-r;i++)s=(a=(0|this.words[i+r])+s)>>26,this.words[i+r]=67108863&a;if(0===s)return this._strip();for(n(-1===s),s=0,i=0;i<this.length;i++)s=(a=-(0|this.words[i])+s)>>26,this.words[i]=67108863&a;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),a=e,o=0|a.words[a.length-1];0!==(n=26-this._countBits(o))&&(a=a.ushln(n),r.iushln(n),o=0|a.words[a.length-1]);var s,u=r.length-a.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var l=r.clone()._ishlnsubmul(a,1,u);0===l.negative&&(r=l,s&&(s.words[u]=1));for(var d=u-1;d>=0;d--){var f=67108864*(0|r.words[a.length+d])+(0|r.words[a.length+d-1]);for(f=Math.min(f/o|0,67108863),r._ishlnsubmul(a,f,d);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(a,1,d),r.isZero()||(r.negative^=1);s&&(s.words[d]=f)}return s&&s._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:s||null,mod:r}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(a=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:a,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(a=s.div.neg()),{div:a,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var a,o,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=(1<<26)%e,i=0,a=this.length-1;a>=0;a--)i=(r*i+(0|this.words[a]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var a=(0|this.words[i])+67108864*r;this.words[i]=a/e|0,r=a%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a=new i(1),o=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var l=r.clone(),d=t.clone();!t.isZero();){for(var f=0,p=1;0==(t.words[0]&p)&&f<26;++f,p<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(a.isOdd()||o.isOdd())&&(a.iadd(l),o.isub(d)),a.iushrn(1),o.iushrn(1);for(var h=0,m=1;0==(r.words[0]&m)&&h<26;++h,m<<=1);if(h>0)for(r.iushrn(h);h-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(l),u.isub(d)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s),o.isub(u)):(r.isub(t),s.isub(a),u.isub(o))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a,o=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,l=1;0==(t.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(t.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var d=0,f=1;0==(r.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(r.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(a=0===t.cmpn(1)?o:s).cmpn(0)<0&&a.iadd(e),a},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var a=i,o=r;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new _(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function T(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function A(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function _(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){_.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},r(w,v),w.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var a=e.words[9];for(t.words[t.length++]=a&n,i=10;i<e.length;i++){var o=0|e.words[i];e.words[i-10]=(o&n)<<4|a>>>22,a=o}a>>>=22,e.words[i-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},w.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];t+=977*r,e.words[n]=67108863&t,t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},r(T,v),r(A,v),r(E,v),E.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new w;else if("p224"===e)t=new T;else if("p192"===e)t=new A;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},_.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},_.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},_.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(c(e,e.umod(this.m)._forceRed(this)),e)},_.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},_.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},_.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},_.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},_.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},_.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},_.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},_.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},_.prototype.isqr=function(e){return this.imul(e,e.clone())},_.prototype.sqr=function(e){return this.mul(e,e)},_.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var a=this.m.subn(1),o=0;!a.isZero()&&0===a.andln(1);)o++,a.iushrn(1);n(!a.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new i(2*l*l).toRed(this);0!==this.pow(l,c).cmp(u);)l.redIAdd(u);for(var d=this.pow(l,a),f=this.pow(e,a.addn(1).iushrn(1)),p=this.pow(e,a),h=o;0!==p.cmp(s);){for(var m=p,y=0;0!==m.cmp(s);y++)m=m.redSqr();n(y<h);var g=this.pow(d,new i(1).iushln(h-y-1));f=f.redMul(g),d=g.redSqr(),p=p.redMul(d),h=y}return f},_.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},_.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new i(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var a=n[0],o=0,s=0,u=t.bitLength()%26;for(0===u&&(u=26),r=t.length-1;r>=0;r--){for(var c=t.words[r],l=u-1;l>=0;l--){var d=c>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==d||0!==o?(o<<=1,o|=d,(4===++s||0===r&&0===l)&&(a=this.mul(a,n[o]),s=0,o=0)):s=0}u=26}return a},_.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},_.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new I(e)},r(I,_),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=n.isub(r).iushrn(this.shift),o=a;return a.cmp(this.m)>=0?o=a.isub(this.m):a.cmpn(0)<0&&(o=a.iadd(this.m)),o._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,zm)}(Wm);var Km=Vm(Wm.exports);let Xm=!1,Jm=!1;const Ym={debug:1,default:2,info:2,warning:3,error:4,off:5};let Qm=Ym.default,$m=null;const Zm=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(n){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var ey,ty;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(ey||(ey={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(ty||(ty={}));const ny="0123456789abcdef";let ry=class e{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const n=e.toLowerCase();null==Ym[n]&&this.throwArgumentError("invalid log level name","logLevel",e),Qm>Ym[n]||console.log.apply(console,t)}debug(...t){this._log(e.levels.DEBUG,t)}info(...t){this._log(e.levels.INFO,t)}warn(...t){this._log(e.levels.WARNING,t)}makeError(t,n,r){if(Jm)return this.makeError("censored error",n,{});n||(n=e.errors.UNKNOWN_ERROR),r||(r={});const i=[];Object.keys(r).forEach((e=>{const t=r[e];try{if(t instanceof Uint8Array){let n="";for(let e=0;e<t.length;e++)n+=ny[t[e]>>4],n+=ny[15&t[e]];i.push(e+"=Uint8Array(0x"+n+")")}else i.push(e+"="+JSON.stringify(t))}catch(t){i.push(e+"="+JSON.stringify(r[e].toString()))}})),i.push(`code=${n}`),i.push(`version=${this.version}`);const a=t;let o="";switch(n){case ty.NUMERIC_FAULT:{o="NUMERIC_FAULT";const e=t;switch(e){case"overflow":case"underflow":case"division-by-zero":o+="-"+e;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case ty.CALL_EXCEPTION:case ty.INSUFFICIENT_FUNDS:case ty.MISSING_NEW:case ty.NONCE_EXPIRED:case ty.REPLACEMENT_UNDERPRICED:case ty.TRANSACTION_REPLACED:case ty.UNPREDICTABLE_GAS_LIMIT:o=n}o&&(t+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),i.length&&(t+=" ("+i.join(", ")+")");const s=new Error(t);return s.reason=a,s.code=n,Object.keys(r).forEach((function(e){s[e]=r[e]})),s}throwError(e,t,n){throw this.makeError(e,t,n)}throwArgumentError(t,n,r){return this.throwError(t,e.errors.INVALID_ARGUMENT,{argument:n,value:r})}assert(e,t,n,r){e||this.throwError(t,n,r)}assertArgument(e,t,n,r){e||this.throwArgumentError(t,n,r)}checkNormalize(t){Zm&&this.throwError("platform missing String.prototype.normalize",e.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Zm})}checkSafeUint53(t,n){"number"==typeof t&&(null==n&&(n="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(n,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(n,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,n,r){r=r?": "+r:"",t<n&&this.throwError("missing argument"+r,e.errors.MISSING_ARGUMENT,{count:t,expectedCount:n}),t>n&&this.throwError("too many arguments"+r,e.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:n})}checkNew(t,n){t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:n.name})}checkAbstract(t,n){t===n?this.throwError("cannot instantiate abstract class "+JSON.stringify(n.name)+" directly; use a sub-class",e.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:n.name})}static globalLogger(){return $m||($m=new e("logger/5.7.0")),$m}static setCensorship(t,n){if(!t&&n&&this.globalLogger().throwError("cannot permanently disable censorship",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),Xm){if(!t)return;this.globalLogger().throwError("error censorship permanent",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}Jm=!!t,Xm=!!n}static setLogLevel(t){const n=Ym[t.toLowerCase()];null!=n?Qm=n:e.globalLogger().warn("invalid log level - "+t)}static from(t){return new e(t)}};ry.errors=ty,ry.levels=ey;const iy=new ry("bytes/5.7.0");function ay(e){return!!e.toHexString}function oy(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return oy(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function sy(e){return"number"==typeof e&&e==e&&e%1==0}function uy(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!sy(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const n=e[t];if(!sy(n)||n<0||n>=256)return!1}return!0}function cy(e,t){if(t||(t={}),"number"==typeof e){iy.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),oy(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),ay(e)&&(e=e.toHexString()),dy(e)){let n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0"+n:"right"===t.hexPad?n+="0":iy.throwArgumentError("hex data is odd-length","value",e));const r=[];for(let e=0;e<n.length;e+=2)r.push(parseInt(n.substring(e,e+2),16));return oy(new Uint8Array(r))}return uy(e)?oy(new Uint8Array(e)):iy.throwArgumentError("invalid arrayify value","value",e)}function ly(e){const t=e.map((e=>cy(e))),n=t.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(n);return t.reduce(((e,t)=>(r.set(t,e),e+t.length)),0),oy(r)}function dy(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}const fy="0123456789abcdef";function py(e,t){if(t||(t={}),"number"==typeof e){iy.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=fy[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),ay(e))return e.toHexString();if(dy(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":iy.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(uy(e)){let t="0x";for(let n=0;n<e.length;n++){let r=e[n];t+=fy[(240&r)>>4]+fy[15&r]}return t}return iy.throwArgumentError("invalid hexlify value","value",e)}function hy(e,t,n){return"string"!=typeof e?e=py(e):(!dy(e)||e.length%2)&&iy.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=n?"0x"+e.substring(t,2+2*n):"0x"+e.substring(t)}function my(e,t){for("string"!=typeof e?e=py(e):dy(e)||iy.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&iy.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}var yy=Km.BN;const gy=new ry("bignumber/5.7.0"),by={},vy=9007199254740991;let wy=!1;class Ty{constructor(e,t){e!==by&&gy.throwError("cannot call constructor directly; use BigNumber.from",ry.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return Ey(_y(this).fromTwos(e))}toTwos(e){return Ey(_y(this).toTwos(e))}abs(){return"-"===this._hex[0]?Ty.from(this._hex.substring(1)):this}add(e){return Ey(_y(this).add(_y(e)))}sub(e){return Ey(_y(this).sub(_y(e)))}div(e){return Ty.from(e).isZero()&&Iy("division-by-zero","div"),Ey(_y(this).div(_y(e)))}mul(e){return Ey(_y(this).mul(_y(e)))}mod(e){const t=_y(e);return t.isNeg()&&Iy("division-by-zero","mod"),Ey(_y(this).umod(t))}pow(e){const t=_y(e);return t.isNeg()&&Iy("negative-power","pow"),Ey(_y(this).pow(t))}and(e){const t=_y(e);return(this.isNegative()||t.isNeg())&&Iy("unbound-bitwise-result","and"),Ey(_y(this).and(t))}or(e){const t=_y(e);return(this.isNegative()||t.isNeg())&&Iy("unbound-bitwise-result","or"),Ey(_y(this).or(t))}xor(e){const t=_y(e);return(this.isNegative()||t.isNeg())&&Iy("unbound-bitwise-result","xor"),Ey(_y(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&Iy("negative-width","mask"),Ey(_y(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&Iy("negative-width","shl"),Ey(_y(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&Iy("negative-width","shr"),Ey(_y(this).shrn(e))}eq(e){return _y(this).eq(_y(e))}lt(e){return _y(this).lt(_y(e))}lte(e){return _y(this).lte(_y(e))}gt(e){return _y(this).gt(_y(e))}gte(e){return _y(this).gte(_y(e))}isNegative(){return"-"===this._hex[0]}isZero(){return _y(this).isZero()}toNumber(){try{return _y(this).toNumber()}catch(e){Iy("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return gy.throwError("this platform does not support BigInt",ry.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?wy||(wy=!0,gy.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?gy.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",ry.errors.UNEXPECTED_ARGUMENT,{}):gy.throwError("BigNumber.toString does not accept parameters",ry.errors.UNEXPECTED_ARGUMENT,{})),_y(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof Ty)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new Ty(by,Ay(e)):e.match(/^-?[0-9]+$/)?new Ty(by,Ay(new yy(e))):gy.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&Iy("underflow","BigNumber.from",e),(e>=vy||e<=-vy)&&Iy("overflow","BigNumber.from",e),Ty.from(String(e));const t=e;if("bigint"==typeof t)return Ty.from(t.toString());if(uy(t))return Ty.from(py(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return Ty.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(dy(e)||"-"===e[0]&&dy(e.substring(1))))return Ty.from(e)}return gy.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function Ay(e){if("string"!=typeof e)return Ay(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&gy.throwArgumentError("invalid hex","value",e),"0x00"===(e=Ay(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function Ey(e){return Ty.from(Ay(e))}function _y(e){const t=Ty.from(e).toHexString();return"-"===t[0]?new yy("-"+t.substring(3),16):new yy(t.substring(2),16)}function Iy(e,t,n){const r={fault:e,operation:t};return null!=n&&(r.value=n),gy.throwError(e,ry.errors.NUMERIC_FAULT,r)}var Ry=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Cy=new ry("properties/5.7.0");function Oy(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function ky(e,t){for(let n=0;n<32;n++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function Sy(e){return Ry(this,void 0,void 0,(function*(){const t=Object.keys(e).map((t=>{const n=e[t];return Promise.resolve(n).then((e=>({key:t,value:e})))}));return(yield Promise.all(t)).reduce(((e,t)=>(e[t.key]=t.value,e)),{})}))}function Ny(e){const t={};for(const n in e)t[n]=e[n];return t}const xy={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Py(e){if(null==e||xy[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let n=0;n<t.length;n++){let r=null;try{r=e[t[n]]}catch(e){continue}if(!Py(r))return!1}return!0}return Cy.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function My(e){if(Py(e))return e;if(Array.isArray(e))return Object.freeze(e.map((e=>By(e))));if("object"==typeof e){const t={};for(const n in e){const r=e[n];void 0!==r&&Oy(t,n,By(r))}return t}return Cy.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function By(e){return My(e)}class Dy{constructor(e){for(const t in e)this[t]=By(e[t])}}const Fy="abi/5.7.0",Ly=new ry(Fy),Uy={};let qy={calldata:!0,memory:!0,storage:!0},jy={calldata:!0,memory:!0};function Gy(e,t){if("bytes"===e||"string"===e){if(qy[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&jy[t])return!0;return(qy[t]||"payable"===t)&&Ly.throwArgumentError("invalid modifier","name",t),!1}function Hy(e,t){for(let n in t)Oy(e,n,t[n])}const zy=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),Vy=new RegExp(/^(.*)\[([0-9]*)\]$/);class Wy{constructor(e,t){e!==Uy&&Ly.throwError("use fromString",ry.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),Hy(this,t);let n=this.type.match(Vy);Hy(this,n?{arrayLength:parseInt(n[2]||"-1"),arrayChildren:Wy.fromObject({type:n[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=zy.sighash),zy[e]||Ly.throwArgumentError("invalid format type","format",e),e===zy.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map((t=>JSON.parse(t.format(e))))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==zy.sighash&&(t+=this.type),t+="("+this.components.map((t=>t.format(e))).join(e===zy.full?", ":",")+")"):t+=this.type,e!==zy.sighash&&(!0===this.indexed&&(t+=" indexed"),e===zy.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?Wy.fromString(e,t):Wy.fromObject(e)}static fromObject(e){return Wy.isParamType(e)?e:new Wy(Uy,{name:e.name||null,type:rg(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(Wy.fromObject):null})}static fromString(e,t){return n=function(e,t){let n=e;function r(t){Ly.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let n={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(n.indexed=!1),n}e=e.replace(/\s/g," ");let a={type:"",name:"",state:{allowType:!0}},o=a;for(let n=0;n<e.length;n++){let a=e[n];switch(a){case"(":o.state.allowType&&""===o.type?o.type="tuple":o.state.allowParams||r(n),o.state.allowType=!1,o.type=rg(o.type),o.components=[i(o)],o=o.components[0];break;case")":delete o.state,"indexed"===o.name&&(t||r(n),o.indexed=!0,o.name=""),Gy(o.type,o.name)&&(o.name=""),o.type=rg(o.type);let e=o;o=o.parent,o||r(n),delete e.parent,o.state.allowParams=!1,o.state.allowName=!0,o.state.allowArray=!0;break;case",":delete o.state,"indexed"===o.name&&(t||r(n),o.indexed=!0,o.name=""),Gy(o.type,o.name)&&(o.name=""),o.type=rg(o.type);let s=i(o.parent);o.parent.components.push(s),delete o.parent,o=s;break;case" ":o.state.allowType&&""!==o.type&&(o.type=rg(o.type),delete o.state.allowType,o.state.allowName=!0,o.state.allowParams=!0),o.state.allowName&&""!==o.name&&("indexed"===o.name?(t||r(n),o.indexed&&r(n),o.indexed=!0,o.name=""):Gy(o.type,o.name)?o.name="":o.state.allowName=!1);break;case"[":o.state.allowArray||r(n),o.type+=a,o.state.allowArray=!1,o.state.allowName=!1,o.state.readArray=!0;break;case"]":o.state.readArray||r(n),o.type+=a,o.state.readArray=!1,o.state.allowArray=!0,o.state.allowName=!0;break;default:o.state.allowType?(o.type+=a,o.state.allowParams=!0,o.state.allowArray=!0):o.state.allowName?(o.name+=a,delete o.state.allowArray):o.state.readArray?o.type+=a:r(n)}}return o.parent&&Ly.throwArgumentError("unexpected eof","param",e),delete a.state,"indexed"===o.name?(t||r(n.length-7),o.indexed&&r(n.length-7),o.indexed=!0,o.name=""):Gy(o.type,o.name)&&(o.name=""),a.type=rg(a.type),a}(e,!!t),Wy.fromObject({name:n.name,type:n.type,indexed:n.indexed,components:n.components});var n}static isParamType(e){return!(null==e||!e._isParamType)}}function Ky(e,t){return function(e){e=e.trim();let t=[],n="",r=0;for(let i=0;i<e.length;i++){let a=e[i];","===a&&0===r?(t.push(n),n=""):(n+=a,"("===a?r++:")"===a&&(r--,-1===r&&Ly.throwArgumentError("unbalanced parenthesis","value",e)))}n&&t.push(n);return t}(e).map((e=>Wy.fromString(e,t)))}class Xy{constructor(e,t){e!==Uy&&Ly.throwError("use a static from method",ry.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),Hy(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return Xy.isFragment(e)?e:"string"==typeof e?Xy.fromString(e):Xy.fromObject(e)}static fromObject(e){if(Xy.isFragment(e))return e;switch(e.type){case"function":return eg.fromObject(e);case"event":return Jy.fromObject(e);case"constructor":return Zy.fromObject(e);case"error":return ng.fromObject(e);case"fallback":case"receive":return null}return Ly.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?Jy.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?eg.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?Zy.fromString(e.trim()):"error"===e.split(" ")[0]?ng.fromString(e.substring(5).trim()):Ly.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class Jy extends Xy{format(e){if(e||(e=zy.sighash),zy[e]||Ly.throwArgumentError("invalid format type","format",e),e===zy.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==zy.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===zy.full?", ":",")+") ",e!==zy.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?Jy.fromString(e):Jy.fromObject(e)}static fromObject(e){if(Jy.isEventFragment(e))return e;"event"!==e.type&&Ly.throwArgumentError("invalid event object","value",e);const t={name:ag(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(Wy.fromObject):[],type:"event"};return new Jy(Uy,t)}static fromString(e){let t=e.match(og);t||Ly.throwArgumentError("invalid event string","value",e);let n=!1;return t[3].split(" ").forEach((e=>{switch(e.trim()){case"anonymous":n=!0;break;case"":break;default:Ly.warn("unknown modifier: "+e)}})),Jy.fromObject({name:t[1].trim(),anonymous:n,inputs:Ky(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function Yy(e,t){t.gas=null;let n=e.split("@");return 1!==n.length?(n.length>2&&Ly.throwArgumentError("invalid human-readable ABI signature","value",e),n[1].match(/^[0-9]+$/)||Ly.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=Ty.from(n[1]),n[0]):e}function Qy(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach((e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}}))}function $y(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&Ly.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Ly.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||Ly.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.constant?t.stateMutability="view":t.stateMutability=t.payable?"payable":"nonpayable",t.payable&&t.constant&&Ly.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&Ly.throwArgumentError("unable to determine stateMutability","value",e),t}class Zy extends Xy{format(e){if(e||(e=zy.sighash),zy[e]||Ly.throwArgumentError("invalid format type","format",e),e===zy.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});e===zy.sighash&&Ly.throwError("cannot format a constructor for sighash",ry.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map((t=>t.format(e))).join(e===zy.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?Zy.fromString(e):Zy.fromObject(e)}static fromObject(e){if(Zy.isConstructorFragment(e))return e;"constructor"!==e.type&&Ly.throwArgumentError("invalid constructor object","value",e);let t=$y(e);t.constant&&Ly.throwArgumentError("constructor cannot be constant","value",e);const n={name:null,type:e.type,inputs:e.inputs?e.inputs.map(Wy.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Ty.from(e.gas):null};return new Zy(Uy,n)}static fromString(e){let t={type:"constructor"},n=(e=Yy(e,t)).match(og);return n&&"constructor"===n[1].trim()||Ly.throwArgumentError("invalid constructor string","value",e),t.inputs=Ky(n[2].trim(),!1),Qy(n[3].trim(),t),Zy.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class eg extends Zy{format(e){if(e||(e=zy.sighash),zy[e]||Ly.throwArgumentError("invalid format type","format",e),e===zy.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e)))),outputs:this.outputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==zy.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===zy.full?", ":",")+") ",e!==zy.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map((t=>t.format(e))).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?eg.fromString(e):eg.fromObject(e)}static fromObject(e){if(eg.isFunctionFragment(e))return e;"function"!==e.type&&Ly.throwArgumentError("invalid function object","value",e);let t=$y(e);const n={type:e.type,name:ag(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(Wy.fromObject):[],outputs:e.outputs?e.outputs.map(Wy.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Ty.from(e.gas):null};return new eg(Uy,n)}static fromString(e){let t={type:"function"},n=(e=Yy(e,t)).split(" returns ");n.length>2&&Ly.throwArgumentError("invalid function string","value",e);let r=n[0].match(og);if(r||Ly.throwArgumentError("invalid function signature","value",e),t.name=r[1].trim(),t.name&&ag(t.name),t.inputs=Ky(r[2],!1),Qy(r[3].trim(),t),n.length>1){let r=n[1].match(og);""==r[1].trim()&&""==r[3].trim()||Ly.throwArgumentError("unexpected tokens","value",e),t.outputs=Ky(r[2],!1)}else t.outputs=[];return eg.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function tg(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Ly.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class ng extends Xy{format(e){if(e||(e=zy.sighash),zy[e]||Ly.throwArgumentError("invalid format type","format",e),e===zy.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==zy.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===zy.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?ng.fromString(e):ng.fromObject(e)}static fromObject(e){if(ng.isErrorFragment(e))return e;"error"!==e.type&&Ly.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:ag(e.name),inputs:e.inputs?e.inputs.map(Wy.fromObject):[]};return tg(new ng(Uy,t))}static fromString(e){let t={type:"error"},n=e.match(og);return n||Ly.throwArgumentError("invalid error signature","value",e),t.name=n[1].trim(),t.name&&ag(t.name),t.inputs=Ky(n[2],!1),tg(ng.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function rg(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const ig=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function ag(e){return e&&e.match(ig)||Ly.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const og=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");const sg=new ry(Fy);class ug{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){sg.throwArgumentError(e,this.localName,t)}}class cg{constructor(e){Oy(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return function(e){let t="0x";return e.forEach((e=>{t+=py(e).substring(2)})),t}(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(ly(e._data))}writeBytes(e){let t=cy(e);const n=t.length%this.wordSize;return n&&(t=ly([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=cy(Ty.from(e));return t.length>this.wordSize&&sg.throwError("value out-of-bounds",ry.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=ly([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class lg{constructor(e,t,n,r){Oy(this,"_data",cy(e)),Oy(this,"wordSize",t||32),Oy(this,"_coerceFunc",n),Oy(this,"allowLoose",r),this._offset=0}get data(){return py(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):lg.coerce(e,t)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:sg.throwError("data out-of-bounds",ry.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(e){return new lg(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return Ty.from(this.readBytes(this.wordSize))}}var dg={exports:{}};
|
|
10
|
-
/**
|
|
11
|
-
* [js-sha3]{@link https://github.com/emn178/js-sha3}
|
|
12
|
-
*
|
|
13
|
-
* @version 0.8.0
|
|
14
|
-
* @author Chen, Yi-Cyuan [emn178@gmail.com]
|
|
15
|
-
* @copyright Chen, Yi-Cyuan 2015-2018
|
|
16
|
-
* @license MIT
|
|
17
|
-
*/!function(e){!function(){var t="input is invalid type",n="object"==typeof window,r=n?window:{};r.JS_SHA3_NO_WINDOW&&(n=!1);var i=!n&&"object"==typeof self;!r.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&{node:"20.9.0",acorn:"8.10.0",ada:"2.6.0",ares:"1.19.1",base64:"0.5.0",brotli:"1.0.9",cjs_module_lexer:"1.2.2",cldr:"43.1",icu:"73.2",llhttp:"8.1.1",modules:"115",napi:"9",nghttp2:"1.57.0",nghttp3:"0.7.0",ngtcp2:"0.8.1",openssl:"3.0.10+quic",simdutf:"3.2.17",tz:"2023c",undici:"5.26.3",unicode:"15.0",uv:"1.46.0",uvwasi:"0.0.18",v8:"11.3.244.8-node.16",zlib:"1.2.13.1-motley"}&&process.versions.node?r=zm:i&&(r=self);var a=!r.JS_SHA3_NO_COMMON_JS&&e.exports,o=!r.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),u=[4,1024,262144,67108864],c=[0,8,16,24],l=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],f=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],h={128:168,256:136};!r.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!o||!r.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,n){return function(r){return new S(e,t,e).update(r)[n]()}},y=function(e,t,n){return function(r,i){return new S(e,t,i).update(r)[n]()}},g=function(e,t,n){return function(t,r,i,a){return A["cshake"+e].update(t,r,i,a)[n]()}},b=function(e,t,n){return function(t,r,i,a){return A["kmac"+e].update(t,r,i,a)[n]()}},v=function(e,t,n,r){for(var i=0;i<p.length;++i){var a=p[i];e[a]=t(n,r,a)}return e},w=function(e,t){var n=m(e,t,"hex");return n.create=function(){return new S(e,t,e)},n.update=function(e){return n.create().update(e)},v(n,m,e,t)},T=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:w},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:w},{name:"shake",padding:[31,7936,2031616,520093696],bits:f,createMethod:function(e,t){var n=y(e,t,"hex");return n.create=function(n){return new S(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},v(n,y,e,t)}},{name:"cshake",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=g(e,0,"hex");return r.create=function(r,i,a){return i||a?new S(e,t,r).bytepad([i,a],n):A["shake"+e].create(r)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},v(r,g,e,t)}},{name:"kmac",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=b(e,0,"hex");return r.create=function(r,i,a){return new N(e,t,i).bytepad(["KMAC",a],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},v(r,b,e,t)}}],A={},E=[],_=0;_<T.length;++_)for(var I=T[_],R=I.bits,C=0;C<R.length;++C){var O=I.name+"_"+R[C];if(E.push(O),A[O]=I.createMethod(R[C],I.padding),"sha3"!==I.name){var k=I.name+R[C];E.push(k),A[k]=A[O]}}function S(e,t,n){this.blocks=[],this.s=[],this.padding=t,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var r=0;r<50;++r)this.s[r]=0}function N(e,t,n){S.call(this,e,t,n)}S.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}for(var i,a,s=this.blocks,u=this.byteCount,l=e.length,d=this.blockCount,f=0,p=this.s;f<l;){if(this.reset)for(this.reset=!1,s[0]=this.block,i=1;i<d+1;++i)s[i]=0;if(n)for(i=this.start;f<l&&i<u;++f)s[i>>2]|=e[f]<<c[3&i++];else for(i=this.start;f<l&&i<u;++f)(a=e.charCodeAt(f))<128?s[i>>2]|=a<<c[3&i++]:a<2048?(s[i>>2]|=(192|a>>6)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]):a<55296||a>=57344?(s[i>>2]|=(224|a>>12)<<c[3&i++],s[i>>2]|=(128|a>>6&63)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]):(a=65536+((1023&a)<<10|1023&e.charCodeAt(++f)),s[i>>2]|=(240|a>>18)<<c[3&i++],s[i>>2]|=(128|a>>12&63)<<c[3&i++],s[i>>2]|=(128|a>>6&63)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=s[d],i=0;i<d;++i)p[i]^=s[i];x(p),this.reset=!0}else this.start=i}return this},S.prototype.encode=function(e,t){var n=255&e,r=1,i=[n];for(n=255&(e>>=8);n>0;)i.unshift(n),n=255&(e>>=8),++r;return t?i.push(r):i.unshift(r),this.update(i),i.length},S.prototype.encodeString=function(e){var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}var i=0,a=e.length;if(n)i=a;else for(var s=0;s<e.length;++s){var u=e.charCodeAt(s);u<128?i+=1:u<2048?i+=2:u<55296||u>=57344?i+=3:(u=65536+((1023&u)<<10|1023&e.charCodeAt(++s)),i+=4)}return i+=this.encode(8*i),this.update(e),i},S.prototype.bytepad=function(e,t){for(var n=this.encode(t),r=0;r<e.length;++r)n+=this.encodeString(e[r]);var i=t-n%t,a=[];return a.length=i,this.update(a),this},S.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,n=this.blockCount,r=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[n],t=1;t<n+1;++t)e[t]=0;for(e[n-1]|=2147483648,t=0;t<n;++t)r[t]^=e[t];x(r)}},S.prototype.toString=S.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,u="";o<r;){for(a=0;a<t&&o<r;++a,++o)e=n[a],u+=s[e>>4&15]+s[15&e]+s[e>>12&15]+s[e>>8&15]+s[e>>20&15]+s[e>>16&15]+s[e>>28&15]+s[e>>24&15];o%t==0&&(x(n),a=0)}return i&&(e=n[a],u+=s[e>>4&15]+s[15&e],i>1&&(u+=s[e>>12&15]+s[e>>8&15]),i>2&&(u+=s[e>>20&15]+s[e>>16&15])),u},S.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,s=this.outputBits>>3;e=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(s);for(var u=new Uint32Array(e);o<r;){for(a=0;a<t&&o<r;++a,++o)u[o]=n[a];o%t==0&&x(n)}return i&&(u[a]=n[a],e=e.slice(0,s)),e},S.prototype.buffer=S.prototype.arrayBuffer,S.prototype.digest=S.prototype.array=function(){this.finalize();for(var e,t,n=this.blockCount,r=this.s,i=this.outputBlocks,a=this.extraBytes,o=0,s=0,u=[];s<i;){for(o=0;o<n&&s<i;++o,++s)e=s<<2,t=r[o],u[e]=255&t,u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;s%n==0&&x(r)}return a&&(e=s<<2,t=r[o],u[e]=255&t,a>1&&(u[e+1]=t>>8&255),a>2&&(u[e+2]=t>>16&255)),u},N.prototype=new S,N.prototype.finalize=function(){return this.encode(this.outputBits,!0),S.prototype.finalize.call(this)};var x=function(e){var t,n,r,i,a,o,s,u,c,d,f,p,h,m,y,g,b,v,w,T,A,E,_,I,R,C,O,k,S,N,x,P,M,B,D,F,L,U,q,j,G,H,z,V,W,K,X,J,Y,Q,$,Z,ee,te,ne,re,ie,ae,oe,se,ue,ce,le;for(r=0;r<48;r+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],a=e[1]^e[11]^e[21]^e[31]^e[41],o=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],u=e[4]^e[14]^e[24]^e[34]^e[44],c=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],f=e[7]^e[17]^e[27]^e[37]^e[47],t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(o<<1|s>>>31),n=(h=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|o>>>31),e[0]^=t,e[1]^=n,e[10]^=t,e[11]^=n,e[20]^=t,e[21]^=n,e[30]^=t,e[31]^=n,e[40]^=t,e[41]^=n,t=i^(u<<1|c>>>31),n=a^(c<<1|u>>>31),e[2]^=t,e[3]^=n,e[12]^=t,e[13]^=n,e[22]^=t,e[23]^=n,e[32]^=t,e[33]^=n,e[42]^=t,e[43]^=n,t=o^(d<<1|f>>>31),n=s^(f<<1|d>>>31),e[4]^=t,e[5]^=n,e[14]^=t,e[15]^=n,e[24]^=t,e[25]^=n,e[34]^=t,e[35]^=n,e[44]^=t,e[45]^=n,t=u^(p<<1|h>>>31),n=c^(h<<1|p>>>31),e[6]^=t,e[7]^=n,e[16]^=t,e[17]^=n,e[26]^=t,e[27]^=n,e[36]^=t,e[37]^=n,e[46]^=t,e[47]^=n,t=d^(i<<1|a>>>31),n=f^(a<<1|i>>>31),e[8]^=t,e[9]^=n,e[18]^=t,e[19]^=n,e[28]^=t,e[29]^=n,e[38]^=t,e[39]^=n,e[48]^=t,e[49]^=n,m=e[0],y=e[1],K=e[11]<<4|e[10]>>>28,X=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,S=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,z=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,g=e[13]<<12|e[12]>>>20,b=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,N=e[33]<<13|e[32]>>>19,x=e[32]<<13|e[33]>>>19,ce=e[42]<<2|e[43]>>>30,le=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,ne=e[4]<<30|e[5]>>>2,F=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,v=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,Q=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,P=e[45]<<29|e[44]>>>3,M=e[44]<<29|e[45]>>>3,I=e[6]<<28|e[7]>>>4,R=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,q=e[27]<<25|e[26]>>>7,T=e[36]<<21|e[37]>>>11,A=e[37]<<21|e[36]>>>11,Z=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,V=e[8]<<27|e[9]>>>5,W=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,ae=e[29]<<7|e[28]>>>25,oe=e[28]<<7|e[29]>>>25,j=e[38]<<8|e[39]>>>24,G=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,_=e[49]<<14|e[48]>>>18,e[0]=m^~g&v,e[1]=y^~b&w,e[10]=I^~C&k,e[11]=R^~O&S,e[20]=B^~F&U,e[21]=D^~L&q,e[30]=V^~K&J,e[31]=W^~X&Y,e[40]=te^~re&ae,e[41]=ne^~ie&oe,e[2]=g^~v&T,e[3]=b^~w&A,e[12]=C^~k&N,e[13]=O^~S&x,e[22]=F^~U&j,e[23]=L^~q&G,e[32]=K^~J&Q,e[33]=X^~Y&$,e[42]=re^~ae&se,e[43]=ie^~oe&ue,e[4]=v^~T&E,e[5]=w^~A&_,e[14]=k^~N&P,e[15]=S^~x&M,e[24]=U^~j&H,e[25]=q^~G&z,e[34]=J^~Q&Z,e[35]=Y^~$&ee,e[44]=ae^~se&ce,e[45]=oe^~ue&le,e[6]=T^~E&m,e[7]=A^~_&y,e[16]=N^~P&I,e[17]=x^~M&R,e[26]=j^~H&B,e[27]=G^~z&D,e[36]=Q^~Z&V,e[37]=$^~ee&W,e[46]=se^~ce&te,e[47]=ue^~le&ne,e[8]=E^~m&g,e[9]=_^~y&b,e[18]=P^~I&C,e[19]=M^~R&O,e[28]=H^~B&F,e[29]=z^~D&L,e[38]=Z^~V&K,e[39]=ee^~W&X,e[48]=ce^~te&re,e[49]=le^~ne&ie,e[0]^=l[r],e[1]^=l[r+1]};if(a)e.exports=A;else for(_=0;_<E.length;++_)r[E[_]]=A[E[_]]}()}(dg);var fg=Vm(dg.exports);function pg(e){return"0x"+fg.keccak_256(cy(e))}const hg=new ry("rlp/5.7.0");function mg(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function yg(e,t,n){let r=0;for(let i=0;i<n;i++)r=256*r+e[t+i];return r}function gg(e){if(Array.isArray(e)){let t=[];if(e.forEach((function(e){t=t.concat(gg(e))})),t.length<=55)return t.unshift(192+t.length),t;const n=mg(t.length);return n.unshift(247+n.length),n.concat(t)}var t;dy(t=e)&&!(t.length%2)||uy(t)||hg.throwArgumentError("RLP object must be BytesLike","object",e);const n=Array.prototype.slice.call(cy(e));if(1===n.length&&n[0]<=127)return n;if(n.length<=55)return n.unshift(128+n.length),n;const r=mg(n.length);return r.unshift(183+r.length),r.concat(n)}function bg(e,t,n,r){const i=[];for(;n<t+1+r;){const a=vg(e,n);i.push(a.result),(n+=a.consumed)>t+1+r&&hg.throwError("child data too short",ry.errors.BUFFER_OVERRUN,{})}return{consumed:1+r,result:i}}function vg(e,t){if(0===e.length&&hg.throwError("data too short",ry.errors.BUFFER_OVERRUN,{}),e[t]>=248){const n=e[t]-247;t+1+n>e.length&&hg.throwError("data short segment too short",ry.errors.BUFFER_OVERRUN,{});const r=yg(e,t+1,n);return t+1+n+r>e.length&&hg.throwError("data long segment too short",ry.errors.BUFFER_OVERRUN,{}),bg(e,t,t+1+n,n+r)}if(e[t]>=192){const n=e[t]-192;return t+1+n>e.length&&hg.throwError("data array too short",ry.errors.BUFFER_OVERRUN,{}),bg(e,t,t+1,n)}if(e[t]>=184){const n=e[t]-183;t+1+n>e.length&&hg.throwError("data array too short",ry.errors.BUFFER_OVERRUN,{});const r=yg(e,t+1,n);t+1+n+r>e.length&&hg.throwError("data array too short",ry.errors.BUFFER_OVERRUN,{});return{consumed:1+n+r,result:py(e.slice(t+1+n,t+1+n+r))}}if(e[t]>=128){const n=e[t]-128;t+1+n>e.length&&hg.throwError("data too short",ry.errors.BUFFER_OVERRUN,{});return{consumed:1+n,result:py(e.slice(t+1,t+1+n))}}return{consumed:1,result:py(e[t])}}const wg=new ry("address/5.7.0");function Tg(e){dy(e,20)||wg.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let e=0;e<40;e++)n[e]=t[e].charCodeAt(0);const r=cy(pg(n));for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&r[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const Ag={};for(let e=0;e<10;e++)Ag[String(e)]=String(e);for(let e=0;e<26;e++)Ag[String.fromCharCode(65+e)]=String(10+e);const Eg=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function _g(e){let t=null;if("string"!=typeof e&&wg.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Tg(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&wg.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==function(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>Ag[e])).join("");for(;t.length>=Eg;){let e=t.substring(0,Eg);t=parseInt(e,10)%97+t.substring(e.length)}let n=String(98-parseInt(t,10)%97);for(;n.length<2;)n="0"+n;return n}(e)&&wg.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new yy(n,36).toString(16);t.length<40;)t="0"+t;t=Tg("0x"+t)}else wg.throwArgumentError("invalid address","address",e);var n;return t}function Ig(e){try{return _g(e),!0}catch(e){}return!1}function Rg(e){let t=null;try{t=_g(e.from)}catch(t){wg.throwArgumentError("missing from address","transaction",e)}const n=function(e){let t=cy(e);if(0===t.length)return t;let n=0;for(;n<t.length&&0===t[n];)n++;return n&&(t=t.slice(n)),t}(cy(Ty.from(e.nonce).toHexString()));return _g(hy(pg(py(gg([t,n]))),12))}class Cg extends ug{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=_g(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return _g(my(e.readValue().toHexString(),20))}}class Og extends ug{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const kg=new ry(Fy);function Sg(e,t,n){let r=null;if(Array.isArray(n))r=n;else if(n&&"object"==typeof n){let e={};r=t.map((t=>{const r=t.localName;return r||kg.throwError("cannot encode object for signature with missing names",ry.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&kg.throwError("cannot encode object for signature with duplicate names",ry.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]}))}else kg.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&kg.throwArgumentError("types/value length mismatch","tuple",n);let i=new cg(e.wordSize),a=new cg(e.wordSize),o=[];t.forEach(((e,t)=>{let n=r[t];if(e.dynamic){let t=a.length;e.encode(a,n);let r=i.writeUpdatableValue();o.push((e=>{r(e+t)}))}else e.encode(i,n)})),o.forEach((e=>{e(i.length)}));let s=e.appendWriter(i);return s+=e.appendWriter(a),s}function Ng(e,t){let n=[],r=e.subReader(0);t.forEach((t=>{let i=null;if(t.dynamic){let n=e.readValue(),a=r.subReader(n.toNumber());try{i=t.decode(a)}catch(e){if(e.code===ry.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===ry.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&n.push(i)}));const i=t.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});t.forEach(((e,t)=>{let r=e.localName;if(!r||1!==i[r])return;if("length"===r&&(r="_length"),null!=n[r])return;const a=n[t];a instanceof Error?Object.defineProperty(n,r,{enumerable:!0,get:()=>{throw a}}):n[r]=a}));for(let e=0;e<n.length;e++){const t=n[e];t instanceof Error&&Object.defineProperty(n,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(n)}class xg extends ug{constructor(e,t,n){super("array",e.type+"["+(t>=0?t:"")+"]",n,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let n=this.length;-1===n&&(n=t.length,e.writeValue(t.length)),kg.checkArgumentCount(t.length,n,"coder array"+(this.localName?" "+this.localName:""));let r=[];for(let e=0;e<t.length;e++)r.push(this.coder);return Sg(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&kg.throwError("insufficient data length",ry.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new Og(this.coder));return e.coerce(this.name,Ng(e,n))}}class Pg extends ug{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}}class Mg extends ug{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=cy(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class Bg extends Mg{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,py(super.decode(e)))}}class Dg extends ug{constructor(e,t){let n="bytes"+String(e);super(n,n,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let n=cy(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,py(e.readBytes(this.size)))}}class Fg extends ug{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}}const Lg=Ty.from(-1),Ug=Ty.from(0),qg=Ty.from(1),jg=Ty.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class Gg extends ug{constructor(e,t,n){const r=(t?"int":"uint")+8*e;super(r,r,n,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let n=Ty.from(t),r=jg.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add(qg).mul(Lg)))&&this._throwError("value out-of-bounds",t)}else(n.lt(Ug)||n.gt(r.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return n=n.toTwos(8*this.size).mask(8*this.size),this.signed&&(n=n.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(n)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}}const Hg=new ry("strings/5.7.0");var zg,Vg;function Wg(e,t,n,r,i){if(e===Vg.BAD_PREFIX||e===Vg.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===Vg.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(zg||(zg={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(Vg||(Vg={}));const Kg=Object.freeze({error:function(e,t,n,r,i){return Hg.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:Wg,replace:function(e,t,n,r,i){return e===Vg.OVERLONG?(r.push(i),0):(r.push(65533),Wg(e,t,n))}});function Xg(e,t=zg.current){t!=zg.current&&(Hg.checkNormalize(),e=e.normalize(t));let n=[];for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(63&r|128);else if(55296==(64512&r)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const a=65536+((1023&r)<<10)+(1023&i);n.push(a>>18|240),n.push(a>>12&63|128),n.push(a>>6&63|128),n.push(63&a|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return cy(n)}function Jg(e,t){return n=function(e,t){null==t&&(t=Kg.error),e=cy(e);const n=[];let r=0;for(;r<e.length;){const i=e[r++];if(i>>7==0){n.push(i);continue}let a=null,o=null;if(192==(224&i))a=1,o=127;else if(224==(240&i))a=2,o=2047;else{if(240!=(248&i)){r+=t(128==(192&i)?Vg.UNEXPECTED_CONTINUE:Vg.BAD_PREFIX,r-1,e,n);continue}a=3,o=65535}if(r-1+a>=e.length){r+=t(Vg.OVERRUN,r-1,e,n);continue}let s=i&(1<<8-a-1)-1;for(let i=0;i<a;i++){let i=e[r];if(128!=(192&i)){r+=t(Vg.MISSING_CONTINUE,r,e,n),s=null;break}s=s<<6|63&i,r++}null!==s&&(s>1114111?r+=t(Vg.OUT_OF_RANGE,r-1-a,e,n,s):s>=55296&&s<=57343?r+=t(Vg.UTF16_SURROGATE,r-1-a,e,n,s):s<=o?r+=t(Vg.OVERLONG,r-1-a,e,n,s):n.push(s))}return n}(e,t),n.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("");var n}class Yg extends Mg{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,Xg(t))}decode(e){return Jg(super.decode(e))}}class Qg extends ug{constructor(e,t){let n=!1;const r=[];e.forEach((e=>{e.dynamic&&(n=!0),r.push(e.type)}));super("tuple","tuple("+r.join(",")+")",t,n),this.coders=e}defaultValue(){const e=[];this.coders.forEach((t=>{e.push(t.defaultValue())}));const t=this.coders.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});return this.coders.forEach(((n,r)=>{let i=n.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[r]))})),Object.freeze(e)}encode(e,t){return Sg(e,this.coders,t)}decode(e){return e.coerce(this.name,Ng(e,this.coders))}}const $g=new ry(Fy),Zg=new RegExp(/^bytes([0-9]*)$/),eb=new RegExp(/^(u?int)([0-9]*)$/);const tb=new class{constructor(e){Oy(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new Cg(e.name);case"bool":return new Pg(e.name);case"string":return new Yg(e.name);case"bytes":return new Bg(e.name);case"array":return new xg(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Qg((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new Fg(e.name)}let t=e.type.match(eb);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&$g.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Gg(n/8,"int"===t[1],e.name)}if(t=e.type.match(Zg),t){let n=parseInt(t[1]);return(0===n||n>32)&&$g.throwArgumentError("invalid bytes length","param",e),new Dg(n,e.name)}return $g.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new lg(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new cg(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(Wy.from(e))));return new Qg(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&$g.throwError("types/values length mismatch",ry.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map((e=>this._getCoder(Wy.from(e)))),r=new Qg(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map((e=>this._getCoder(Wy.from(e))));return new Qg(r,"_").decode(this._getReader(cy(t),n))}};function nb(e){return pg(Xg(e))}const rb=new ry(Fy);class ib extends Dy{}class ab extends Dy{}class ob extends Dy{}class sb extends Dy{static isIndexed(e){return!(!e||!e._isIndexed)}}const ub={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function cb(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}class lb{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,Oy(this,"fragments",t.map((e=>Xy.from(e))).filter((e=>null!=e))),Oy(this,"_abiCoder",ky(new.target,"getAbiCoder")()),Oy(this,"functions",{}),Oy(this,"errors",{}),Oy(this,"events",{}),Oy(this,"structs",{}),this.fragments.forEach((e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void rb.warn("duplicate definition - constructor"):void Oy(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let n=e.format();t[n]?rb.warn("duplicate definition - "+n):t[n]=e})),this.deploy||Oy(this,"deploy",Zy.from({payable:!1,type:"constructor"})),Oy(this,"_isInterface",!0)}format(e){e||(e=zy.full),e===zy.sighash&&rb.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map((t=>t.format(e)));return e===zy.json?JSON.stringify(t.map((e=>JSON.parse(e)))):t}static getAbiCoder(){return tb}static getAddress(e){return _g(e)}static getSighash(e){return hy(nb(e.format()),0,4)}static getEventTopic(e){return nb(e.format())}getFunction(e){if(dy(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];rb.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.functions).filter((e=>e.split("(")[0]===t));return 0===n.length?rb.throwArgumentError("no matching function","name",t):n.length>1&&rb.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[eg.fromString(e).format()];return t||rb.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(dy(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];rb.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.events).filter((e=>e.split("(")[0]===t));return 0===n.length?rb.throwArgumentError("no matching event","name",t):n.length>1&&rb.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[Jy.fromString(e).format()];return t||rb.throwArgumentError("no matching event","signature",e),t}getError(e){if(dy(e)){const t=ky(this.constructor,"getSighash");for(const n in this.errors){if(e===t(this.errors[n]))return this.errors[n]}rb.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.errors).filter((e=>e.split("(")[0]===t));return 0===n.length?rb.throwArgumentError("no matching error","name",t):n.length>1&&rb.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[eg.fromString(e).format()];return t||rb.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return ky(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),ky(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const n=cy(t);return py(n.slice(0,4))!==this.getSighash(e)&&rb.throwArgumentError(`data signature does not match error ${e.name}.`,"data",py(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),py(ly([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=cy(t);return py(n.slice(0,4))!==this.getSighash(e)&&rb.throwArgumentError(`data signature does not match function ${e.name}.`,"data",py(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),py(ly([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=cy(t),r=null,i="",a=null,o=null,s=null;switch(n.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,n)}catch(e){}break;case 4:{const e=py(n.slice(0,4)),t=ub[e];if(t)a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.signature,t.reason&&(r=a[0]),"Error"===o?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(a[0])}`:"Panic"===o&&(i=`; VM Exception while processing transaction: reverted with panic code ${a[0]}`);else try{const t=this.getError(e);a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.format()}catch(e){}break}}return rb.throwError("call revert exception"+i,ry.errors.CALL_EXCEPTION,{method:e.format(),data:py(t),errorArgs:a,errorName:o,errorSignature:s,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),py(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&rb.throwError("too many arguments for "+e.format(),ry.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?nb(t):"bytes"===e.type?pg(py(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=Ty.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),my(py(t),32));for(t.forEach(((t,i)=>{let a=e.inputs[i];a.indexed?null==t?n.push(null):"array"===a.baseType||"tuple"===a.baseType?rb.throwArgumentError("filtering with tuples or arrays not supported","contract."+a.name,t):Array.isArray(t)?n.push(t.map((e=>r(a,e)))):n.push(r(a,t)):null!=t&&rb.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+a.name,t)}));n.length&&null===n[n.length-1];)n.pop();return n}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const n=[],r=[],i=[];return e.anonymous||n.push(this.getEventTopic(e)),t.length!==e.inputs.length&&rb.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach(((e,a)=>{const o=t[a];if(e.indexed)if("string"===e.type)n.push(nb(o));else if("bytes"===e.type)n.push(pg(o));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");n.push(this._abiCoder.encode([e.type],[o]))}else r.push(e),i.push(o)})),{data:this._abiCoder.encode(r,i),topics:n}}decodeEventLog(e,t,n){if("string"==typeof e&&(e=this.getEvent(e)),null!=n&&!e.anonymous){let t=this.getEventTopic(e);dy(n[0],32)&&n[0].toLowerCase()===t||rb.throwError("fragment/topic mismatch",ry.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:n[0]}),n=n.slice(1)}let r=[],i=[],a=[];e.inputs.forEach(((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(r.push(Wy.fromObject({type:"bytes32",name:e.name})),a.push(!0)):(r.push(e),a.push(!1)):(i.push(e),a.push(!1))}));let o=null!=n?this._abiCoder.decode(r,ly(n)):null,s=this._abiCoder.decode(i,t,!0),u=[],c=0,l=0;e.inputs.forEach(((e,t)=>{if(e.indexed)if(null==o)u[t]=new sb({_isIndexed:!0,hash:null});else if(a[t])u[t]=new sb({_isIndexed:!0,hash:o[l++]});else try{u[t]=o[l++]}catch(e){u[t]=e}else try{u[t]=s[c++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const n=u[t];n instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw cb(`property ${JSON.stringify(e.name)}`,n)}}):u[e.name]=n}}));for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw cb(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new ab({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:Ty.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new ib({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=py(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new ob({args:this._abiCoder.decode(n.inputs,"0x"+t.substring(10)),errorFragment:n,name:n.name,signature:n.format(),sighash:this.getSighash(n)}):null}static isInterface(e){return!(!e||!e._isInterface)}}var db=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const fb=new ry("abstract-provider/5.7.0");class pb{constructor(){fb.checkAbstract(new.target,pb),Oy(this,"_isProvider",!0)}getFeeData(){return db(this,void 0,void 0,(function*(){const{block:e,gasPrice:t}=yield Sy({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch((e=>null))});let n=null,r=null,i=null;return e&&e.baseFeePerGas&&(n=e.baseFeePerGas,i=Ty.from("1500000000"),r=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:n,maxFeePerGas:r,maxPriorityFeePerGas:i,gasPrice:t}}))}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}}var hb=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const mb=new ry("abstract-signer/5.7.0"),yb=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],gb=[ry.errors.INSUFFICIENT_FUNDS,ry.errors.NONCE_EXPIRED,ry.errors.REPLACEMENT_UNDERPRICED];class bb{constructor(){mb.checkAbstract(new.target,bb),Oy(this,"_isSigner",!0)}getBalance(e){return hb(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),e)}))}getTransactionCount(e){return hb(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),e)}))}estimateGas(e){return hb(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const t=yield Sy(this.checkTransaction(e));return yield this.provider.estimateGas(t)}))}call(e,t){return hb(this,void 0,void 0,(function*(){this._checkProvider("call");const n=yield Sy(this.checkTransaction(e));return yield this.provider.call(n,t)}))}sendTransaction(e){return hb(this,void 0,void 0,(function*(){this._checkProvider("sendTransaction");const t=yield this.populateTransaction(e),n=yield this.signTransaction(t);return yield this.provider.sendTransaction(n)}))}getChainId(){return hb(this,void 0,void 0,(function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return hb(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return hb(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(e){return hb(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(e)}))}checkTransaction(e){for(const t in e)-1===yb.indexOf(t)&&mb.throwArgumentError("invalid transaction key: "+t,"transaction",e);const t=Ny(e);return null==t.from?t.from=this.getAddress():t.from=Promise.all([Promise.resolve(t.from),this.getAddress()]).then((t=>(t[0].toLowerCase()!==t[1].toLowerCase()&&mb.throwArgumentError("from address mismatch","transaction",e),t[0]))),t}populateTransaction(e){return hb(this,void 0,void 0,(function*(){const t=yield Sy(this.checkTransaction(e));null!=t.to&&(t.to=Promise.resolve(t.to).then((e=>hb(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.resolveName(e);return null==t&&mb.throwArgumentError("provided ENS name resolves to null","tx.to",e),t})))),t.to.catch((e=>{})));const n=null!=t.maxFeePerGas||null!=t.maxPriorityFeePerGas;if(null==t.gasPrice||2!==t.type&&!n?0!==t.type&&1!==t.type||!n||mb.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",e):mb.throwArgumentError("eip-1559 transaction do not support gasPrice","transaction",e),2!==t.type&&null!=t.type||null==t.maxFeePerGas||null==t.maxPriorityFeePerGas)if(0===t.type||1===t.type)null==t.gasPrice&&(t.gasPrice=this.getGasPrice());else{const e=yield this.getFeeData();if(null==t.type)if(null!=e.maxFeePerGas&&null!=e.maxPriorityFeePerGas)if(t.type=2,null!=t.gasPrice){const e=t.gasPrice;delete t.gasPrice,t.maxFeePerGas=e,t.maxPriorityFeePerGas=e}else null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas);else null!=e.gasPrice?(n&&mb.throwError("network does not support EIP-1559",ry.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==t.gasPrice&&(t.gasPrice=e.gasPrice),t.type=0):mb.throwError("failed to get consistent fee data",ry.errors.UNSUPPORTED_OPERATION,{operation:"signer.getFeeData"});else 2===t.type&&(null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas))}else t.type=2;return null==t.nonce&&(t.nonce=this.getTransactionCount("pending")),null==t.gasLimit&&(t.gasLimit=this.estimateGas(t).catch((e=>{if(gb.indexOf(e.code)>=0)throw e;return mb.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",ry.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,tx:t})}))),null==t.chainId?t.chainId=this.getChainId():t.chainId=Promise.all([Promise.resolve(t.chainId),this.getChainId()]).then((t=>(0!==t[1]&&t[0]!==t[1]&&mb.throwArgumentError("chainId address mismatch","transaction",e),t[0]))),yield Sy(t)}))}_checkProvider(e){this.provider||mb.throwError("missing provider",ry.errors.UNSUPPORTED_OPERATION,{operation:e||"_checkProvider"})}static isSigner(e){return!(!e||!e._isSigner)}}class vb extends bb{constructor(e,t){super(),Oy(this,"address",e),Oy(this,"provider",t||null)}getAddress(){return Promise.resolve(this.address)}_fail(e,t){return Promise.resolve().then((()=>{mb.throwError(e,ry.errors.UNSUPPORTED_OPERATION,{operation:t})}))}signMessage(e){return this._fail("VoidSigner cannot sign messages","signMessage")}signTransaction(e){return this._fail("VoidSigner cannot sign transactions","signTransaction")}_signTypedData(e,t,n){return this._fail("VoidSigner cannot sign typed data","signTypedData")}connect(e){return new vb(this.address,e)}}const wb=new ry("transactions/5.7.0");var Tb;function Ab(e,t){return{address:_g(e),storageKeys:(t||[]).map(((t,n)=>(32!==function(e){if("string"!=typeof e)e=py(e);else if(!dy(e)||e.length%2)return null;return(e.length-2)/2}(t)&&wb.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase())))}}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(Tb||(Tb={}));var Eb=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const _b=new ry("contracts/5.7.0");function Ib(e,t){return Eb(this,void 0,void 0,(function*(){const n=yield t;"string"!=typeof n&&_b.throwArgumentError("invalid address or ENS name","name",n);try{return _g(n)}catch(e){}e||_b.throwError("a provider or signer is needed to resolve ENS names",ry.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&_b.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r}))}function Rb(e,t,n){return Eb(this,void 0,void 0,(function*(){return Array.isArray(n)?yield Promise.all(n.map(((n,r)=>Rb(e,Array.isArray(t)?t[r]:t[n.name],n)))):"address"===n.type?yield Ib(e,t):"tuple"===n.type?yield Rb(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map((t=>Rb(e,t,n.arrayChildren)))):Promise.reject(_b.makeError("invalid value for array",ry.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t}))}function Cb(e,t,n){return Eb(this,void 0,void 0,(function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=Ny(n.pop())),_b.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from?r.from=Sy({override:Ib(e.signer,r.from),signer:e.signer.getAddress()}).then((e=>Eb(this,void 0,void 0,(function*(){return _g(e.signer)!==e.override&&_b.throwError("Contract with a Signer cannot override from",ry.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})))):r.from=e.signer.getAddress():r.from&&(r.from=Ib(e.provider,r.from));const i=yield Sy({args:Rb(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:Sy(r)||{}}),a=e.interface.encodeFunctionData(t,i.args),o={data:a,to:i.address},s=i.overrides;if(null!=s.nonce&&(o.nonce=Ty.from(s.nonce).toNumber()),null!=s.gasLimit&&(o.gasLimit=Ty.from(s.gasLimit)),null!=s.gasPrice&&(o.gasPrice=Ty.from(s.gasPrice)),null!=s.maxFeePerGas&&(o.maxFeePerGas=Ty.from(s.maxFeePerGas)),null!=s.maxPriorityFeePerGas&&(o.maxPriorityFeePerGas=Ty.from(s.maxPriorityFeePerGas)),null!=s.from&&(o.from=s.from),null!=s.type&&(o.type=s.type),null!=s.accessList&&(o.accessList=function(e){if(Array.isArray(e))return e.map(((e,t)=>Array.isArray(e)?(e.length>2&&wb.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),Ab(e[0],e[1])):Ab(e.address,e.storageKeys)));const t=Object.keys(e).map((t=>{const n=e[t].reduce(((e,t)=>(e[t]=!0,e)),{});return Ab(t,Object.keys(n).sort())}));return t.sort(((e,t)=>e.address.localeCompare(t.address))),t}(s.accessList)),null==o.gasLimit&&null!=t.gas){let e=21e3;const n=cy(a);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);o.gasLimit=Ty.from(t.gas).add(e)}if(s.value){const e=Ty.from(s.value);e.isZero()||t.payable||_b.throwError("non-payable method cannot override value",ry.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),o.value=e}s.customData&&(o.customData=Ny(s.customData)),s.ccipReadEnabled&&(o.ccipReadEnabled=!!s.ccipReadEnabled),delete r.nonce,delete r.gasLimit,delete r.gasPrice,delete r.from,delete r.value,delete r.type,delete r.accessList,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.customData,delete r.ccipReadEnabled;const u=Object.keys(r).filter((e=>null!=r[e]));return u.length&&_b.throwError(`cannot override ${u.map((e=>JSON.stringify(e))).join(",")}`,ry.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),o}))}function Ob(e,t,n){const r=e.signer||e.provider;return function(...i){return Eb(this,void 0,void 0,(function*(){let a;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=Ny(i.pop());null!=e.blockTag&&(a=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(a));const o=yield Cb(e,t,i),s=yield r.call(o,a);try{let r=e.interface.decodeFunctionResult(t,s);return n&&1===t.outputs.length&&(r=r[0]),r}catch(t){throw t.code===ry.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=o),t}}))}}function kb(e,t){return function(...n){return Eb(this,void 0,void 0,(function*(){e.signer||_b.throwError("sending a transaction requires a signer",ry.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield Cb(e,t,n),i=yield e.signer.sendTransaction(r);return function(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then((t=>(t.events=t.logs.map((n=>{let r=By(n),i=null;try{i=e.interface.parseLog(n)}catch(e){}return i&&(r.args=i.args,r.decode=(t,n)=>e.interface.decodeEventLog(i.eventFragment,t,n),r.event=i.name,r.eventSignature=i.signature),r.removeListener=()=>e.provider,r.getBlock=()=>e.provider.getBlock(t.blockHash),r.getTransaction=()=>e.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>Promise.resolve(t),r})),t)))}(e,i),i}))}}function Sb(e,t,n){return t.constant?Ob(e,t,n):kb(e,t)}function Nb(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map((e=>Array.isArray(e)?e.join("|"):e)).join(":"):""):"*"}class xb{constructor(e,t){Oy(this,"tag",e),Oy(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter((n=>!(!t&&n.listener===e)||(t=!0,!1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map((e=>e.listener))}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter((t=>{const n=e.slice();return setTimeout((()=>{t.listener.apply(this,n)}),0),!t.once})),t}prepareEvent(e){}getEmit(e){return[e]}}class Pb extends xb{constructor(){super("error",null)}}class Mb extends xb{constructor(e,t,n,r){const i={address:e};let a=t.getEventTopic(n);r?(a!==r[0]&&_b.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[a],super(Nb(i),i),Oy(this,"address",e),Oy(this,"interface",t),Oy(this,"fragment",n)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=function(e){const t=[],n=function(e,r){if(Array.isArray(r))for(let i in r){const a=e.slice();a.push(i);try{n(a,r[i])}catch(e){t.push({path:a,error:e})}}};return n([],e),t}(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}}class Bb extends xb{constructor(e,t){super("*",{address:e}),Oy(this,"address",e),Oy(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,n)=>this.interface.decodeEventLog(t.eventFragment,e,n),e.args=t.args}catch(e){}}}class Db{constructor(e,t,n){Oy(this,"interface",ky(new.target,"getInterface")(t)),null==n?(Oy(this,"provider",null),Oy(this,"signer",null)):bb.isSigner(n)?(Oy(this,"provider",n.provider||null),Oy(this,"signer",n)):pb.isProvider(n)?(Oy(this,"provider",n),Oy(this,"signer",null)):_b.throwArgumentError("invalid signer or provider","signerOrProvider",n),Oy(this,"callStatic",{}),Oy(this,"estimateGas",{}),Oy(this,"functions",{}),Oy(this,"populateTransaction",{}),Oy(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach((t=>{const n=this.interface.events[t];Oy(this.filters,t,((...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(n,e)}))),e[n.name]||(e[n.name]=[]),e[n.name].push(t)})),Object.keys(e).forEach((t=>{const n=e[t];1===n.length?Oy(this.filters,t,this.filters[n[0]]):_b.warn(`Duplicate definition of ${t} (${n.join(", ")})`)}))}if(Oy(this,"_runningEvents",{}),Oy(this,"_wrappedEmits",{}),null==e&&_b.throwArgumentError("invalid contract address or ENS name","addressOrName",e),Oy(this,"address",e),this.provider)Oy(this,"resolvedAddress",Ib(this.provider,e));else try{Oy(this,"resolvedAddress",Promise.resolve(_g(e)))}catch(e){_b.throwError("provider is required to use ENS name as contract address",ry.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch((e=>{}));const r={},i={};Object.keys(this.interface.functions).forEach((e=>{const t=this.interface.functions[e];if(i[e])_b.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const n=t.name;r[`%${n}`]||(r[`%${n}`]=[]),r[`%${n}`].push(e)}null==this[e]&&Oy(this,e,Sb(this,t,!0)),null==this.functions[e]&&Oy(this.functions,e,Sb(this,t,!1)),null==this.callStatic[e]&&Oy(this.callStatic,e,Ob(this,t,!0)),null==this.populateTransaction[e]&&Oy(this.populateTransaction,e,function(e,t){return function(...n){return Cb(e,t,n)}}(this,t)),null==this.estimateGas[e]&&Oy(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return Eb(this,void 0,void 0,(function*(){n||_b.throwError("estimate require a provider or signer",ry.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield Cb(e,t,r);return yield n.estimateGas(i)}))}}(this,t))}})),Object.keys(r).forEach((e=>{const t=r[e];if(t.length>1)return;e=e.substring(1);const n=t[0];try{null==this[e]&&Oy(this,e,this[n])}catch(e){}null==this.functions[e]&&Oy(this.functions,e,this.functions[n]),null==this.callStatic[e]&&Oy(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&Oy(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&Oy(this.estimateGas,e,this.estimateGas[n])}))}static getContractAddress(e){return Rg(e)}static getInterface(e){return lb.isInterface(e)?e:new lb(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then((()=>this)):this._deployedPromise=this.provider.getCode(this.address,e).then((e=>("0x"===e&&_b.throwError("contract not deployed",ry.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(e){this.signer||_b.throwError("sending a transactions require a signer",ry.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=Ny(e||{});return["from","to"].forEach((function(e){null!=t[e]&&_b.throwError("cannot override "+e,ry.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(t)))}connect(e){"string"==typeof e&&(e=new vb(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&Oy(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return sb.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new Pb);if("event"===e)return this._normalizeRunningEvent(new xb("event",null));if("*"===e)return this._normalizeRunningEvent(new Bb(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new Mb(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const n=this.interface.getEvent(t);return this._normalizeRunningEvent(new Mb(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new xb(Nb(t),t))}return this._normalizeRunningEvent(new Bb(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,n){const r=By(t);return r.removeListener=()=>{n&&(e.removeListener(n),this._checkRunningEvents(e))},r.getBlock=()=>this.provider.getBlock(t.blockHash),r.getTransaction=()=>this.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(r),r}_addEventListener(e,t,n){if(this.provider||_b.throwError("events require a provider or a signer with a provider",ry.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,n),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const n=n=>{let r=this._wrapEvent(e,n,t);if(null==r.decodeError)try{const t=e.getEmit(r);this.emit(e.filter,...t)}catch(e){r.decodeError=e.error}null!=e.filter&&this.emit("event",r),null!=r.decodeError&&this.emit("error",r.decodeError,r)};this._wrappedEmits[e.tag]=n,null!=e.filter&&this.provider.on(e.filter,n)}}queryFilter(e,t,n){const r=this._getRunningEvent(e),i=Ny(r.filter);return"string"==typeof t&&dy(t,32)?(null!=n&&_b.throwArgumentError("cannot specify toBlock with blockhash","toBlock",n),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=n?n:"latest"),this.provider.getLogs(i).then((e=>e.map((e=>this._wrapEvent(r,e,null)))))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const n=this._getRunningEvent(e),r=n.run(t)>0;return this._checkRunningEvents(n),r}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce(((e,t)=>e+this._runningEvents[t].listenerCount()),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach((t=>{e.push(t)}));return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const n=this._getRunningEvent(e);return n.removeListener(t),this._checkRunningEvents(n),this}removeListener(e,t){return this.off(e,t)}}class Fb extends Db{}var Lb;!function(e){e.SUCCESS="SUCCESS",e.PENDING="PENDING",e.FAILED="FAILED"}(Lb||(Lb={}));const Ub=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ERC20Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ERC20Withdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"}],name:"TokenMapped",type:"event"},{inputs:[],name:"DEPOSIT_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAP_TOKEN_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TOKEN",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"WITHDRAW_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"childERC20Predicate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childTokenTemplate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"depositNativeTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"depositTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"exitHelper",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newStateSender",type:"address"},{internalType:"address",name:"newExitHelper",type:"address"},{internalType:"address",name:"newChildERC20Predicate",type:"address"},{internalType:"address",name:"newChildTokenTemplate",type:"address"},{internalType:"address",name:"nativeTokenRootAddress",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"}],name:"mapToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"onL2StateReceive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"rootTokenToChildToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"stateSender",outputs:[{internalType:"contract IStateSender",name:"",type:"address"}],stateMutability:"view",type:"function"}],qb=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}];var jb;!function(e){e.UNSUPPORTED_ERROR="UNSUPPORTED_ERROR",e.INVALID_ADDRESS="INVALID_ADDRESS",e.INVALID_AMOUNT="INVALID_AMOUNT",e.INTERNAL_ERROR="INTERNAL_ERROR",e.PROVIDER_ERROR="PROVIDER_ERROR",e.TRANSACTION_REVERTED="TRANSACTION_REVERTED",e.INVALID_TOKEN="INVALID_TOKEN",e.INVALID_TRANSACTION="INVALID_TRANSACTION"}(jb||(jb={}));class Gb extends Error{type;constructor(e,t){super(e),this.type=t}}const Hb=async(e,t,n)=>{try{return await e()}catch(e){let r=`${t}: ${e.message}`||"UnknownError";throw n&&(r=`${n}: ${r}`),new Gb(r,t)}},zb=[{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"bytes",name:"data",type:"bytes"}],name:"StateSynced",type:"event"},{inputs:[],name:"MAX_LENGTH",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"counter",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"syncState",outputs:[],stateMutability:"nonpayable",type:"function"}],Vb=[{inputs:[{internalType:"string",name:"only",type:"string"}],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"startId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"endId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"root",type:"bytes32"}],name:"NewCommitment",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"counter",type:"uint256"},{indexed:!0,internalType:"bool",name:"status",type:"bool"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"StateSyncResult",type:"event"},{inputs:[],name:"NATIVE_TOKEN_CONTRACT",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TRANSFER_PRECOMPILE",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TRANSFER_PRECOMPILE_GAS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"SYSTEM",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"VALIDATOR_PKCHECK_PRECOMPILE",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"VALIDATOR_PKCHECK_PRECOMPILE_GAS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[][]",name:"proofs",type:"bytes32[][]"},{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct StateReceiver.StateSync[]",name:"objs",type:"tuple[]"}],name:"batchExecute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"startId",type:"uint256"},{internalType:"uint256",name:"endId",type:"uint256"},{internalType:"bytes32",name:"root",type:"bytes32"}],internalType:"struct StateReceiver.StateSyncCommitment",name:"commitment",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"bitmap",type:"bytes"}],name:"commit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"commitmentCounter",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"commitmentIds",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"commitments",outputs:[{internalType:"uint256",name:"startId",type:"uint256"},{internalType:"uint256",name:"endId",type:"uint256"},{internalType:"bytes32",name:"root",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"proof",type:"bytes32[]"},{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct StateReceiver.StateSync",name:"obj",type:"tuple"}],name:"execute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getCommitmentByStateSyncId",outputs:[{components:[{internalType:"uint256",name:"startId",type:"uint256"},{internalType:"uint256",name:"endId",type:"uint256"},{internalType:"bytes32",name:"root",type:"bytes32"}],internalType:"struct StateReceiver.StateSyncCommitment",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getRootByStateSyncId",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"lastCommittedId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"processedStateSyncs",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];const Wb=[{inputs:[{internalType:"string",name:"only",type:"string"}],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"L2ERC20Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"L2ERC20Withdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"}],name:"L2TokenMapped",type:"event"},{inputs:[],name:"DEPOSIT_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAP_TOKEN_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TOKEN_CONTRACT",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TRANSFER_PRECOMPILE",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TRANSFER_PRECOMPILE_GAS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"SYSTEM",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"VALIDATOR_PKCHECK_PRECOMPILE",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"VALIDATOR_PKCHECK_PRECOMPILE_GAS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"WITHDRAW_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"childTokenTemplate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newL2StateSender",type:"address"},{internalType:"address",name:"newStateReceiver",type:"address"},{internalType:"address",name:"newRootERC20Predicate",type:"address"},{internalType:"address",name:"newChildTokenTemplate",type:"address"},{internalType:"address",name:"newNativeTokenRootAddress",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"l2StateSender",outputs:[{internalType:"contract IStateSender",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"onStateReceive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rootERC20Predicate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"rootTokenToChildToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"stateReceiver",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IChildERC20",name:"childToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IChildERC20",name:"childToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawTo",outputs:[],stateMutability:"nonpayable",type:"function"}],Kb=[{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{inputs:[],name:"DOMAIN",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"bls",outputs:[{internalType:"contract IBLS",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"bn256G2",outputs:[{internalType:"contract IBN256G2",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"checkpointBlockNumbers",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"checkpoints",outputs:[{internalType:"uint256",name:"epoch",type:"uint256"},{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"eventRoot",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"currentCheckpointBlockNumber",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"currentEpoch",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"currentValidatorSet",outputs:[{internalType:"address",name:"_address",type:"address"},{internalType:"uint256",name:"votingPower",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"currentValidatorSetHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"currentValidatorSetLength",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getCheckpointBlock",outputs:[{internalType:"bool",name:"",type:"bool"},{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"leaf",type:"bytes32"},{internalType:"uint256",name:"leafIndex",type:"uint256"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"getEventMembershipByBlockNumber",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"epoch",type:"uint256"},{internalType:"bytes32",name:"leaf",type:"bytes32"},{internalType:"uint256",name:"leafIndex",type:"uint256"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"getEventMembershipByEpoch",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getEventRootByBlock",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IBLS",name:"newBls",type:"address"},{internalType:"contract IBN256G2",name:"newBn256G2",type:"address"},{internalType:"uint256",name:"chainId_",type:"uint256"},{components:[{internalType:"address",name:"_address",type:"address"},{internalType:"uint256[4]",name:"blsKey",type:"uint256[4]"},{internalType:"uint256",name:"votingPower",type:"uint256"}],internalType:"struct ICheckpointManager.Validator[]",name:"newValidatorSet",type:"tuple[]"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"blockHash",type:"bytes32"},{internalType:"uint256",name:"blockRound",type:"uint256"},{internalType:"bytes32",name:"currentValidatorSetHash",type:"bytes32"}],internalType:"struct ICheckpointManager.CheckpointMetadata",name:"checkpointMetadata",type:"tuple"},{components:[{internalType:"uint256",name:"epoch",type:"uint256"},{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"eventRoot",type:"bytes32"}],internalType:"struct ICheckpointManager.Checkpoint",name:"checkpoint",type:"tuple"},{internalType:"uint256[2]",name:"signature",type:"uint256[2]"},{components:[{internalType:"address",name:"_address",type:"address"},{internalType:"uint256[4]",name:"blsKey",type:"uint256[4]"},{internalType:"uint256",name:"votingPower",type:"uint256"}],internalType:"struct ICheckpointManager.Validator[]",name:"newValidatorSet",type:"tuple[]"},{internalType:"bytes",name:"bitmap",type:"bytes"}],name:"submit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"totalVotingPower",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}];function Xb(e){const t=function(e){const t=cy(e),n=vg(t,0);return n.consumed!==t.length&&hg.throwArgumentError("invalid rlp data","data",e),n.result}(`0x${e.substring(66)}`);return{validators:t[0],parent:t[1],committed:t[2],checkpoint:{blockRound:t[3][0],epochNumber:parseInt(t[3][1],16),currentValidatorHash:t[3][2],nextValidatorHash:t[3][3],eventRoot:t[3][4]}}}const Jb=[{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"bytes",name:"data",type:"bytes"}],name:"L2StateSynced",type:"event"},{inputs:[],name:"MAX_LENGTH",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"counter",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"syncState",outputs:[],stateMutability:"nonpayable",type:"function"}],Yb=[{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"bool",name:"success",type:"bool"},{indexed:!1,internalType:"bytes",name:"returnData",type:"bytes"}],name:"ExitProcessed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{inputs:[{components:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"uint256",name:"leafIndex",type:"uint256"},{internalType:"bytes",name:"unhashedLeaf",type:"bytes"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],internalType:"struct IExitHelper.BatchExitInput[]",name:"inputs",type:"tuple[]"}],name:"batchExit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"checkpointManager",outputs:[{internalType:"contract ICheckpointManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"uint256",name:"leafIndex",type:"uint256"},{internalType:"bytes",name:"unhashedLeaf",type:"bytes"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"exit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract ICheckpointManager",name:"newCheckpointManager",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"processedExits",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}],Qb=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"userAddress",type:"address"},{indexed:!1,internalType:"address",name:"relayerAddress",type:"address"},{indexed:!1,internalType:"bytes",name:"functionSignature",type:"bytes"}],name:"MetaTransactionExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"userAddress",type:"address"},{internalType:"bytes",name:"functionSignature",type:"bytes"},{internalType:"bytes32",name:"sigR",type:"bytes32"},{internalType:"bytes32",name:"sigS",type:"bytes32"},{internalType:"uint8",name:"sigV",type:"uint8"}],name:"executeMetaTransaction",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"getNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"rootToken_",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"uint8",name:"decimals_",type:"uint8"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"offset",type:"uint256"}],name:"invalidateNext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"predicate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"rootToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];class $b{config;constructor(e){this.config=e}async getFee(e){if(this.validateChainConfiguration(),"NATIVE"!==e.token&&!Ig(e.token))throw new Gb(`token address ${e.token} is not a valid address`,jb.INVALID_ADDRESS);return{bridgeable:!0,feeAmount:Ty.from(0)}}async getUnsignedApproveDepositBridgeTx(e){if(this.validateChainConfiguration(),$b.validateDepositArgs(e.depositorAddress,e.depositAmount,e.token),"NATIVE"===e.token)return{unsignedTx:null};const t=await Hb((async()=>new Fb(e.token,qb,this.config.rootProvider)),jb.PROVIDER_ERROR),n=await Hb((()=>t.allowance(e.depositorAddress,this.config.bridgeContracts.rootChainERC20Predicate)),jb.PROVIDER_ERROR);if(n.gte(e.depositAmount))return{unsignedTx:null};const r=e.depositAmount.sub(n);return{unsignedTx:{data:await Hb((async()=>t.interface.encodeFunctionData("approve",[this.config.bridgeContracts.rootChainERC20Predicate,r])),jb.INTERNAL_ERROR),to:e.token,value:0,from:e.depositorAddress}}}async getUnsignedDepositTx(e){this.validateChainConfiguration(),$b.validateDepositArgs(e.recipientAddress,e.depositAmount,e.token);const t=await Hb((async()=>new Fb(this.config.bridgeContracts.rootChainERC20Predicate,Ub)),jb.INTERNAL_ERROR),n=_g(e.recipientAddress);if("NATIVE"===e.token){return{unsignedTx:{data:await Hb((async()=>t.interface.encodeFunctionData("depositNativeTo",[n])),jb.INTERNAL_ERROR),to:this.config.bridgeContracts.rootChainERC20Predicate,value:e.depositAmount}}}const r=_g(e.token);return{unsignedTx:{data:await Hb((async()=>t.interface.encodeFunctionData("depositTo",[r,n,e.depositAmount])),jb.INTERNAL_ERROR),to:this.config.bridgeContracts.rootChainERC20Predicate,value:0}}}async waitForDeposit(e){this.validateChainConfiguration();const t=await Hb((async()=>this.config.rootProvider.waitForTransaction(e.transactionHash,this.config.rootChainFinalityBlocks)),jb.PROVIDER_ERROR);if(1!==t.status)throw new Gb(`${t.transactionHash} on rootchain was reverted`,jb.TRANSACTION_REVERTED);const n=await Hb((async()=>this.getRootStateSyncID(t)),jb.PROVIDER_ERROR),r=await Hb((async()=>await this.config.rootProvider.getBlock(t.blockNumber)),jb.PROVIDER_ERROR,`failed to query block ${t.blockNumber} on rootchain`),i=await Hb((async()=>async function(e,t,n,r){let i=0,a=await e.getBlockNumber();for(;a!==i+1;){const o=Math.floor((i+a)/2),s=await e.getBlock(o),u=t-s.timestamp;if(u>r&&u<n+r)return o;s.timestamp<t?i=o:a=o}return i}(this.config.childProvider,r.timestamp,this.config.blockTime,this.config.clockInaccuracy)),jb.PROVIDER_ERROR),a=i+this.config.maxDepositBlockDelay;return{status:await Hb((async()=>this.waitForChildStateSync(n,this.config.pollInterval,i,a)),jb.PROVIDER_ERROR)}}async getChildToken(e){this.validateChainConfiguration();const t="NATIVE"===e.rootToken?qm:e.rootToken;if(!Ig(t))throw new Gb(`token address ${t} is not a valid address`,jb.INVALID_ADDRESS);return{childToken:await Hb((async()=>{const e=new Fb(this.config.bridgeContracts.rootChainERC20Predicate,Ub,this.config.rootProvider);return await e.rootTokenToChildToken(t)}),jb.PROVIDER_ERROR,"failed to query rootTokenToChildToken mapping")}}async getRootToken(e){this.validateChainConfiguration();const t=await Hb((async()=>{const t=new Fb(e.childToken,Qb,this.config.childProvider);return await t.rootToken()}),jb.PROVIDER_ERROR,"failed to query the root token from the child token contract");return{rootToken:t===qm?"NATIVE":t}}async getUnsignedWithdrawTx(e){this.validateChainConfiguration(),$b.validateWithdrawArgs(e.recipientAddress,e.withdrawAmount,e.token);const t=await Hb((async()=>new Fb(this.config.bridgeContracts.childChainERC20Predicate,Wb)),jb.INTERNAL_ERROR);return{unsignedTx:{data:await Hb((async()=>t.interface.encodeFunctionData("withdrawTo",[e.token,e.recipientAddress,e.withdrawAmount])),jb.INTERNAL_ERROR),to:this.config.bridgeContracts.childChainERC20Predicate,value:0}}}async waitForWithdrawal(e){this.validateChainConfiguration();const t=()=>new Promise((e=>{setTimeout(e,this.config.pollInterval)}));return await Hb((async()=>{const n=await this.config.childProvider.getTransactionReceipt(e.transactionHash),r=Xb((await this.config.childProvider.getBlock(n.blockNumber)).extraData),i=new Fb(this.config.bridgeContracts.rootChainCheckpointManager,Kb,this.config.rootProvider),a=async()=>await i.currentEpoch()>=r.checkpoint.epochNumber?null:(await t(),a());await a()}),jb.PROVIDER_ERROR),{}}async getUnsignedExitTx(e){this.validateChainConfiguration();const t=await Hb((async()=>await this.config.childProvider.getTransactionReceipt(e.transactionHash)),jb.PROVIDER_ERROR),n=t.logs.filter((e=>e.address.toLowerCase()===Um));if(1!==n.length)throw new Gb(`expected 1 log in tx ${t.transactionHash} from address ${Um}`,jb.INVALID_TRANSACTION);const r=await Hb((async()=>{const e=new lb(Jb).parseLog(n[0]);if("L2StateSynced(uint256,address,address,bytes)"!==e.signature)throw new Error(`expected L2StateSynced event in tx ${t.transactionHash}`);return e}),jb.INVALID_TRANSACTION),i=await Hb((async()=>new Fb(this.config.bridgeContracts.rootChainExitHelper,Yb,this.config.rootProvider)),jb.PROVIDER_ERROR),a=await Hb((async()=>this.config.childProvider.send("bridge_generateExitProof",[r.args.id.toHexString()])),jb.PROVIDER_ERROR);return{unsignedTx:{data:await Hb((async()=>{const e=tb.encode(["uint256","address","address","bytes"],r.args);return i.interface.encodeFunctionData("exit",[a.Metadata.CheckpointBlock,a.Metadata.LeafIndex,e,a.Data])}),jb.INTERNAL_ERROR),to:this.config.bridgeContracts.rootChainExitHelper,value:0}}}async waitForChildStateSync(e,t,n,r){const i=new Fb(this.config.bridgeContracts.childChainStateReceiver,Vb,this.config.childProvider),a=i.filters.StateSyncResult(e,null,null),o=async()=>{const s=await(async()=>i.queryFilter(a,n,r))();if(s.length>1)throw new Error(`expected maximum of 1 events with statesync id ${e} but found ${s.length}`);return 1===s.length?s[0]:(await new Promise((e=>{setTimeout(e,t)})),o())},s=await o();if(!s)throw new Error("failed to find child deposit event");if(!s.args)throw new Error("child deposit event has no args");if(null==s.args.status)throw new Error("child deposit event has no status");return s.args.status?Lb.SUCCESS:Lb.FAILED}async getRootStateSyncID(e){const t=new lb(zb),n=e.logs.filter((e=>e.address.toLowerCase()===this.config.bridgeContracts.rootChainStateSender.toLowerCase()));if(1!==n.length)throw new Error(`expected at least 1 log in tx ${e.transactionHash}`);const r=t.parseLog(n[0]);if("StateSynced(uint256,address,address,bytes)"!==r.signature)throw new Error(`expected state sync event in tx ${e.transactionHash}`);return parseInt(r.args.id,10)}static validateDepositArgs(e,t,n){if(!Ig(e))throw new Gb(`address ${e} is not a valid address`,jb.INVALID_ADDRESS);if(t.isNegative()||t.isZero())throw new Gb(`deposit amount ${t.toString()} is invalid`,jb.INVALID_AMOUNT);if("NATIVE"!==n&&!Ig(n))throw new Gb(`token address ${n} is not a valid address`,jb.INVALID_ADDRESS)}static validateWithdrawArgs(e,t,n){if(!Ig(e))throw new Gb(`withdrawer address ${e} is not a valid address`,jb.INVALID_ADDRESS);if(t.isNegative()||t.isZero())throw new Gb(`withdraw amount ${t.toString()} is invalid`,jb.INVALID_AMOUNT);if(!Ig(n))throw new Gb(`token address ${n} is not a valid address`,jb.INVALID_ADDRESS)}async validateChainConfiguration(){const e="Please upgrade to the latest version of the Bridge SDK or provide valid configuration",t=await Hb((async()=>this.config.rootProvider.getNetwork()),jb.PROVIDER_ERROR);if(t.chainId.toString()!==this.config.bridgeInstance.rootChainID)throw new Gb(`Rootchain provider chainID ${t.chainId} does not match expected chainID ${this.config.bridgeInstance.rootChainID}. ${e}`,jb.UNSUPPORTED_ERROR);const n=await this.config.childProvider.getNetwork();if(n.chainId.toString()!==this.config.bridgeInstance.childChainID)throw new Gb(`Childchain provider chainID ${n.chainId} does not match expected chainID ${this.config.bridgeInstance.childChainID}. ${e}`,jb.UNSUPPORTED_ERROR)}}var Zb;!function(e){e.PRODUCTION="production",e.SANDBOX="sandbox"}(Zb||(Zb={}));const ev=[jm,Gm],tv={[Zb.SANDBOX]:ev,[Zb.PRODUCTION]:[]},nv=(new Map).set(jm,{rootChainERC20Predicate:"0x75E468cF088F947B96422996132FbE71160F21F1",rootChainStateSender:"0xbdC11416f01b122b7621855e61c99C7ED986F894",rootChainCheckpointManager:"0x0721b564a96466b864A998D31846Ba409d21092B",rootChainExitHelper:"0x0a2cb3f90aE65429E5c516af500F59d8fed51844",childChainERC20Predicate:"0x0000000000000000000000000000000000001004",childChainStateReceiver:"0x0000000000000000000000000000000000001001"}).set(Gm,{rootChainERC20Predicate:"0x1118Cc83780d07ef99F84fD1C0E10CEd49AF3613",rootChainStateSender:"0x41716a0DD85ae257DD011A97cE1470F609871270",rootChainCheckpointManager:"0xfD69e3FCd72C6374623eeb156dd2C4159eBa7327",rootChainExitHelper:"0x270D2B290c8183De23eCD17C7DaAE59fd084fE70",childChainERC20Predicate:"0x0000000000000000000000000000000000001004",childChainStateReceiver:"0x0000000000000000000000000000000000001001"}).set(Hm,{rootChainERC20Predicate:"0x",rootChainStateSender:"0x",rootChainCheckpointManager:"0x",rootChainExitHelper:"0x",childChainERC20Predicate:"0x",childChainStateReceiver:"0x"});class rv{baseConfig;bridgeInstance;bridgeContracts;rootProvider;childProvider;blockTime;pollInterval;maxDepositBlockDelay;clockInaccuracy;rootChainFinalityBlocks;constructor({bridgeInstance:e,rootProvider:t,childProvider:n,baseConfig:r,overrides:i}){if(this.baseConfig=r,this.bridgeInstance=e,this.rootProvider=t,this.childProvider=n,this.blockTime=12,this.pollInterval=5e3,this.maxDepositBlockDelay=250,this.clockInaccuracy=900,this.rootChainFinalityBlocks=3,i)return void(this.bridgeContracts=i.bridgeContracts);if(!tv[r.environment].includes(e))throw new Error(`Bridge instance with rootchain ${e.rootChainID} and childchain ${e.childChainID} is not supported in environment ${r.environment}`);if(!nv.has(e))throw new Error(`Bridge instance with rootchain ${e.rootChainID} and childchain ${e.childChainID} is not supported in environment ${r.environment}`);const a=nv.get(e);if(!a)throw new Error(`Bridge instance with rootchain ${e.rootChainID} and childchain ${e.childChainID} is not supported in environment ${r.environment}`);this.bridgeContracts=a}}var iv={exports:{}};!function(e,t){e.exports=function(){var e=Math.imul,t=Math.clz32,n=Math.abs,r=Math.max,i=Math.floor;class a extends Array{constructor(e,t){if(super(e),this.sign=t,e>a.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded")}static BigInt(e){var t=Number.isFinite;if("number"==typeof e){if(0===e)return a.__zero();if(a.__isOneDigitInt(e))return 0>e?a.__oneDigit(-e,!0):a.__oneDigit(e,!1);if(!t(e)||i(e)!==e)throw new RangeError("The number "+e+" cannot be converted to BigInt because it is not an integer");return a.__fromDouble(e)}if("string"==typeof e){const t=a.__fromString(e);if(null===t)throw new SyntaxError("Cannot convert "+e+" to a BigInt");return t}if("boolean"==typeof e)return!0===e?a.__oneDigit(1,!1):a.__zero();if("object"==typeof e){if(e.constructor===a)return e;const t=a.__toPrimitive(e);return a.BigInt(t)}throw new TypeError("Cannot convert "+e+" to a BigInt")}toDebugString(){const e=["BigInt["];for(const t of this)e.push((t?(t>>>0).toString(16):t)+", ");return e.push("]"),e.join("")}toString(e=10){if(2>e||36<e)throw new RangeError("toString() radix argument must be between 2 and 36");return 0===this.length?"0":0==(e&e-1)?a.__toStringBasePowerOfTwo(this,e):a.__toStringGeneric(this,e,!1)}static toNumber(e){const t=e.length;if(0===t)return 0;if(1===t){const t=e.__unsignedDigit(0);return e.sign?-t:t}const n=e.__digit(t-1),r=a.__clz30(n),i=30*t-r;if(1024<i)return e.sign?-1/0:1/0;let o=i-1,s=n,u=t-1;const c=r+3;let l=32===c?0:s<<c;l>>>=12;const d=c-12;let f=12<=c?0:s<<20+c,p=20+c;for(0<d&&0<u&&(u--,s=e.__digit(u),l|=s>>>30-d,f=s<<d+2,p=d+2);0<p&&0<u;)u--,s=e.__digit(u),f|=30<=p?s<<p-30:s>>>30-p,p-=30;const h=a.__decideRounding(e,p,u,s);if((1===h||0===h&&1==(1&f))&&(f=f+1>>>0,0===f&&(l++,0!=l>>>20&&(l=0,o++,1023<o))))return e.sign?-1/0:1/0;const m=e.sign?-2147483648:0;return o=o+1023<<20,a.__kBitConversionInts[1]=m|o|l,a.__kBitConversionInts[0]=f,a.__kBitConversionDouble[0]}static unaryMinus(e){if(0===e.length)return e;const t=e.__copy();return t.sign=!e.sign,t}static bitwiseNot(e){return e.sign?a.__absoluteSubOne(e).__trim():a.__absoluteAddOne(e,!0)}static exponentiate(e,t){if(t.sign)throw new RangeError("Exponent must be positive");if(0===t.length)return a.__oneDigit(1,!1);if(0===e.length)return e;if(1===e.length&&1===e.__digit(0))return e.sign&&0==(1&t.__digit(0))?a.unaryMinus(e):e;if(1<t.length)throw new RangeError("BigInt too big");let n=t.__unsignedDigit(0);if(1===n)return e;if(n>=a.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===e.length&&2===e.__digit(0)){const t=1+(0|n/30),r=e.sign&&0!=(1&n),i=new a(t,r);i.__initializeDigits();const o=1<<n%30;return i.__setDigit(t-1,o),i}let r=null,i=e;for(0!=(1&n)&&(r=e),n>>=1;0!==n;n>>=1)i=a.multiply(i,i),0!=(1&n)&&(r=null===r?i:a.multiply(r,i));return r}static multiply(e,t){if(0===e.length)return e;if(0===t.length)return t;let n=e.length+t.length;30<=e.__clzmsd()+t.__clzmsd()&&n--;const r=new a(n,e.sign!==t.sign);r.__initializeDigits();for(let n=0;n<e.length;n++)a.__multiplyAccumulate(t,e.__digit(n),r,n);return r.__trim()}static divide(e,t){if(0===t.length)throw new RangeError("Division by zero");if(0>a.__absoluteCompare(e,t))return a.__zero();const n=e.sign!==t.sign,r=t.__unsignedDigit(0);let i;if(1===t.length&&32767>=r){if(1===r)return n===e.sign?e:a.unaryMinus(e);i=a.__absoluteDivSmall(e,r,null)}else i=a.__absoluteDivLarge(e,t,!0,!1);return i.sign=n,i.__trim()}static remainder(e,t){if(0===t.length)throw new RangeError("Division by zero");if(0>a.__absoluteCompare(e,t))return e;const n=t.__unsignedDigit(0);if(1===t.length&&32767>=n){if(1===n)return a.__zero();const t=a.__absoluteModSmall(e,n);return 0===t?a.__zero():a.__oneDigit(t,e.sign)}const r=a.__absoluteDivLarge(e,t,!1,!0);return r.sign=e.sign,r.__trim()}static add(e,t){const n=e.sign;return n===t.sign?a.__absoluteAdd(e,t,n):0<=a.__absoluteCompare(e,t)?a.__absoluteSub(e,t,n):a.__absoluteSub(t,e,!n)}static subtract(e,t){const n=e.sign;return n===t.sign?0<=a.__absoluteCompare(e,t)?a.__absoluteSub(e,t,n):a.__absoluteSub(t,e,!n):a.__absoluteAdd(e,t,n)}static leftShift(e,t){return 0===t.length||0===e.length?e:t.sign?a.__rightShiftByAbsolute(e,t):a.__leftShiftByAbsolute(e,t)}static signedRightShift(e,t){return 0===t.length||0===e.length?e:t.sign?a.__leftShiftByAbsolute(e,t):a.__rightShiftByAbsolute(e,t)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(e,t){return 0>a.__compareToBigInt(e,t)}static lessThanOrEqual(e,t){return 0>=a.__compareToBigInt(e,t)}static greaterThan(e,t){return 0<a.__compareToBigInt(e,t)}static greaterThanOrEqual(e,t){return 0<=a.__compareToBigInt(e,t)}static equal(e,t){if(e.sign!==t.sign)return!1;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e.__digit(n)!==t.__digit(n))return!1;return!0}static notEqual(e,t){return!a.equal(e,t)}static bitwiseAnd(e,t){if(!e.sign&&!t.sign)return a.__absoluteAnd(e,t).__trim();if(e.sign&&t.sign){const n=r(e.length,t.length)+1;let i=a.__absoluteSubOne(e,n);const o=a.__absoluteSubOne(t);return i=a.__absoluteOr(i,o,i),a.__absoluteAddOne(i,!0,i).__trim()}return e.sign&&([e,t]=[t,e]),a.__absoluteAndNot(e,a.__absoluteSubOne(t)).__trim()}static bitwiseXor(e,t){if(!e.sign&&!t.sign)return a.__absoluteXor(e,t).__trim();if(e.sign&&t.sign){const n=r(e.length,t.length),i=a.__absoluteSubOne(e,n),o=a.__absoluteSubOne(t);return a.__absoluteXor(i,o,i).__trim()}const n=r(e.length,t.length)+1;e.sign&&([e,t]=[t,e]);let i=a.__absoluteSubOne(t,n);return i=a.__absoluteXor(i,e,i),a.__absoluteAddOne(i,!0,i).__trim()}static bitwiseOr(e,t){const n=r(e.length,t.length);if(!e.sign&&!t.sign)return a.__absoluteOr(e,t).__trim();if(e.sign&&t.sign){let r=a.__absoluteSubOne(e,n);const i=a.__absoluteSubOne(t);return r=a.__absoluteAnd(r,i,r),a.__absoluteAddOne(r,!0,r).__trim()}e.sign&&([e,t]=[t,e]);let i=a.__absoluteSubOne(t,n);return i=a.__absoluteAndNot(i,e,i),a.__absoluteAddOne(i,!0,i).__trim()}static asIntN(e,t){if(0===t.length)return t;if(0>(e=i(e)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===e)return a.__zero();if(e>=a.__kMaxLengthBits)return t;const n=0|(e+29)/30;if(t.length<n)return t;const r=t.__unsignedDigit(n-1),o=1<<(e-1)%30;if(t.length===n&&r<o)return t;if((r&o)!==o)return a.__truncateToNBits(e,t);if(!t.sign)return a.__truncateAndSubFromPowerOfTwo(e,t,!0);if(0==(r&o-1)){for(let r=n-2;0<=r;r--)if(0!==t.__digit(r))return a.__truncateAndSubFromPowerOfTwo(e,t,!1);return t.length===n&&r===o?t:a.__truncateToNBits(e,t)}return a.__truncateAndSubFromPowerOfTwo(e,t,!1)}static asUintN(e,t){if(0===t.length)return t;if(0>(e=i(e)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===e)return a.__zero();if(t.sign){if(e>a.__kMaxLengthBits)throw new RangeError("BigInt too big");return a.__truncateAndSubFromPowerOfTwo(e,t,!1)}if(e>=a.__kMaxLengthBits)return t;const n=0|(e+29)/30;if(t.length<n)return t;const r=e%30;if(t.length==n){if(0===r)return t;if(0==t.__digit(n-1)>>>r)return t}return a.__truncateToNBits(e,t)}static ADD(e,t){if(e=a.__toPrimitive(e),t=a.__toPrimitive(t),"string"==typeof e)return"string"!=typeof t&&(t=t.toString()),e+t;if("string"==typeof t)return e.toString()+t;if(e=a.__toNumeric(e),t=a.__toNumeric(t),a.__isBigInt(e)&&a.__isBigInt(t))return a.add(e,t);if("number"==typeof e&&"number"==typeof t)return e+t;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(e,t){return a.__compare(e,t,0)}static LE(e,t){return a.__compare(e,t,1)}static GT(e,t){return a.__compare(e,t,2)}static GE(e,t){return a.__compare(e,t,3)}static EQ(e,t){for(;;){if(a.__isBigInt(e))return a.__isBigInt(t)?a.equal(e,t):a.EQ(t,e);if("number"==typeof e){if(a.__isBigInt(t))return a.__equalToNumber(t,e);if("object"!=typeof t)return e==t;t=a.__toPrimitive(t)}else if("string"==typeof e){if(a.__isBigInt(t))return null!==(e=a.__fromString(e))&&a.equal(e,t);if("object"!=typeof t)return e==t;t=a.__toPrimitive(t)}else if("boolean"==typeof e){if(a.__isBigInt(t))return a.__equalToNumber(t,+e);if("object"!=typeof t)return e==t;t=a.__toPrimitive(t)}else if("symbol"==typeof e){if(a.__isBigInt(t))return!1;if("object"!=typeof t)return e==t;t=a.__toPrimitive(t)}else{if("object"!=typeof e)return e==t;if("object"==typeof t&&t.constructor!==a)return e==t;e=a.__toPrimitive(e)}}}static NE(e,t){return!a.EQ(e,t)}static __zero(){return new a(0,!1)}static __oneDigit(e,t){const n=new a(1,t);return n.__setDigit(0,e),n}__copy(){const e=new a(this.length,this.sign);for(let t=0;t<this.length;t++)e[t]=this[t];return e}__trim(){let e=this.length,t=this[e-1];for(;0===t;)e--,t=this[e-1],this.pop();return 0===e&&(this.sign=!1),this}__initializeDigits(){for(let e=0;e<this.length;e++)this[e]=0}static __decideRounding(e,t,n,r){if(0<t)return-1;let i;if(0>t)i=-t-1;else{if(0===n)return-1;n--,r=e.__digit(n),i=29}let a=1<<i;if(0==(r&a))return-1;if(a-=1,0!=(r&a))return 1;for(;0<n;)if(n--,0!==e.__digit(n))return 1;return 0}static __fromDouble(e){a.__kBitConversionDouble[0]=e;const t=(2047&a.__kBitConversionInts[1]>>>20)-1023,n=1+(0|t/30),r=new a(n,0>e);let i=1048575&a.__kBitConversionInts[1]|1048576,o=a.__kBitConversionInts[0];const s=20,u=t%30;let c,l=0;if(20>u){const e=s-u;l=e+32,c=i>>>e,i=i<<32-e|o>>>e,o<<=32-e}else if(20===u)l=32,c=i,i=o,o=0;else{const e=u-s;l=32-e,c=i<<e|o>>>32-e,i=o<<e,o=0}r.__setDigit(n-1,c);for(let e=n-2;0<=e;e--)0<l?(l-=30,c=i>>>2,i=i<<30|o>>>2,o<<=30):c=0,r.__setDigit(e,c);return r.__trim()}static __isWhitespace(e){return!!(13>=e&&9<=e)||(159>=e?32==e:131071>=e?160==e||5760==e:196607>=e?10>=(e&=131071)||40==e||41==e||47==e||95==e||4096==e:65279==e)}static __fromString(e,t=0){let n=0;const r=e.length;let i=0;if(i===r)return a.__zero();let o=e.charCodeAt(i);for(;a.__isWhitespace(o);){if(++i===r)return a.__zero();o=e.charCodeAt(i)}if(43===o){if(++i===r)return null;o=e.charCodeAt(i),n=1}else if(45===o){if(++i===r)return null;o=e.charCodeAt(i),n=-1}if(0===t){if(t=10,48===o){if(++i===r)return a.__zero();if(o=e.charCodeAt(i),88===o||120===o){if(t=16,++i===r)return null;o=e.charCodeAt(i)}else if(79===o||111===o){if(t=8,++i===r)return null;o=e.charCodeAt(i)}else if(66===o||98===o){if(t=2,++i===r)return null;o=e.charCodeAt(i)}}}else if(16===t&&48===o){if(++i===r)return a.__zero();if(o=e.charCodeAt(i),88===o||120===o){if(++i===r)return null;o=e.charCodeAt(i)}}if(0!=n&&10!==t)return null;for(;48===o;){if(++i===r)return a.__zero();o=e.charCodeAt(i)}const s=r-i;let u=a.__kMaxBitsPerChar[t],c=a.__kBitsPerCharTableMultiplier-1;if(s>1073741824/u)return null;const l=u*s+c>>>a.__kBitsPerCharTableShift,d=new a(0|(l+29)/30,!1),f=10>t?t:10,p=10<t?t-10:0;if(0==(t&t-1)){u>>=a.__kBitsPerCharTableShift;const t=[],n=[];let s=!1;do{let a=0,c=0;for(;;){let t;if(o-48>>>0<f)t=o-48;else{if(!((32|o)-97>>>0<p)){s=!0;break}t=(32|o)-87}if(c+=u,a=a<<u|t,++i===r){s=!0;break}if(o=e.charCodeAt(i),30<c+u)break}t.push(a),n.push(c)}while(!s);a.__fillFromParts(d,t,n)}else{d.__initializeDigits();let n=!1,s=0;do{let l=0,h=1;for(;;){let a;if(o-48>>>0<f)a=o-48;else{if(!((32|o)-97>>>0<p)){n=!0;break}a=(32|o)-87}const u=h*t;if(1073741823<u)break;if(h=u,l=l*t+a,s++,++i===r){n=!0;break}o=e.charCodeAt(i)}c=30*a.__kBitsPerCharTableMultiplier-1;const m=0|(u*s+c>>>a.__kBitsPerCharTableShift)/30;d.__inplaceMultiplyAdd(h,l,m)}while(!n)}if(i!==r){if(!a.__isWhitespace(o))return null;for(i++;i<r;i++)if(o=e.charCodeAt(i),!a.__isWhitespace(o))return null}return d.sign=-1==n,d.__trim()}static __fillFromParts(e,t,n){let r=0,i=0,a=0;for(let o=t.length-1;0<=o;o--){const s=t[o],u=n[o];i|=s<<a,a+=u,30===a?(e.__setDigit(r++,i),a=0,i=0):30<a&&(e.__setDigit(r++,1073741823&i),a-=30,i=s>>>u-a)}if(0!==i){if(r>=e.length)throw new Error("implementation bug");e.__setDigit(r++,i)}for(;r<e.length;r++)e.__setDigit(r,0)}static __toStringBasePowerOfTwo(e,t){const n=e.length;let r=t-1;r=(85&r>>>1)+(85&r),r=(51&r>>>2)+(51&r),r=(15&r>>>4)+(15&r);const i=r,o=t-1,s=e.__digit(n-1);let u=0|(30*n-a.__clz30(s)+i-1)/i;if(e.sign&&u++,268435456<u)throw new Error("string too long");const c=Array(u);let l=u-1,d=0,f=0;for(let t=0;t<n-1;t++){const n=e.__digit(t),r=(d|n<<f)&o;c[l--]=a.__kConversionChars[r];const s=i-f;for(d=n>>>s,f=30-s;f>=i;)c[l--]=a.__kConversionChars[d&o],d>>>=i,f-=i}const p=(d|s<<f)&o;for(c[l--]=a.__kConversionChars[p],d=s>>>i-f;0!==d;)c[l--]=a.__kConversionChars[d&o],d>>>=i;if(e.sign&&(c[l--]="-"),-1!=l)throw new Error("implementation bug");return c.join("")}static __toStringGeneric(e,t,n){const r=e.length;if(0===r)return"";if(1===r){let r=e.__unsignedDigit(0).toString(t);return!1===n&&e.sign&&(r="-"+r),r}const i=30*r-a.__clz30(e.__digit(r-1)),o=a.__kMaxBitsPerChar[t]-1;let s=i*a.__kBitsPerCharTableMultiplier;s+=o-1,s=0|s/o;const u=s+1>>1,c=a.exponentiate(a.__oneDigit(t,!1),a.__oneDigit(u,!1));let l,d;const f=c.__unsignedDigit(0);if(1===c.length&&32767>=f){l=new a(e.length,!1),l.__initializeDigits();let n=0;for(let t=2*e.length-1;0<=t;t--){const r=n<<15|e.__halfDigit(t);l.__setHalfDigit(t,0|r/f),n=0|r%f}d=n.toString(t)}else{const n=a.__absoluteDivLarge(e,c,!0,!0);l=n.quotient;const r=n.remainder.__trim();d=a.__toStringGeneric(r,t,!0)}l.__trim();let p=a.__toStringGeneric(l,t,!0);for(;d.length<u;)d="0"+d;return!1===n&&e.sign&&(p="-"+p),p+d}static __unequalSign(e){return e?-1:1}static __absoluteGreater(e){return e?-1:1}static __absoluteLess(e){return e?1:-1}static __compareToBigInt(e,t){const n=e.sign;if(n!==t.sign)return a.__unequalSign(n);const r=a.__absoluteCompare(e,t);return 0<r?a.__absoluteGreater(n):0>r?a.__absoluteLess(n):0}static __compareToNumber(e,t){if(a.__isOneDigitInt(t)){const r=e.sign,i=0>t;if(r!==i)return a.__unequalSign(r);if(0===e.length){if(i)throw new Error("implementation bug");return 0===t?0:-1}if(1<e.length)return a.__absoluteGreater(r);const o=n(t),s=e.__unsignedDigit(0);return s>o?a.__absoluteGreater(r):s<o?a.__absoluteLess(r):0}return a.__compareToDouble(e,t)}static __compareToDouble(e,t){if(t!=t)return t;if(t===1/0)return-1;if(t===-1/0)return 1;const n=e.sign;if(n!==0>t)return a.__unequalSign(n);if(0===t)throw new Error("implementation bug: should be handled elsewhere");if(0===e.length)return-1;a.__kBitConversionDouble[0]=t;const r=2047&a.__kBitConversionInts[1]>>>20;if(2047==r)throw new Error("implementation bug: handled elsewhere");const i=r-1023;if(0>i)return a.__absoluteGreater(n);const o=e.length;let s=e.__digit(o-1);const u=a.__clz30(s),c=30*o-u,l=i+1;if(c<l)return a.__absoluteLess(n);if(c>l)return a.__absoluteGreater(n);let d=1048576|1048575&a.__kBitConversionInts[1],f=a.__kBitConversionInts[0];const p=20,h=29-u;if(h!==(0|(c-1)%30))throw new Error("implementation bug");let m,y=0;if(20>h){const e=p-h;y=e+32,m=d>>>e,d=d<<32-e|f>>>e,f<<=32-e}else if(20===h)y=32,m=d,d=f,f=0;else{const e=h-p;y=32-e,m=d<<e|f>>>32-e,d=f<<e,f=0}if(s>>>=0,m>>>=0,s>m)return a.__absoluteGreater(n);if(s<m)return a.__absoluteLess(n);for(let t=o-2;0<=t;t--){0<y?(y-=30,m=d>>>2,d=d<<30|f>>>2,f<<=30):m=0;const r=e.__unsignedDigit(t);if(r>m)return a.__absoluteGreater(n);if(r<m)return a.__absoluteLess(n)}if(0!==d||0!==f){if(0===y)throw new Error("implementation bug");return a.__absoluteLess(n)}return 0}static __equalToNumber(e,t){return a.__isOneDigitInt(t)?0===t?0===e.length:1===e.length&&e.sign===0>t&&e.__unsignedDigit(0)===n(t):0===a.__compareToDouble(e,t)}static __comparisonResultToBool(e,t){return 0===t?0>e:1===t?0>=e:2===t?0<e:3===t?0<=e:void 0}static __compare(e,t,n){if(e=a.__toPrimitive(e),t=a.__toPrimitive(t),"string"==typeof e&&"string"==typeof t)switch(n){case 0:return e<t;case 1:return e<=t;case 2:return e>t;case 3:return e>=t}if(a.__isBigInt(e)&&"string"==typeof t)return null!==(t=a.__fromString(t))&&a.__comparisonResultToBool(a.__compareToBigInt(e,t),n);if("string"==typeof e&&a.__isBigInt(t))return null!==(e=a.__fromString(e))&&a.__comparisonResultToBool(a.__compareToBigInt(e,t),n);if(e=a.__toNumeric(e),t=a.__toNumeric(t),a.__isBigInt(e)){if(a.__isBigInt(t))return a.__comparisonResultToBool(a.__compareToBigInt(e,t),n);if("number"!=typeof t)throw new Error("implementation bug");return a.__comparisonResultToBool(a.__compareToNumber(e,t),n)}if("number"!=typeof e)throw new Error("implementation bug");if(a.__isBigInt(t))return a.__comparisonResultToBool(a.__compareToNumber(t,e),2^n);if("number"!=typeof t)throw new Error("implementation bug");return 0===n?e<t:1===n?e<=t:2===n?e>t:3===n?e>=t:void 0}__clzmsd(){return a.__clz30(this.__digit(this.length-1))}static __absoluteAdd(e,t,n){if(e.length<t.length)return a.__absoluteAdd(t,e,n);if(0===e.length)return e;if(0===t.length)return e.sign===n?e:a.unaryMinus(e);let r=e.length;(0===e.__clzmsd()||t.length===e.length&&0===t.__clzmsd())&&r++;const i=new a(r,n);let o=0,s=0;for(;s<t.length;s++){const n=e.__digit(s)+t.__digit(s)+o;o=n>>>30,i.__setDigit(s,1073741823&n)}for(;s<e.length;s++){const t=e.__digit(s)+o;o=t>>>30,i.__setDigit(s,1073741823&t)}return s<i.length&&i.__setDigit(s,o),i.__trim()}static __absoluteSub(e,t,n){if(0===e.length)return e;if(0===t.length)return e.sign===n?e:a.unaryMinus(e);const r=new a(e.length,n);let i=0,o=0;for(;o<t.length;o++){const n=e.__digit(o)-t.__digit(o)-i;i=1&n>>>30,r.__setDigit(o,1073741823&n)}for(;o<e.length;o++){const t=e.__digit(o)-i;i=1&t>>>30,r.__setDigit(o,1073741823&t)}return r.__trim()}static __absoluteAddOne(e,t,n=null){const r=e.length;null===n?n=new a(r,t):n.sign=t;let i=1;for(let t=0;t<r;t++){const r=e.__digit(t)+i;i=r>>>30,n.__setDigit(t,1073741823&r)}return 0!=i&&n.__setDigitGrow(r,1),n}static __absoluteSubOne(e,t){const n=e.length,r=new a(t=t||n,!1);let i=1;for(let t=0;t<n;t++){const n=e.__digit(t)-i;i=1&n>>>30,r.__setDigit(t,1073741823&n)}if(0!=i)throw new Error("implementation bug");for(let e=n;e<t;e++)r.__setDigit(e,0);return r}static __absoluteAnd(e,t,n=null){let r=e.length,i=t.length,o=i;if(r<i){o=r;const n=e,a=r;e=t,r=i,t=n,i=a}let s=o;null===n?n=new a(s,!1):s=n.length;let u=0;for(;u<o;u++)n.__setDigit(u,e.__digit(u)&t.__digit(u));for(;u<s;u++)n.__setDigit(u,0);return n}static __absoluteAndNot(e,t,n=null){const r=e.length,i=t.length;let o=i;r<i&&(o=r);let s=r;null===n?n=new a(s,!1):s=n.length;let u=0;for(;u<o;u++)n.__setDigit(u,e.__digit(u)&~t.__digit(u));for(;u<r;u++)n.__setDigit(u,e.__digit(u));for(;u<s;u++)n.__setDigit(u,0);return n}static __absoluteOr(e,t,n=null){let r=e.length,i=t.length,o=i;if(r<i){o=r;const n=e,a=r;e=t,r=i,t=n,i=a}let s=r;null===n?n=new a(s,!1):s=n.length;let u=0;for(;u<o;u++)n.__setDigit(u,e.__digit(u)|t.__digit(u));for(;u<r;u++)n.__setDigit(u,e.__digit(u));for(;u<s;u++)n.__setDigit(u,0);return n}static __absoluteXor(e,t,n=null){let r=e.length,i=t.length,o=i;if(r<i){o=r;const n=e,a=r;e=t,r=i,t=n,i=a}let s=r;null===n?n=new a(s,!1):s=n.length;let u=0;for(;u<o;u++)n.__setDigit(u,e.__digit(u)^t.__digit(u));for(;u<r;u++)n.__setDigit(u,e.__digit(u));for(;u<s;u++)n.__setDigit(u,0);return n}static __absoluteCompare(e,t){const n=e.length-t.length;if(0!=n)return n;let r=e.length-1;for(;0<=r&&e.__digit(r)===t.__digit(r);)r--;return 0>r?0:e.__unsignedDigit(r)>t.__unsignedDigit(r)?1:-1}static __multiplyAccumulate(e,t,n,r){if(0===t)return;const i=32767&t,o=t>>>15;let s=0,u=0;for(let t,c=0;c<e.length;c++,r++){t=n.__digit(r);const l=e.__digit(c),d=32767&l,f=l>>>15,p=a.__imul(d,i),h=a.__imul(d,o),m=a.__imul(f,i);t+=u+p+s,s=t>>>30,t&=1073741823,t+=((32767&h)<<15)+((32767&m)<<15),s+=t>>>30,u=a.__imul(f,o)+(h>>>15)+(m>>>15),n.__setDigit(r,1073741823&t)}for(;0!=s||0!==u;r++){let e=n.__digit(r);e+=s+u,u=0,s=e>>>30,n.__setDigit(r,1073741823&e)}}static __internalMultiplyAdd(e,t,n,r,i){let o=n,s=0;for(let n=0;n<r;n++){const r=e.__digit(n),u=a.__imul(32767&r,t),c=a.__imul(r>>>15,t),l=u+((32767&c)<<15)+s+o;o=l>>>30,s=c>>>15,i.__setDigit(n,1073741823&l)}if(i.length>r)for(i.__setDigit(r++,o+s);r<i.length;)i.__setDigit(r++,0);else if(0!==o+s)throw new Error("implementation bug")}__inplaceMultiplyAdd(e,t,n){n>this.length&&(n=this.length);const r=32767&e,i=e>>>15;let o=0,s=t;for(let e=0;e<n;e++){const t=this.__digit(e),n=32767&t,u=t>>>15,c=a.__imul(n,r),l=a.__imul(n,i),d=a.__imul(u,r);let f=s+c+o;o=f>>>30,f&=1073741823,f+=((32767&l)<<15)+((32767&d)<<15),o+=f>>>30,s=a.__imul(u,i)+(l>>>15)+(d>>>15),this.__setDigit(e,1073741823&f)}if(0!=o||0!==s)throw new Error("implementation bug")}static __absoluteDivSmall(e,t,n=null){null===n&&(n=new a(e.length,!1));let r=0;for(let i,a=2*e.length-1;0<=a;a-=2){i=(r<<15|e.__halfDigit(a))>>>0;const o=0|i/t;r=0|i%t,i=(r<<15|e.__halfDigit(a-1))>>>0;const s=0|i/t;r=0|i%t,n.__setDigit(a>>>1,o<<15|s)}return n}static __absoluteModSmall(e,t){let n=0;for(let r=2*e.length-1;0<=r;r--)n=0|((n<<15|e.__halfDigit(r))>>>0)%t;return n}static __absoluteDivLarge(e,t,n,r){const i=t.__halfDigitLength(),o=t.length,s=e.__halfDigitLength()-i;let u=null;n&&(u=new a(s+2>>>1,!1),u.__initializeDigits());const c=new a(i+2>>>1,!1);c.__initializeDigits();const l=a.__clz15(t.__halfDigit(i-1));0<l&&(t=a.__specialLeftShift(t,l,0));const d=a.__specialLeftShift(e,l,1),f=t.__halfDigit(i-1);let p=0;for(let e,r=s;0<=r;r--){e=32767;const s=d.__halfDigit(r+i);if(s!==f){const n=(s<<15|d.__halfDigit(r+i-1))>>>0;e=0|n/f;let o=0|n%f;const u=t.__halfDigit(i-2),c=d.__halfDigit(r+i-2);for(;a.__imul(e,u)>>>0>(o<<16|c)>>>0&&(e--,o+=f,!(32767<o)););}a.__internalMultiplyAdd(t,e,0,o,c);let l=d.__inplaceSub(c,r,i+1);0!==l&&(l=d.__inplaceAdd(t,r,i),d.__setHalfDigit(r+i,32767&d.__halfDigit(r+i)+l),e--),n&&(1&r?p=e<<15:u.__setDigit(r>>>1,p|e))}if(r)return d.__inplaceRightShift(l),n?{quotient:u,remainder:d}:d;if(n)return u;throw new Error("unreachable")}static __clz15(e){return a.__clz30(e)-15}__inplaceAdd(e,t,n){let r=0;for(let i=0;i<n;i++){const n=this.__halfDigit(t+i)+e.__halfDigit(i)+r;r=n>>>15,this.__setHalfDigit(t+i,32767&n)}return r}__inplaceSub(e,t,n){let r=0;if(1&t){t>>=1;let i=this.__digit(t),a=32767&i,o=0;for(;o<n-1>>>1;o++){const n=e.__digit(o),s=(i>>>15)-(32767&n)-r;r=1&s>>>15,this.__setDigit(t+o,(32767&s)<<15|32767&a),i=this.__digit(t+o+1),a=(32767&i)-(n>>>15)-r,r=1&a>>>15}const s=e.__digit(o),u=(i>>>15)-(32767&s)-r;if(r=1&u>>>15,this.__setDigit(t+o,(32767&u)<<15|32767&a),t+o+1>=this.length)throw new RangeError("out of bounds");0==(1&n)&&(i=this.__digit(t+o+1),a=(32767&i)-(s>>>15)-r,r=1&a>>>15,this.__setDigit(t+e.length,1073709056&i|32767&a))}else{t>>=1;let i=0;for(;i<e.length-1;i++){const n=this.__digit(t+i),a=e.__digit(i),o=(32767&n)-(32767&a)-r;r=1&o>>>15;const s=(n>>>15)-(a>>>15)-r;r=1&s>>>15,this.__setDigit(t+i,(32767&s)<<15|32767&o)}const a=this.__digit(t+i),o=e.__digit(i),s=(32767&a)-(32767&o)-r;r=1&s>>>15;let u=0;0==(1&n)&&(u=(a>>>15)-(o>>>15)-r,r=1&u>>>15),this.__setDigit(t+i,(32767&u)<<15|32767&s)}return r}__inplaceRightShift(e){if(0===e)return;let t=this.__digit(0)>>>e;const n=this.length-1;for(let r=0;r<n;r++){const n=this.__digit(r+1);this.__setDigit(r,1073741823&n<<30-e|t),t=n>>>e}this.__setDigit(n,t)}static __specialLeftShift(e,t,n){const r=e.length,i=new a(r+n,!1);if(0===t){for(let t=0;t<r;t++)i.__setDigit(t,e.__digit(t));return 0<n&&i.__setDigit(r,0),i}let o=0;for(let n=0;n<r;n++){const r=e.__digit(n);i.__setDigit(n,1073741823&r<<t|o),o=r>>>30-t}return 0<n&&i.__setDigit(r,o),i}static __leftShiftByAbsolute(e,t){const n=a.__toShiftAmount(t);if(0>n)throw new RangeError("BigInt too big");const r=0|n/30,i=n%30,o=e.length,s=0!==i&&0!=e.__digit(o-1)>>>30-i,u=o+r+(s?1:0),c=new a(u,e.sign);if(0===i){let t=0;for(;t<r;t++)c.__setDigit(t,0);for(;t<u;t++)c.__setDigit(t,e.__digit(t-r))}else{let t=0;for(let e=0;e<r;e++)c.__setDigit(e,0);for(let n=0;n<o;n++){const a=e.__digit(n);c.__setDigit(n+r,1073741823&a<<i|t),t=a>>>30-i}if(s)c.__setDigit(o+r,t);else if(0!==t)throw new Error("implementation bug")}return c.__trim()}static __rightShiftByAbsolute(e,t){const n=e.length,r=e.sign,i=a.__toShiftAmount(t);if(0>i)return a.__rightShiftByMaximum(r);const o=0|i/30,s=i%30;let u=n-o;if(0>=u)return a.__rightShiftByMaximum(r);let c=!1;if(r)if(0!=(e.__digit(o)&(1<<s)-1))c=!0;else for(let t=0;t<o;t++)if(0!==e.__digit(t)){c=!0;break}c&&0===s&&0==~e.__digit(n-1)&&u++;let l=new a(u,r);if(0===s){l.__setDigit(u-1,0);for(let t=o;t<n;t++)l.__setDigit(t-o,e.__digit(t))}else{let t=e.__digit(o)>>>s;const r=n-o-1;for(let n=0;n<r;n++){const r=e.__digit(n+o+1);l.__setDigit(n,1073741823&r<<30-s|t),t=r>>>s}l.__setDigit(r,t)}return c&&(l=a.__absoluteAddOne(l,!0,l)),l.__trim()}static __rightShiftByMaximum(e){return e?a.__oneDigit(1,!0):a.__zero()}static __toShiftAmount(e){if(1<e.length)return-1;const t=e.__unsignedDigit(0);return t>a.__kMaxLengthBits?-1:t}static __toPrimitive(e,t="default"){if("object"!=typeof e)return e;if(e.constructor===a)return e;if("undefined"!=typeof Symbol&&"symbol"==typeof Symbol.toPrimitive){const n=e[Symbol.toPrimitive];if(n){const e=n(t);if("object"!=typeof e)return e;throw new TypeError("Cannot convert object to primitive value")}}const n=e.valueOf;if(n){const t=n.call(e);if("object"!=typeof t)return t}const r=e.toString;if(r){const t=r.call(e);if("object"!=typeof t)return t}throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(e){return a.__isBigInt(e)?e:+e}static __isBigInt(e){return"object"==typeof e&&null!==e&&e.constructor===a}static __truncateToNBits(e,t){const n=0|(e+29)/30,r=new a(n,t.sign),i=n-1;for(let e=0;e<i;e++)r.__setDigit(e,t.__digit(e));let o=t.__digit(i);if(0!=e%30){const t=32-e%30;o=o<<t>>>t}return r.__setDigit(i,o),r.__trim()}static __truncateAndSubFromPowerOfTwo(e,t,n){var r=Math.min;const i=0|(e+29)/30,o=new a(i,n);let s=0;const u=i-1;let c=0;for(const e=r(u,t.length);s<e;s++){const e=0-t.__digit(s)-c;c=1&e>>>30,o.__setDigit(s,1073741823&e)}for(;s<u;s++)o.__setDigit(s,0|1073741823&-c);let l=u<t.length?t.__digit(u):0;const d=e%30;let f;if(0==d)f=0-l-c,f&=1073741823;else{const e=32-d;l=l<<e>>>e;const t=1<<32-e;f=t-l-c,f&=t-1}return o.__setDigit(u,f),o.__trim()}__digit(e){return this[e]}__unsignedDigit(e){return this[e]>>>0}__setDigit(e,t){this[e]=0|t}__setDigitGrow(e,t){this[e]=0|t}__halfDigitLength(){const e=this.length;return 32767>=this.__unsignedDigit(e-1)?2*e-1:2*e}__halfDigit(e){return 32767&this[e>>>1]>>>15*(1&e)}__setHalfDigit(e,t){const n=e>>>1,r=this.__digit(n),i=1&e?32767&r|t<<15:1073709056&r|32767&t;this.__setDigit(n,i)}static __digitPow(e,t){let n=1;for(;0<t;)1&t&&(n*=e),t>>>=1,e*=e;return n}static __isOneDigitInt(e){return(1073741823&e)===e}}return a.__kMaxLength=33554432,a.__kMaxLengthBits=a.__kMaxLength<<5,a.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],a.__kBitsPerCharTableShift=5,a.__kBitsPerCharTableMultiplier=1<<a.__kBitsPerCharTableShift,a.__kConversionChars=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],a.__kBitConversionBuffer=new ArrayBuffer(8),a.__kBitConversionDouble=new Float64Array(a.__kBitConversionBuffer),a.__kBitConversionInts=new Int32Array(a.__kBitConversionBuffer),a.__clz30=t?function(e){return t(e)-2}:function(e){var t=Math.LN2,n=Math.log;return 0===e?30:0|29-(0|n(e>>>0)/t)},a.__imul=e||function(e,t){return 0|e*t},a}()}(iv);var av=iv.exports,ov=lt(av),sv="Invariant failed";function uv(e,t){if(!e)throw new Error(sv)}var cv={exports:{}};
|
|
18
|
-
/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */!function(e){!function(t){var n,r=1e9,i={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},a=!0,o="[DecimalError] ",s=o+"Invalid argument: ",u=o+"Exponent out of range: ",c=Math.floor,l=Math.pow,d=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,f=1e7,p=7,h=9007199254740991,m=c(h/p),y={};function g(e,t){var n,r,i,o,s,u,c,l,d=e.constructor,h=d.precision;if(!e.s||!t.s)return t.s||(t=new d(e)),a?C(t,h):t;if(c=e.d,l=t.d,s=e.e,i=t.e,c=c.slice(),o=s-i){for(o<0?(r=c,o=-o,u=l.length):(r=l,i=s,u=c.length),o>(u=(s=Math.ceil(h/p))>u?s+1:u+1)&&(o=u,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for((u=c.length)-(o=l.length)<0&&(o=u,r=l,l=c,c=r),n=0;o;)n=(c[--o]=c[o]+l[o]+n)/f|0,c[o]%=f;for(n&&(c.unshift(n),++i),u=c.length;0==c[--u];)c.pop();return t.d=c,t.e=i,a?C(t,h):t}function b(e,t,n){if(e!==~~e||e<t||e>n)throw Error(s+e)}function v(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=p-r.length)&&(a+=_(n)),a+=r;o=e[t],(n=p-(r=o+"").length)&&(a+=_(n))}else if(0===o)return"0";for(;o%10==0;)o/=10;return a+o}y.absoluteValue=y.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e},y.comparedTo=y.cmp=function(e){var t,n,r,i,a=this;if(e=new a.constructor(e),a.s!==e.s)return a.s||-e.s;if(a.e!==e.e)return a.e>e.e^a.s<0?1:-1;for(t=0,n=(r=a.d.length)<(i=e.d.length)?r:i;t<n;++t)if(a.d[t]!==e.d[t])return a.d[t]>e.d[t]^a.s<0?1:-1;return r===i?0:r>i^a.s<0?1:-1},y.decimalPlaces=y.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*p;if(t=e.d[t])for(;t%10==0;t/=10)n--;return n<0?0:n},y.dividedBy=y.div=function(e){return w(this,new this.constructor(e))},y.dividedToIntegerBy=y.idiv=function(e){var t=this.constructor;return C(w(this,new t(e),0,1),t.precision)},y.equals=y.eq=function(e){return!this.cmp(e)},y.exponent=function(){return A(this)},y.greaterThan=y.gt=function(e){return this.cmp(e)>0},y.greaterThanOrEqualTo=y.gte=function(e){return this.cmp(e)>=0},y.isInteger=y.isint=function(){return this.e>this.d.length-2},y.isNegative=y.isneg=function(){return this.s<0},y.isPositive=y.ispos=function(){return this.s>0},y.isZero=function(){return 0===this.s},y.lessThan=y.lt=function(e){return this.cmp(e)<0},y.lessThanOrEqualTo=y.lte=function(e){return this.cmp(e)<1},y.logarithm=y.log=function(e){var t,r=this,i=r.constructor,s=i.precision,u=s+5;if(void 0===e)e=new i(10);else if((e=new i(e)).s<1||e.eq(n))throw Error(o+"NaN");if(r.s<1)throw Error(o+(r.s?"NaN":"-Infinity"));return r.eq(n)?new i(0):(a=!1,t=w(I(r,u),I(e,u),u),a=!0,C(t,s))},y.minus=y.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?O(t,e):g(t,(e.s=-e.s,e))},y.modulo=y.mod=function(e){var t,n=this,r=n.constructor,i=r.precision;if(!(e=new r(e)).s)throw Error(o+"NaN");return n.s?(a=!1,t=w(n,e,0,1).times(e),a=!0,n.minus(t)):C(new r(n),i)},y.naturalExponential=y.exp=function(){return T(this)},y.naturalLogarithm=y.ln=function(){return I(this)},y.negated=y.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},y.plus=y.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?g(t,e):O(t,(e.s=-e.s,e))},y.precision=y.sd=function(e){var t,n,r,i=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(s+e);if(t=A(i)+1,n=(r=i.d.length-1)*p+1,r=i.d[r]){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return e&&t>n?t:n},y.squareRoot=y.sqrt=function(){var e,t,n,r,i,s,u,l=this,d=l.constructor;if(l.s<1){if(!l.s)return new d(0);throw Error(o+"NaN")}for(e=A(l),a=!1,0==(i=Math.sqrt(+l))||i==1/0?(((t=v(l.d)).length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=c((e+1)/2)-(e<0||e%2),r=new d(t=i==1/0?"5e"+e:(t=i.toExponential()).slice(0,t.indexOf("e")+1)+e)):r=new d(i.toString()),i=u=(n=d.precision)+3;;)if(r=(s=r).plus(w(l,s,u+2)).times(.5),v(s.d).slice(0,u)===(t=v(r.d)).slice(0,u)){if(t=t.slice(u-3,u+1),i==u&&"4999"==t){if(C(s,n+1,0),s.times(s).eq(l)){r=s;break}}else if("9999"!=t)break;u+=4}return a=!0,C(r,n)},y.times=y.mul=function(e){var t,n,r,i,o,s,u,c,l,d=this,p=d.constructor,h=d.d,m=(e=new p(e)).d;if(!d.s||!e.s)return new p(0);for(e.s*=d.s,n=d.e+e.e,(c=h.length)<(l=m.length)&&(o=h,h=m,m=o,s=c,c=l,l=s),o=[],r=s=c+l;r--;)o.push(0);for(r=l;--r>=0;){for(t=0,i=c+r;i>r;)u=o[i]+m[r]*h[i-r-1]+t,o[i--]=u%f|0,t=u/f|0;o[i]=(o[i]+t)%f|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,a?C(e,p.precision):e},y.toDecimalPlaces=y.todp=function(e,t){var n=this,i=n.constructor;return n=new i(n),void 0===e?n:(b(e,0,r),void 0===t?t=i.rounding:b(t,0,8),C(n,e+A(n)+1,t))},y.toExponential=function(e,t){var n,i=this,a=i.constructor;return void 0===e?n=k(i,!0):(b(e,0,r),void 0===t?t=a.rounding:b(t,0,8),n=k(i=C(new a(i),e+1,t),!0,e+1)),n},y.toFixed=function(e,t){var n,i,a=this,o=a.constructor;return void 0===e?k(a):(b(e,0,r),void 0===t?t=o.rounding:b(t,0,8),n=k((i=C(new o(a),e+A(a)+1,t)).abs(),!1,e+A(i)+1),a.isneg()&&!a.isZero()?"-"+n:n)},y.toInteger=y.toint=function(){var e=this,t=e.constructor;return C(new t(e),A(e)+1,t.rounding)},y.toNumber=function(){return+this},y.toPower=y.pow=function(e){var t,r,i,s,u,l,d=this,f=d.constructor,m=+(e=new f(e));if(!e.s)return new f(n);if(!(d=new f(d)).s){if(e.s<1)throw Error(o+"Infinity");return d}if(d.eq(n))return d;if(i=f.precision,e.eq(n))return C(d,i);if(l=(t=e.e)>=(r=e.d.length-1),u=d.s,l){if((r=m<0?-m:m)<=h){for(s=new f(n),t=Math.ceil(i/p+4),a=!1;r%2&&S((s=s.times(d)).d,t),0!==(r=c(r/2));)S((d=d.times(d)).d,t);return a=!0,e.s<0?new f(n).div(s):C(s,i)}}else if(u<0)throw Error(o+"NaN");return u=u<0&&1&e.d[Math.max(t,r)]?-1:1,d.s=1,a=!1,s=e.times(I(d,i+12)),a=!0,(s=T(s)).s=u,s},y.toPrecision=function(e,t){var n,i,a=this,o=a.constructor;return void 0===e?i=k(a,(n=A(a))<=o.toExpNeg||n>=o.toExpPos):(b(e,1,r),void 0===t?t=o.rounding:b(t,0,8),i=k(a=C(new o(a),e,t),e<=(n=A(a))||n<=o.toExpNeg,e)),i},y.toSignificantDigits=y.tosd=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(b(e,1,r),void 0===t?t=n.rounding:b(t,0,8)),C(new n(this),e,t)},y.toString=y.valueOf=y.val=y.toJSON=function(){var e=this,t=A(e),n=e.constructor;return k(e,t<=n.toExpNeg||t>=n.toExpPos)};var w=function(){function e(e,t){var n,r=0,i=e.length;for(e=e.slice();i--;)n=e[i]*t+r,e[i]=n%f|0,r=n/f|0;return r&&e.unshift(r),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){for(var r=0;n--;)e[n]-=r,r=e[n]<t[n]?1:0,e[n]=r*f+e[n]-t[n];for(;!e[0]&&e.length>1;)e.shift()}return function(r,i,a,s){var u,c,l,d,h,m,y,g,b,v,w,T,E,_,I,R,O,k,S=r.constructor,N=r.s==i.s?1:-1,x=r.d,P=i.d;if(!r.s)return new S(r);if(!i.s)throw Error(o+"Division by zero");for(c=r.e-i.e,O=P.length,I=x.length,g=(y=new S(N)).d=[],l=0;P[l]==(x[l]||0);)++l;if(P[l]>(x[l]||0)&&--c,(T=null==a?a=S.precision:s?a+(A(r)-A(i))+1:a)<0)return new S(0);if(T=T/p+2|0,l=0,1==O)for(d=0,P=P[0],T++;(l<I||d)&&T--;l++)E=d*f+(x[l]||0),g[l]=E/P|0,d=E%P|0;else{for((d=f/(P[0]+1)|0)>1&&(P=e(P,d),x=e(x,d),O=P.length,I=x.length),_=O,v=(b=x.slice(0,O)).length;v<O;)b[v++]=0;(k=P.slice()).unshift(0),R=P[0],P[1]>=f/2&&++R;do{d=0,(u=t(P,b,O,v))<0?(w=b[0],O!=v&&(w=w*f+(b[1]||0)),(d=w/R|0)>1?(d>=f&&(d=f-1),1==(u=t(h=e(P,d),b,m=h.length,v=b.length))&&(d--,n(h,O<m?k:P,m))):(0==d&&(u=d=1),h=P.slice()),(m=h.length)<v&&h.unshift(0),n(b,h,v),-1==u&&(u=t(P,b,O,v=b.length))<1&&(d++,n(b,O<v?k:P,v)),v=b.length):0===u&&(d++,b=[0]),g[l++]=d,u&&b[0]?b[v++]=x[_]||0:(b=[x[_]],v=1)}while((_++<I||void 0!==b[0])&&T--)}return g[0]||g.shift(),y.e=c,C(y,s?a+A(y)+1:a)}}();function T(e,t){var r,i,o,s,c,d=0,f=0,p=e.constructor,h=p.precision;if(A(e)>16)throw Error(u+A(e));if(!e.s)return new p(n);for(null==t?(a=!1,c=h):c=t,s=new p(.03125);e.abs().gte(.1);)e=e.times(s),f+=5;for(c+=Math.log(l(2,f))/Math.LN10*2+5|0,r=i=o=new p(n),p.precision=c;;){if(i=C(i.times(e),c),r=r.times(++d),v((s=o.plus(w(i,r,c))).d).slice(0,c)===v(o.d).slice(0,c)){for(;f--;)o=C(o.times(o),c);return p.precision=h,null==t?(a=!0,C(o,h)):o}o=s}}function A(e){for(var t=e.e*p,n=e.d[0];n>=10;n/=10)t++;return t}function E(e,t,n){if(t>e.LN10.sd())throw a=!0,n&&(e.precision=n),Error(o+"LN10 precision limit exceeded");return C(new e(e.LN10),t)}function _(e){for(var t="";e--;)t+="0";return t}function I(e,t){var r,i,s,u,c,l,d,f,p,h=1,m=e,y=m.d,g=m.constructor,b=g.precision;if(m.s<1)throw Error(o+(m.s?"NaN":"-Infinity"));if(m.eq(n))return new g(0);if(null==t?(a=!1,f=b):f=t,m.eq(10))return null==t&&(a=!0),E(g,f);if(f+=10,g.precision=f,i=(r=v(y)).charAt(0),u=A(m),!(Math.abs(u)<15e14))return d=E(g,f+2,b).times(u+""),m=I(new g(i+"."+r.slice(1)),f-10).plus(d),g.precision=b,null==t?(a=!0,C(m,b)):m;for(;i<7&&1!=i||1==i&&r.charAt(1)>3;)i=(r=v((m=m.times(e)).d)).charAt(0),h++;for(u=A(m),i>1?(m=new g("0."+r),u++):m=new g(i+"."+r.slice(1)),l=c=m=w(m.minus(n),m.plus(n),f),p=C(m.times(m),f),s=3;;){if(c=C(c.times(p),f),v((d=l.plus(w(c,new g(s),f))).d).slice(0,f)===v(l.d).slice(0,f))return l=l.times(2),0!==u&&(l=l.plus(E(g,f+2,b).times(u+""))),l=w(l,new g(h),f),g.precision=b,null==t?(a=!0,C(l,b)):l;l=d,s+=2}}function R(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;48===t.charCodeAt(r);)++r;for(i=t.length;48===t.charCodeAt(i-1);)--i;if(t=t.slice(r,i)){if(i-=r,n=n-r-1,e.e=c(n/p),e.d=[],r=(n+1)%p,n<0&&(r+=p),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=p;r<i;)e.d.push(+t.slice(r,r+=p));t=t.slice(r),r=p-t.length}else r-=i;for(;r--;)t+="0";if(e.d.push(+t),a&&(e.e>m||e.e<-m))throw Error(u+n)}else e.s=0,e.e=0,e.d=[0];return e}function C(e,t,n){var r,i,o,s,d,h,y,g,b=e.d;for(s=1,o=b[0];o>=10;o/=10)s++;if((r=t-s)<0)r+=p,i=t,y=b[g=0];else{if((g=Math.ceil((r+1)/p))>=(o=b.length))return e;for(y=o=b[g],s=1;o>=10;o/=10)s++;i=(r%=p)-p+s}if(void 0!==n&&(d=y/(o=l(10,s-i-1))%10|0,h=t<0||void 0!==b[g+1]||y%o,h=n<4?(d||h)&&(0==n||n==(e.s<0?3:2)):d>5||5==d&&(4==n||h||6==n&&(r>0?i>0?y/l(10,s-i):0:b[g-1])%10&1||n==(e.s<0?8:7))),t<1||!b[0])return h?(o=A(e),b.length=1,t=t-o-1,b[0]=l(10,(p-t%p)%p),e.e=c(-t/p)||0):(b.length=1,b[0]=e.e=e.s=0),e;if(0==r?(b.length=g,o=1,g--):(b.length=g+1,o=l(10,p-r),b[g]=i>0?(y/l(10,s-i)%l(10,i)|0)*o:0),h)for(;;){if(0==g){(b[0]+=o)==f&&(b[0]=1,++e.e);break}if(b[g]+=o,b[g]!=f)break;b[g--]=0,o=1}for(r=b.length;0===b[--r];)b.pop();if(a&&(e.e>m||e.e<-m))throw Error(u+A(e));return e}function O(e,t){var n,r,i,o,s,u,c,l,d,h,m=e.constructor,y=m.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new m(e),a?C(t,y):t;if(c=e.d,h=t.d,r=t.e,l=e.e,c=c.slice(),s=l-r){for((d=s<0)?(n=c,s=-s,u=h.length):(n=h,r=l,u=c.length),s>(i=Math.max(Math.ceil(y/p),u)+2)&&(s=i,n.length=1),n.reverse(),i=s;i--;)n.push(0);n.reverse()}else{for((d=(i=c.length)<(u=h.length))&&(u=i),i=0;i<u;i++)if(c[i]!=h[i]){d=c[i]<h[i];break}s=0}for(d&&(n=c,c=h,h=n,t.s=-t.s),u=c.length,i=h.length-u;i>0;--i)c[u++]=0;for(i=h.length;i>s;){if(c[--i]<h[i]){for(o=i;o&&0===c[--o];)c[o]=f-1;--c[o],c[i]+=f}c[i]-=h[i]}for(;0===c[--u];)c.pop();for(;0===c[0];c.shift())--r;return c[0]?(t.d=c,t.e=r,a?C(t,y):t):new m(0)}function k(e,t,n){var r,i=A(e),a=v(e.d),o=a.length;return t?(n&&(r=n-o)>0?a=a.charAt(0)+"."+a.slice(1)+_(r):o>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(i<0?"e":"e+")+i):i<0?(a="0."+_(-i-1)+a,n&&(r=n-o)>0&&(a+=_(r))):i>=o?(a+=_(i+1-o),n&&(r=n-i-1)>0&&(a=a+"."+_(r))):((r=i+1)<o&&(a=a.slice(0,r)+"."+a.slice(r)),n&&(r=n-o)>0&&(i+1===o&&(a+="."),a+=_(r))),e.s<0?"-"+a:a}function S(e,t){if(e.length>t)return e.length=t,!0}function N(e){if(!e||"object"!=typeof e)throw Error(o+"Object expected");var t,n,i,a=["precision",1,r,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<a.length;t+=3)if(void 0!==(i=e[n=a[t]])){if(!(c(i)===i&&i>=a[t+1]&&i<=a[t+2]))throw Error(s+n+": "+i);this[n]=i}if(void 0!==(i=e[n="LN10"])){if(i!=Math.LN10)throw Error(s+n+": "+i);this[n]=new this(i)}return this}i=function e(t){var n,r,i;function a(e){var t=this;if(!(t instanceof a))return new a(e);if(t.constructor=a,e instanceof a)return t.s=e.s,t.e=e.e,void(t.d=(e=e.d)?e.slice():e);if("number"==typeof e){if(0*e!=0)throw Error(s+e);if(e>0)t.s=1;else{if(!(e<0))return t.s=0,t.e=0,void(t.d=[0]);e=-e,t.s=-1}return e===~~e&&e<1e7?(t.e=0,void(t.d=[e])):R(t,e.toString())}if("string"!=typeof e)throw Error(s+e);if(45===e.charCodeAt(0)?(e=e.slice(1),t.s=-1):t.s=1,!d.test(e))throw Error(s+e);R(t,e)}if(a.prototype=y,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=e,a.config=a.set=N,void 0===t&&(t={}),t)for(i=["precision","rounding","toExpNeg","toExpPos","LN10"],n=0;n<i.length;)t.hasOwnProperty(r=i[n++])||(t[r]=this[r]);return a.config(t),a}(i),i.default=i.Decimal=i,n=new i(1),e.exports?e.exports=i:(t||(t="undefined"!=typeof self&&self&&self.self==self?self:Function("return this")()),t.Decimal=i)}(ct)}(cv);var lv=lt(cv.exports),dv={exports:{}};!function(e){!function(t){var n,r=1e6,i=1e6,a="[big.js] ",o=a+"Invalid ",s=o+"decimal places",u=o+"rounding mode",c=a+"Division by zero",l={},d=void 0,f=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function p(e,t,n,r){var i=e.c,a=e.e+t+1;if(a<i.length){if(1===n)r=i[a]>=5;else if(2===n)r=i[a]>5||5==i[a]&&(r||a<0||i[a+1]!==d||1&i[a-1]);else if(3===n)r=r||!!i[0];else if(r=!1,0!==n)throw Error(u);if(a<1)i.length=1,r?(e.e=-t,i[0]=1):i[0]=e.e=0;else{if(i.length=a--,r)for(;++i[a]>9;)i[a]=0,a--||(++e.e,i.unshift(1));for(a=i.length;!i[--a];)i.pop()}}else if(n<0||n>3||n!==~~n)throw Error(u);return e}function h(e,t,n,i){var a,u,c=e.constructor,l=!e.c[0];if(n!==d){if(n!==~~n||n<(3==t)||n>r)throw Error(3==t?o+"precision":s);for(n=i-(e=new c(e)).e,e.c.length>++i&&p(e,n,c.RM),2==t&&(i=e.e+n+1);e.c.length<i;)e.c.push(0)}if(a=e.e,n=(u=e.c.join("")).length,2!=t&&(1==t||3==t&&i<=a||a<=c.NE||a>=c.PE))u=u.charAt(0)+(n>1?"."+u.slice(1):"")+(a<0?"e":"e+")+a;else if(a<0){for(;++a;)u="0"+u;u="0."+u}else if(a>0)if(++a>n)for(a-=n;a--;)u+="0";else a<n&&(u=u.slice(0,a)+"."+u.slice(a));else n>1&&(u=u.charAt(0)+"."+u.slice(1));return e.s<0&&(!l||4==t)?"-"+u:u}l.abs=function(){var e=new this.constructor(this);return e.s=1,e},l.cmp=function(e){var t,n=this,r=n.c,i=(e=new n.constructor(e)).c,a=n.s,o=e.s,s=n.e,u=e.e;if(!r[0]||!i[0])return r[0]?a:i[0]?-o:0;if(a!=o)return a;if(t=a<0,s!=u)return s>u^t?1:-1;for(o=(s=r.length)<(u=i.length)?s:u,a=-1;++a<o;)if(r[a]!=i[a])return r[a]>i[a]^t?1:-1;return s==u?0:s>u^t?1:-1},l.div=function(e){var t=this,n=t.constructor,i=t.c,a=(e=new n(e)).c,o=t.s==e.s?1:-1,u=n.DP;if(u!==~~u||u<0||u>r)throw Error(s);if(!a[0])throw Error(c);if(!i[0])return new n(0*o);var l,f,h,m,y,g=a.slice(),b=l=a.length,v=i.length,w=i.slice(0,l),T=w.length,A=e,E=A.c=[],_=0,I=u+(A.e=t.e-e.e)+1;for(A.s=o,o=I<0?0:I,g.unshift(0);T++<l;)w.push(0);do{for(h=0;h<10;h++){if(l!=(T=w.length))m=l>T?1:-1;else for(y=-1,m=0;++y<l;)if(a[y]!=w[y]){m=a[y]>w[y]?1:-1;break}if(!(m<0))break;for(f=T==l?a:g;T;){if(w[--T]<f[T]){for(y=T;y&&!w[--y];)w[y]=9;--w[y],w[T]+=10}w[T]-=f[T]}for(;!w[0];)w.shift()}E[_++]=m?h:++h,w[0]&&m?w[T]=i[b]||0:w=[i[b]]}while((b++<v||w[0]!==d)&&o--);return E[0]||1==_||(E.shift(),A.e--),_>I&&p(A,u,n.RM,w[0]!==d),A},l.eq=function(e){return!this.cmp(e)},l.gt=function(e){return this.cmp(e)>0},l.gte=function(e){return this.cmp(e)>-1},l.lt=function(e){return this.cmp(e)<0},l.lte=function(e){return this.cmp(e)<1},l.minus=l.sub=function(e){var t,n,r,i,a=this,o=a.constructor,s=a.s,u=(e=new o(e)).s;if(s!=u)return e.s=-u,a.plus(e);var c=a.c.slice(),l=a.e,d=e.c,f=e.e;if(!c[0]||!d[0])return d[0]?(e.s=-u,e):new o(c[0]?a:0);if(s=l-f){for((i=s<0)?(s=-s,r=c):(f=l,r=d),r.reverse(),u=s;u--;)r.push(0);r.reverse()}else for(n=((i=c.length<d.length)?c:d).length,s=u=0;u<n;u++)if(c[u]!=d[u]){i=c[u]<d[u];break}if(i&&(r=c,c=d,d=r,e.s=-e.s),(u=(n=d.length)-(t=c.length))>0)for(;u--;)c[t++]=0;for(u=t;n>s;){if(c[--n]<d[n]){for(t=n;t&&!c[--t];)c[t]=9;--c[t],c[n]+=10}c[n]-=d[n]}for(;0===c[--u];)c.pop();for(;0===c[0];)c.shift(),--f;return c[0]||(e.s=1,c=[f=0]),e.c=c,e.e=f,e},l.mod=function(e){var t,n=this,r=n.constructor,i=n.s,a=(e=new r(e)).s;if(!e.c[0])throw Error(c);return n.s=e.s=1,t=1==e.cmp(n),n.s=i,e.s=a,t?new r(n):(i=r.DP,a=r.RM,r.DP=r.RM=0,n=n.div(e),r.DP=i,r.RM=a,this.minus(n.times(e)))},l.plus=l.add=function(e){var t,n=this,r=n.constructor,i=n.s,a=(e=new r(e)).s;if(i!=a)return e.s=-a,n.minus(e);var o=n.e,s=n.c,u=e.e,c=e.c;if(!s[0]||!c[0])return c[0]?e:new r(s[0]?n:0*i);if(s=s.slice(),i=o-u){for(i>0?(u=o,t=c):(i=-i,t=s),t.reverse();i--;)t.push(0);t.reverse()}for(s.length-c.length<0&&(t=c,c=s,s=t),i=c.length,a=0;i;s[i]%=10)a=(s[--i]=s[i]+c[i]+a)/10|0;for(a&&(s.unshift(a),++u),i=s.length;0===s[--i];)s.pop();return e.c=s,e.e=u,e},l.pow=function(e){var t=this,n=new t.constructor(1),r=n,a=e<0;if(e!==~~e||e<-1e6||e>i)throw Error(o+"exponent");for(a&&(e=-e);1&e&&(r=r.times(t)),e>>=1;)t=t.times(t);return a?n.div(r):r},l.round=function(e,t){var n=this.constructor;if(e===d)e=0;else if(e!==~~e||e<-r||e>r)throw Error(s);return p(new n(this),e,t===d?n.RM:t)},l.sqrt=function(){var e,t,n,r=this,i=r.constructor,o=r.s,s=r.e,u=new i(.5);if(!r.c[0])return new i(r);if(o<0)throw Error(a+"No square root");0===(o=Math.sqrt(r+""))||o===1/0?((t=r.c.join("")).length+s&1||(t+="0"),s=((s+1)/2|0)-(s<0||1&s),e=new i(((o=Math.sqrt(t))==1/0?"1e":(o=o.toExponential()).slice(0,o.indexOf("e")+1))+s)):e=new i(o),s=e.e+(i.DP+=4);do{n=e,e=u.times(n.plus(r.div(n)))}while(n.c.slice(0,s).join("")!==e.c.slice(0,s).join(""));return p(e,i.DP-=4,i.RM)},l.times=l.mul=function(e){var t,n=this,r=n.constructor,i=n.c,a=(e=new r(e)).c,o=i.length,s=a.length,u=n.e,c=e.e;if(e.s=n.s==e.s?1:-1,!i[0]||!a[0])return new r(0*e.s);for(e.e=u+c,o<s&&(t=i,i=a,a=t,c=o,o=s,s=c),t=new Array(c=o+s);c--;)t[c]=0;for(u=s;u--;){for(s=0,c=o+u;c>u;)s=t[c]+a[u]*i[c-u-1]+s,t[c--]=s%10,s=s/10|0;t[c]=(t[c]+s)%10}for(s?++e.e:t.shift(),u=t.length;!t[--u];)t.pop();return e.c=t,e},l.toExponential=function(e){return h(this,1,e,e)},l.toFixed=function(e){return h(this,2,e,this.e+e)},l.toPrecision=function(e){return h(this,3,e,e-1)},l.toString=function(){return h(this)},l.valueOf=l.toJSON=function(){return h(this,4)},n=function e(){function t(n){var r=this;if(!(r instanceof t))return n===d?e():new t(n);n instanceof t?(r.s=n.s,r.e=n.e,r.c=n.c.slice()):function(e,t){var n,r,i;if(0===t&&1/t<0)t="-0";else if(!f.test(t+=""))throw Error(o+"number");e.s="-"==t.charAt(0)?(t=t.slice(1),-1):1,(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);for(i=t.length,r=0;r<i&&"0"==t.charAt(r);)++r;if(r==i)e.c=[e.e=0];else{for(;i>0&&"0"==t.charAt(--i););for(e.e=n-r-1,e.c=[],n=0;r<=i;)e.c[n++]=+t.charAt(r++)}}(r,n),r.constructor=t}return t.prototype=l,t.DP=20,t.RM=1,t.NE=-7,t.PE=21,t.version="5.2.2",t}(),n.default=n.Big=n,e.exports?e.exports=n:t.Big=n}(ct)}(dv);var fv=lt(dv.exports),pv={exports:{}};!function(e){e.exports&&(e.exports=function(e){return e.prototype.toFormat=function(e,t,n){if(!this.e&&0!==this.e)return this.toString();var r,i,a,o,s,u,c,l,d,f,p,h,m,y,g,b=this.format||{},v=this.constructor.format||{};if(e!=s?"object"==typeof e?(n=e,e=s):t!=s?"object"==typeof t?(n=t,t=s):"object"!=typeof n&&(n={}):n={}:n={},l=(r=this.toFixed(e,t).split("."))[0],d=r[1],u=(c=this.s<0?l.slice(1):l).length,(f=n.decimalSeparator)==s&&(f=b.decimalSeparator)==s&&(f=v.decimalSeparator)==s&&(f="."),(p=n.groupSeparator)==s&&(p=b.groupSeparator)==s&&(p=v.groupSeparator),p&&((h=n.groupSize)==s&&(h=b.groupSize)==s&&(h=v.groupSize)==s&&(h=0),(m=n.secondaryGroupSize)==s&&(m=b.secondaryGroupSize)==s&&(m=v.secondaryGroupSize)==s&&(m=0),m?(i=+m,u-=a=+h):(i=+h,a=+m),i>0&&u>0)){for(o=u%i||i,l=c.substr(0,o);o<u;o+=i)l+=p+c.substr(o,i);a>0&&(l+=p+c.slice(o)),this.s<0&&(l="-"+l)}return d?((y=n.fractionGroupSeparator)==s&&(y=b.fractionGroupSeparator)==s&&(y=v.fractionGroupSeparator),y&&((g=n.fractionGroupSize)==s&&(g=b.fractionGroupSize)==s&&(g=v.fractionGroupSize)==s&&(g=0),(g=+g)&&(d=d.replace(new RegExp("\\d{"+g+"}\\B","g"),"$&"+y))),l+f+d):l},e.format={decimalSeparator:".",groupSeparator:",",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:"",fractionGroupSize:0},e})}(pv);var hv,mv,yv,gv=lt(pv.exports);!function(e){e[e.MAINNET=1]="MAINNET",e[e.GOERLI=5]="GOERLI",e[e.SEPOLIA=11155111]="SEPOLIA",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.CELO=42220]="CELO",e[e.CELO_ALFAJORES=44787]="CELO_ALFAJORES",e[e.BNB=56]="BNB"}(hv||(hv={})),function(e){e[e.EXACT_INPUT=0]="EXACT_INPUT",e[e.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(mv||(mv={})),function(e){e[e.ROUND_DOWN=0]="ROUND_DOWN",e[e.ROUND_HALF_UP=1]="ROUND_HALF_UP",e[e.ROUND_UP=2]="ROUND_UP"}(yv||(yv={}));var bv,vv,wv=ov.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Tv(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Av(e,t,n){return t&&Tv(e.prototype,t),n&&Tv(e,n),e}function Ev(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var _v=gv(lv),Iv=gv(fv),Rv=((bv={})[yv.ROUND_DOWN]=_v.ROUND_DOWN,bv[yv.ROUND_HALF_UP]=_v.ROUND_HALF_UP,bv[yv.ROUND_UP]=_v.ROUND_UP,bv),Cv=((vv={})[yv.ROUND_DOWN]=0,vv[yv.ROUND_HALF_UP]=1,vv[yv.ROUND_UP]=3,vv),Ov=function(){function e(e,t){void 0===t&&(t=ov.BigInt(1)),this.numerator=ov.BigInt(e),this.denominator=ov.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof ov||"number"==typeof t||"string"==typeof t)return new e(t);if("numerator"in t&&"denominator"in t)return t;throw new Error("Could not parse fraction")};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return ov.equal(this.denominator,n.denominator)?new e(ov.add(this.numerator,n.numerator),this.denominator):new e(ov.add(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator)),ov.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return ov.equal(this.denominator,n.denominator)?new e(ov.subtract(this.numerator,n.numerator),this.denominator):new e(ov.subtract(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator)),ov.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return ov.lessThan(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return ov.equal(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return ov.greaterThan(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(ov.multiply(this.numerator,n.numerator),ov.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(ov.multiply(this.numerator,n.denominator),ov.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=yv.ROUND_HALF_UP),Number.isInteger(e)||uv(!1),e>0||uv(!1),_v.set({precision:e+1,rounding:Rv[n]});var r=new _v(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=yv.ROUND_HALF_UP),Number.isInteger(e)||uv(!1),e>=0||uv(!1),Iv.DP=e,Iv.RM=Cv[n],new Iv(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},Av(e,[{key:"quotient",get:function(){return ov.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(ov.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}]),e}(),kv=gv(fv),Sv=function(e){function t(t,n,r){var i;return i=e.call(this,n,r)||this,ov.lessThanOrEqual(i.quotient,wv)||uv(!1),i.currency=t,i.decimalScale=ov.exponentiate(ov.BigInt(10),ov.BigInt(t.decimals)),i}Ev(t,e),t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){this.currency.equals(n.currency)||uv(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){this.currency.equals(n.currency)||uv(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return void 0===t&&(t=6),void 0===r&&(r=yv.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=this.currency.decimals),void 0===r&&(r=yv.ROUND_DOWN),t<=this.currency.decimals||uv(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),kv.DP=this.currency.decimals,new kv(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},Av(t,[{key:"wrapped",get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(Ov),Nv=new Ov(ov.BigInt(100));function xv(e){return new Pv(e.numerator,e.denominator)}var Pv=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isPercent=!0,t}Ev(t,e);var n=t.prototype;return n.add=function(t){return xv(e.prototype.add.call(this,t))},n.subtract=function(t){return xv(e.prototype.subtract.call(this,t))},n.multiply=function(t){return xv(e.prototype.multiply.call(this,t))},n.divide=function(t){return xv(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return void 0===t&&(t=5),e.prototype.multiply.call(this,Nv).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=2),e.prototype.multiply.call(this,Nv).toFixed(t,n,r)},t}(Ov);var Mv=/^0x[0-9a-fA-F]{40}$/;var Bv,Dv=function(e){function t(t,n,r,i,a,o){var s;return(s=e.call(this,t,r,i,a)||this).isNative=!1,s.isToken=!0,s.address=o?function(e){if(Mv.test(e))return e;throw new Error(e+" is not a valid address.")}(n):function(e){try{return _i(e)}catch(t){throw new Error(e+" is not a valid address.")}}(n),s}Ev(t,e);var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&uv(!1),this.address.toLowerCase()===e.address.toLowerCase()&&uv(!1),this.address.toLowerCase()<e.address.toLowerCase()},Av(t,[{key:"wrapped",get:function(){return this}}]),t}((function(e,t,n,r){Number.isSafeInteger(e)||uv(!1),t>=0&&t<255&&Number.isInteger(t)||uv(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r}));(Bv={})[1]=new Dv(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),Bv[3]=new Dv(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),Bv[4]=new Dv(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),Bv[5]=new Dv(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),Bv[42]=new Dv(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),Bv[10]=new Dv(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),Bv[69]=new Dv(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),Bv[42161]=new Dv(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),Bv[421611]=new Dv(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether");var Fv="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e};function Lv(e,t){var n={seen:[],stylize:qv};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),zv(t)?n.showHidden=t:t&&function(e,t){if(!t||!Jv(t))return e;var n=Object.keys(t),r=n.length;for(;r--;)e[n[r]]=t[n[r]]}(n,t),Kv(n.showHidden)&&(n.showHidden=!1),Kv(n.depth)&&(n.depth=2),Kv(n.colors)&&(n.colors=!1),Kv(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=Uv),jv(n,e,n.depth)}function Uv(e,t){var n=Lv.styles[t];return n?"["+Lv.colors[n][0]+"m"+e+"["+Lv.colors[n][1]+"m":e}function qv(e,t){return e}function jv(e,t,n){if(e.customInspect&&t&&$v(t.inspect)&&t.inspect!==Lv&&(!t.constructor||t.constructor.prototype!==t)){var r=t.inspect(n,e);return Wv(r)||(r=jv(e,r,n)),r}var i=function(e,t){if(Kv(t))return e.stylize("undefined","undefined");if(Wv(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(r=t,"number"==typeof r)return e.stylize(""+t,"number");var r;if(zv(t))return e.stylize(""+t,"boolean");if(Vv(t))return e.stylize("null","null")}(e,t);if(i)return i;var a=Object.keys(t),o=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(t)),Qv(t)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return Gv(t);if(0===a.length){if($v(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(Xv(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Yv(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Qv(t))return Gv(t)}var u,c,l="",d=!1,f=["{","}"];(u=t,Array.isArray(u)&&(d=!0,f=["[","]"]),$v(t))&&(l=" [Function"+(t.name?": "+t.name:"")+"]");return Xv(t)&&(l=" "+RegExp.prototype.toString.call(t)),Yv(t)&&(l=" "+Date.prototype.toUTCString.call(t)),Qv(t)&&(l=" "+Gv(t)),0!==a.length||d&&0!=t.length?n<0?Xv(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),c=d?function(e,t,n,r,i){for(var a=[],o=0,s=t.length;o<s;++o)tw(t,String(o))?a.push(Hv(e,t,n,r,String(o),!0)):a.push("");return i.forEach((function(i){i.match(/^\d+$/)||a.push(Hv(e,t,n,r,i,!0))})),a}(e,t,n,o,a):a.map((function(r){return Hv(e,t,n,o,r,d)})),e.seen.pop(),function(e,t,n){var r=e.reduce((function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);if(r>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(c,l,f)):f[0]+l+f[1]}function Gv(e){return"["+Error.prototype.toString.call(e)+"]"}function Hv(e,t,n,r,i,a){var o,s,u;if((u=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(s=e.stylize("[Setter]","special")),tw(r,i)||(o="["+i+"]"),s||(e.seen.indexOf(u.value)<0?(s=Vv(n)?jv(e,u.value,null):jv(e,u.value,n-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),Kv(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function zv(e){return"boolean"==typeof e}function Vv(e){return null===e}function Wv(e){return"string"==typeof e}function Kv(e){return void 0===e}function Xv(e){return Jv(e)&&"[object RegExp]"===ew(e)}function Jv(e){return"object"==typeof e&&null!==e}function Yv(e){return Jv(e)&&"[object Date]"===ew(e)}function Qv(e){return Jv(e)&&("[object Error]"===ew(e)||e instanceof Error)}function $v(e){return"function"==typeof e}function Zv(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function ew(e){return Object.prototype.toString.call(e)}function tw(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function nw(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0}Lv.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},Lv.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var rw,iw=Object.prototype.hasOwnProperty,aw=Object.keys||function(e){var t=[];for(var n in e)iw.call(e,n)&&t.push(n);return t},ow=Array.prototype.slice;function sw(){return void 0!==rw?rw:rw="foo"===function(){}.name}function uw(e){return Object.prototype.toString.call(e)}function cw(e){return!fn(e)&&("function"==typeof pt.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):!!e&&(e instanceof DataView||!!(e.buffer&&e.buffer instanceof ArrayBuffer))))}function lw(e,t){e||vw(e,!0,t,"==",ww)}var dw,fw,pw,hw=/\s*function\s+([^\(\s]*)\s*/;function mw(e){if($v(e)){if(sw())return e.name;var t=e.toString().match(hw);return t&&t[1]}}function yw(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return gw(bw(e.actual),128)+" "+e.operator+" "+gw(bw(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||vw;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,i=mw(t),a=r.indexOf("\n"+i);if(a>=0){var o=r.indexOf("\n",a+1);r=r.substring(o+1)}this.stack=r}}}function gw(e,t){return"string"==typeof e?e.length<t?e:e.slice(0,t):e}function bw(e){if(sw()||!$v(e))return Lv(e);var t=mw(e);return"[Function"+(t?": "+t:"")+"]"}function vw(e,t,n,r,i){throw new yw({message:n,actual:e,expected:t,operator:r,stackStartFunction:i})}function ww(e,t){e||vw(e,!0,t,"==",ww)}function Tw(e,t,n,r){if(e===t)return!0;if(fn(e)&&fn(t))return 0===nw(e,t);if(Yv(e)&&Yv(t))return e.getTime()===t.getTime();if(Xv(e)&&Xv(t))return e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase;if(null!==e&&"object"==typeof e||null!==t&&"object"==typeof t){if(cw(e)&&cw(t)&&uw(e)===uw(t)&&!(e instanceof Float32Array||e instanceof Float64Array))return 0===nw(new Uint8Array(e.buffer),new Uint8Array(t.buffer));if(fn(e)!==fn(t))return!1;var i=(r=r||{actual:[],expected:[]}).actual.indexOf(e);return-1!==i&&i===r.expected.indexOf(t)||(r.actual.push(e),r.expected.push(t),function(e,t,n,r){if(null==e||null==t)return!1;if(Zv(e)||Zv(t))return e===t;if(n&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;var i=Aw(e),a=Aw(t);if(i&&!a||!i&&a)return!1;if(i)return Tw(e=ow.call(e),t=ow.call(t),n);var o,s,u=aw(e),c=aw(t);if(u.length!==c.length)return!1;for(u.sort(),c.sort(),s=u.length-1;s>=0;s--)if(u[s]!==c[s])return!1;for(s=u.length-1;s>=0;s--)if(!Tw(e[o=u[s]],t[o],n,r))return!1;return!0}(e,t,n,r))}return n?e===t:e==t}function Aw(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function Ew(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function _w(e,t,n,r){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(r=n,n=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!i&&vw(i,n,"Missing expected exception"+r);var a="string"==typeof r,o=!e&&i&&!n;if((!e&&Qv(i)&&a&&Ew(i,n)||o)&&vw(i,n,"Got unwanted exception"+r),e&&i&&n&&!Ew(i,n)||!e&&i)throw i}function Iw(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Rw(e,t,n){return t&&Iw(e.prototype,t),n&&Iw(e,n),e}function Cw(){return Cw=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Cw.apply(this,arguments)}function Ow(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}lw.AssertionError=yw,Fv(yw,Error),lw.fail=vw,lw.ok=ww,lw.equal=function e(t,n,r){t!=n&&vw(t,n,r,"==",e)},lw.notEqual=function e(t,n,r){t==n&&vw(t,n,r,"!=",e)},lw.deepEqual=function e(t,n,r){Tw(t,n,!1)||vw(t,n,r,"deepEqual",e)},lw.deepStrictEqual=function e(t,n,r){Tw(t,n,!0)||vw(t,n,r,"deepStrictEqual",e)},lw.notDeepEqual=function e(t,n,r){Tw(t,n,!1)&&vw(t,n,r,"notDeepEqual",e)},lw.notDeepStrictEqual=function e(t,n,r){Tw(t,n,!0)&&vw(t,n,r,"notDeepStrictEqual",e)},lw.strictEqual=function e(t,n,r){t!==n&&vw(t,n,r,"===",e)},lw.notStrictEqual=function e(t,n,r){t===n&&vw(t,n,r,"!==",e)},lw.throws=function(e,t,n){_w(!0,e,t,n)},lw.doesNotThrow=function(e,t,n){_w(!1,e,t,n)},lw.ifError=function(e){if(e)throw e},function(e){e[e.MAINNET=1]="MAINNET",e[e.GOERLI=5]="GOERLI",e[e.SEPOLIA=11155111]="SEPOLIA",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.CELO=42220]="CELO",e[e.CELO_ALFAJORES=44787]="CELO_ALFAJORES",e[e.GNOSIS=100]="GNOSIS",e[e.MOONBEAM=1284]="MOONBEAM",e[e.BNB=56]="BNB",e[e.AVALANCHE=43114]="AVALANCHE",e[e.BASE_GOERLI=84531]="BASE_GOERLI",e[e.BASE=8453]="BASE"}(dw||(dw={})),dw.MAINNET,dw.OPTIMISM,dw.OPTIMISM_GOERLI,dw.ARBITRUM_ONE,dw.ARBITRUM_GOERLI,dw.POLYGON,dw.POLYGON_MUMBAI,dw.GOERLI,dw.SEPOLIA,dw.CELO_ALFAJORES,dw.CELO,dw.BNB,dw.AVALANCHE,dw.BASE,dw.BASE_GOERLI,function(e){e.ETHER="ETH",e.MATIC="MATIC",e.CELO="CELO",e.GNOSIS="XDAI",e.MOONBEAM="GLMR",e.BNB="BNB",e.AVAX="AVAX"}(fw||(fw={}));dw.MAINNET,dw.GOERLI;dw.OPTIMISM,dw.ARBITRUM_ONE,dw.POLYGON,dw.POLYGON_MUMBAI,dw.SEPOLIA;var kw,Sw,Nw={v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x1F98415757620B543A52E61c46B32eB19261F984",quoterAddress:"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",v3MigratorAddress:"0xA5644E29708357803b5A882D272c41cC0dF92B34",nonfungiblePositionManagerAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88"},xw=Cw({},Nw,{v1MixedRouteQuoterAddress:"0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E"}),Pw=Cw({},Nw,{v1MixedRouteQuoterAddress:"0xBa60b6e6fF25488308789E6e0A65D838be34194e"}),Mw=Nw,Bw=Cw({},Nw,{multicallAddress:"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",tickLensAddress:"0xbfd8137f7d1516D3ea5cA83523914859ec47F573"}),Dw=Nw,Fw={v3CoreFactoryAddress:"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",multicallAddress:"0x633987602DE5C4F337e3DbF265303A1080324204",quoterAddress:"0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",v3MigratorAddress:"0x3cFd4d48EDfDCC53D3f173F596f621064614C582",nonfungiblePositionManagerAddress:"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",tickLensAddress:"0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D"};(pw={})[dw.MAINNET]=xw,pw[dw.OPTIMISM]=Mw,pw[dw.ARBITRUM_ONE]=Bw,pw[dw.POLYGON]=Dw,pw[dw.POLYGON_MUMBAI]=Dw,pw[dw.GOERLI]=Pw,pw[dw.CELO]=Fw,pw[dw.CELO_ALFAJORES]=Fw,pw[dw.BNB]={v3CoreFactoryAddress:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",multicallAddress:"0x963Df249eD09c358A4819E39d9Cd5736c3087184",quoterAddress:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",v3MigratorAddress:"0x32681814957e0C13117ddc0c2aba232b5c9e760f",nonfungiblePositionManagerAddress:"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",tickLensAddress:"0xD9270014D396281579760619CCf4c3af0501A47C",swapRouter02Address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2"},pw[dw.OPTIMISM_GOERLI]={v3CoreFactoryAddress:"0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",multicallAddress:"0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",quoterAddress:"0x9569CbA925c8ca2248772A9A4976A516743A246F",v3MigratorAddress:"0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",nonfungiblePositionManagerAddress:"0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",tickLensAddress:"0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"},pw[dw.ARBITRUM_GOERLI]={v3CoreFactoryAddress:"0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",multicallAddress:"0x8260CB40247290317a4c062F3542622367F206Ee",quoterAddress:"0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",v3MigratorAddress:"0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",nonfungiblePositionManagerAddress:"0x622e4726a167799826d1E1D150b076A7725f5D81",tickLensAddress:"0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"},pw[dw.SEPOLIA]={v3CoreFactoryAddress:"0x0227628f3F023bb0B980b67D528571c95c6DaC1c",multicallAddress:"0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",quoterAddress:"0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",v3MigratorAddress:"0x729004182cF005CEC8Bd85df140094b6aCbe8b15",nonfungiblePositionManagerAddress:"0x1238536071E1c677A632429e3655c799b22cDA52",tickLensAddress:"0xd7f33bcdb21b359c8ee6f0251d30e94832baad07"},pw[dw.AVALANCHE]={v3CoreFactoryAddress:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",multicallAddress:"0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",quoterAddress:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",v3MigratorAddress:"0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",nonfungiblePositionManagerAddress:"0x655C406EBFa14EE2006250925e54ec43AD184f8B",tickLensAddress:"0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",swapRouter02Address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE"},pw[dw.BASE]={v3CoreFactoryAddress:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",multicallAddress:"0x091e99cb1C49331a94dD62755D168E941AbD0693",quoterAddress:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",v3MigratorAddress:"0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",nonfungiblePositionManagerAddress:"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",tickLensAddress:"0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",swapRouter02Address:"0x2626664c2603336E57B271c5C0b26F421741e481"},pw[dw.BASE_GOERLI]={v3CoreFactoryAddress:"0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",multicallAddress:"0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",quoterAddress:"0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",v3MigratorAddress:"0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",nonfungiblePositionManagerAddress:"0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",tickLensAddress:"0x1acB873Ee909D0c98adB18e4474943249F931b92",swapRouter02Address:"0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"},{}[dw.MAINNET]="0xC4e172459f1E7939D522503B81AFAaC1014CE6F6",{}[dw.MAINNET]="0x408ED6354d4973f66138C91495F2f2FCbd8724C3",{}[dw.MAINNET]="0x090D4613473dEE047c3f2706764f49E0821D256e",{}[dw.MAINNET]="0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8",{}[dw.MAINNET]="0x65770b5283117639760beA3F867b69b3697a91dd",function(e){e[e.EXACT_INPUT=0]="EXACT_INPUT",e[e.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(kw||(kw={})),function(e){e[e.ROUND_DOWN=0]="ROUND_DOWN",e[e.ROUND_HALF_UP=1]="ROUND_HALF_UP",e[e.ROUND_UP=2]="ROUND_UP"}(Sw||(Sw={}));var Lw,Uw,qw=ov.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),jw=gv(lv),Gw=gv(fv),Hw=((Lw={})[Sw.ROUND_DOWN]=jw.ROUND_DOWN,Lw[Sw.ROUND_HALF_UP]=jw.ROUND_HALF_UP,Lw[Sw.ROUND_UP]=jw.ROUND_UP,Lw),zw=((Uw={})[Sw.ROUND_DOWN]=0,Uw[Sw.ROUND_HALF_UP]=1,Uw[Sw.ROUND_UP]=3,Uw),Vw=function(){function e(e,t){void 0===t&&(t=ov.BigInt(1)),this.numerator=ov.BigInt(e),this.denominator=ov.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof ov||"number"==typeof t||"string"==typeof t)return new e(t);if("numerator"in t&&"denominator"in t)return t;throw new Error("Could not parse fraction")};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return ov.equal(this.denominator,n.denominator)?new e(ov.add(this.numerator,n.numerator),this.denominator):new e(ov.add(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator)),ov.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return ov.equal(this.denominator,n.denominator)?new e(ov.subtract(this.numerator,n.numerator),this.denominator):new e(ov.subtract(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator)),ov.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return ov.lessThan(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return ov.equal(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return ov.greaterThan(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(ov.multiply(this.numerator,n.numerator),ov.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(ov.multiply(this.numerator,n.denominator),ov.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=Sw.ROUND_HALF_UP),Number.isInteger(e)||uv(!1),e>0||uv(!1),jw.set({precision:e+1,rounding:Hw[n]});var r=new jw(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=Sw.ROUND_HALF_UP),Number.isInteger(e)||uv(!1),e>=0||uv(!1),Gw.DP=e,Gw.RM=zw[n],new Gw(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},Rw(e,[{key:"quotient",get:function(){return ov.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(ov.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}]),e}(),Ww=gv(fv),Kw=function(e){function t(t,n,r){var i;return i=e.call(this,n,r)||this,ov.lessThanOrEqual(i.quotient,qw)||uv(!1),i.currency=t,i.decimalScale=ov.exponentiate(ov.BigInt(10),ov.BigInt(t.decimals)),i}Ow(t,e),t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){this.currency.equals(n.currency)||uv(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){this.currency.equals(n.currency)||uv(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return void 0===t&&(t=6),void 0===r&&(r=Sw.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=this.currency.decimals),void 0===r&&(r=Sw.ROUND_DOWN),t<=this.currency.decimals||uv(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),Ww.DP=this.currency.decimals,new Ww(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},Rw(t,[{key:"wrapped",get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(Vw),Xw=new Vw(ov.BigInt(100));function Jw(e){return new Yw(e.numerator,e.denominator)}var Yw=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isPercent=!0,t}Ow(t,e);var n=t.prototype;return n.add=function(t){return Jw(e.prototype.add.call(this,t))},n.subtract=function(t){return Jw(e.prototype.subtract.call(this,t))},n.multiply=function(t){return Jw(e.prototype.multiply.call(this,t))},n.divide=function(t){return Jw(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return void 0===t&&(t=5),e.prototype.multiply.call(this,Xw).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=2),e.prototype.multiply.call(this,Xw).toFixed(t,n,r)},t}(Vw),Qw=function(e){function t(){for(var t,n,r,i,a,o=arguments.length,s=new Array(o),u=0;u<o;u++)s[u]=arguments[u];if(4===s.length)n=s[0],r=s[1],i=s[2],a=s[3];else{var c=s[0].quoteAmount.divide(s[0].baseAmount),l=[s[0].baseAmount.currency,s[0].quoteAmount.currency,c.denominator,c.numerator];n=l[0],r=l[1],i=l[2],a=l[3]}return(t=e.call(this,a,i)||this).baseCurrency=n,t.quoteCurrency=r,t.scalar=new Vw(ov.exponentiate(ov.BigInt(10),ov.BigInt(n.decimals)),ov.exponentiate(ov.BigInt(10),ov.BigInt(r.decimals))),t}Ow(t,e);var n=t.prototype;return n.invert=function(){return new t(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},n.multiply=function(n){this.quoteCurrency.equals(n.baseCurrency)||uv(!1);var r=e.prototype.multiply.call(this,n);return new t(this.baseCurrency,n.quoteCurrency,r.denominator,r.numerator)},n.quote=function(t){t.currency.equals(this.baseCurrency)||uv(!1);var n=e.prototype.multiply.call(this,t);return Kw.fromFractionalAmount(this.quoteCurrency,n.numerator,n.denominator)},n.toSignificant=function(e,t,n){return void 0===e&&(e=6),this.adjustedForDecimals.toSignificant(e,t,n)},n.toFixed=function(e,t,n){return void 0===e&&(e=4),this.adjustedForDecimals.toFixed(e,t,n)},Rw(t,[{key:"adjustedForDecimals",get:function(){return e.prototype.multiply.call(this,this.scalar)}}]),t}(Vw);function $w(e){try{return _i(e)}catch(t){throw new Error(e+" is not a valid address.")}}var Zw=/^0x[0-9a-fA-F]{40}$/;var eT,tT=function(e){function t(t,n,r,i,a,o){var s;return(s=e.call(this,t,r,i,a)||this).isNative=!1,s.isToken=!0,s.address=o?function(e){if(Zw.test(e))return e;throw new Error(e+" is not a valid address.")}(n):$w(n),s}Ow(t,e);var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&uv(!1),this.address.toLowerCase()===e.address.toLowerCase()&&uv(!1),this.address.toLowerCase()<e.address.toLowerCase()},Rw(t,[{key:"wrapped",get:function(){return this}}]),t}((function(e,t,n,r){Number.isSafeInteger(e)||uv(!1),t>=0&&t<255&&Number.isInteger(t)||uv(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r}));function nT(e,t,n,r){if(n>0||uv(!1),e.length<=n||uv(!1),0===e.length)return e.push(t),null;var i=e.length===n;if(i&&r(e[e.length-1],t)<=0)return t;for(var a=0,o=e.length;a<o;){var s=a+o>>>1;r(e[s],t)<=0?a=s+1:o=s}return e.splice(a,0,t),i?e.pop():null}(eT={})[1]=new tT(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),eT[3]=new tT(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),eT[4]=new tT(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),eT[5]=new tT(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),eT[42]=new tT(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),eT[10]=new tT(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),eT[69]=new tT(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),eT[42161]=new tT(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),eT[421611]=new tT(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether");var rT=ov.BigInt(Number.MAX_SAFE_INTEGER),iT=ov.BigInt(0),aT=ov.BigInt(1),oT=ov.BigInt(2);var sT=[{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"}],uT=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"},{internalType:"address",name:"_tokenDescriptor_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Collect",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"DecreaseLiquidity",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"IncreaseLiquidity",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"PERMIT_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint128",name:"amount0Max",type:"uint128"},{internalType:"uint128",name:"amount1Max",type:"uint128"}],internalType:"struct INonfungiblePositionManager.CollectParams",name:"params",type:"tuple"}],name:"collect",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"}],name:"createAndInitializePoolIfNecessary",outputs:[{internalType:"address",name:"pool",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct INonfungiblePositionManager.DecreaseLiquidityParams",name:"params",type:"tuple"}],name:"decreaseLiquidity",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount0Desired",type:"uint256"},{internalType:"uint256",name:"amount1Desired",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct INonfungiblePositionManager.IncreaseLiquidityParams",name:"params",type:"tuple"}],name:"increaseLiquidity",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"amount0Desired",type:"uint256"},{internalType:"uint256",name:"amount1Desired",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct INonfungiblePositionManager.MintParams",name:"params",type:"tuple"}],name:"mint",outputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"positions",outputs:[{internalType:"uint96",name:"nonce",type:"uint96"},{internalType:"address",name:"operator",type:"address"},{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"},{internalType:"uint128",name:"tokensOwed0",type:"uint128"},{internalType:"uint128",name:"tokensOwed1",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"index",type:"uint256"}],name:"tokenByIndex",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint256",name:"index",type:"uint256"}],name:"tokenOfOwnerByIndex",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount0Owed",type:"uint256"},{internalType:"uint256",name:"amount1Owed",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"uniswapV3MintCallback",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],cT=[{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"}],lT=[{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"}],dT=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountIn",type:"uint256"}],name:"quoteExactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],name:"quoteExactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountOut",type:"uint256"}],name:"quoteExactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"path",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"view",type:"function"}],fT=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountIn",type:"uint256"}],name:"quoteExactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint160[]",name:"sqrtPriceX96AfterList",type:"uint160[]"},{internalType:"uint32[]",name:"initializedTicksCrossedList",type:"uint32[]"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IQuoterV2.QuoteExactInputSingleParams",name:"params",type:"tuple"}],name:"quoteExactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint160",name:"sqrtPriceX96After",type:"uint160"},{internalType:"uint32",name:"initializedTicksCrossed",type:"uint32"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountOut",type:"uint256"}],name:"quoteExactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160[]",name:"sqrtPriceX96AfterList",type:"uint160[]"},{internalType:"uint32[]",name:"initializedTicksCrossedList",type:"uint32[]"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IQuoterV2.QuoteExactOutputSingleParams",name:"params",type:"tuple"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160",name:"sqrtPriceX96After",type:"uint160"},{internalType:"uint32",name:"initializedTicksCrossed",type:"uint32"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"path",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"view",type:"function"}],pT=[{inputs:[{internalType:"contract IUniswapV3Factory",name:"_factory",type:"address"},{internalType:"contract INonfungiblePositionManager",name:"_nonfungiblePositionManager",type:"address"},{internalType:"uint256",name:"_maxIncentiveStartLeadTime",type:"uint256"},{internalType:"uint256",name:"_maxIncentiveDuration",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"DepositTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{indexed:!0,internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{indexed:!1,internalType:"uint256",name:"startTime",type:"uint256"},{indexed:!1,internalType:"uint256",name:"endTime",type:"uint256"},{indexed:!1,internalType:"address",name:"refundee",type:"address"},{indexed:!1,internalType:"uint256",name:"reward",type:"uint256"}],name:"IncentiveCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"incentiveId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"refund",type:"uint256"}],name:"IncentiveEnded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"reward",type:"uint256"}],name:"RewardClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"incentiveId",type:"bytes32"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"}],name:"TokenStaked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"incentiveId",type:"bytes32"}],name:"TokenUnstaked",type:"event"},{inputs:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountRequested",type:"uint256"}],name:"claimReward",outputs:[{internalType:"uint256",name:"reward",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"reward",type:"uint256"}],name:"createIncentive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"deposits",outputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint48",name:"numberOfStakes",type:"uint48"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"}],name:"endIncentive",outputs:[{internalType:"uint256",name:"refund",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"contract IUniswapV3Factory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getRewardInfo",outputs:[{internalType:"uint256",name:"reward",type:"uint256"},{internalType:"uint160",name:"secondsInsideX128",type:"uint160"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"incentives",outputs:[{internalType:"uint256",name:"totalRewardUnclaimed",type:"uint256"},{internalType:"uint160",name:"totalSecondsClaimedX128",type:"uint160"},{internalType:"uint96",name:"numberOfStakes",type:"uint96"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxIncentiveDuration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxIncentiveStartLeadTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"nonfungiblePositionManager",outputs:[{internalType:"contract INonfungiblePositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20Minimal",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"rewards",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"stakeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes32",name:"incentiveId",type:"bytes32"}],name:"stakes",outputs:[{internalType:"uint160",name:"secondsPerLiquidityInsideInitialX128",type:"uint160"},{internalType:"uint128",name:"liquidity",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"transferDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"unstakeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"withdrawToken",outputs:[],stateMutability:"nonpayable",type:"function"}],hT=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"}],internalType:"struct ISwapRouter.ExactInputParams",name:"params",type:"tuple"}],name:"exactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct ISwapRouter.ExactInputSingleParams",name:"params",type:"tuple"}],name:"exactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"}],internalType:"struct ISwapRouter.ExactOutputParams",name:"params",type:"tuple"}],name:"exactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct ISwapRouter.ExactOutputSingleParams",name:"params",type:"tuple"}],name:"exactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}];function mT(e,t,n,r,i,a,o){try{var s=e[a](o),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function yT(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){mT(a,r,i,o,s,"next",e)}function s(e){mT(a,r,i,o,s,"throw",e)}o(void 0)}))}}function gT(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function bT(e,t,n){return t&&gT(e.prototype,t),n&&gT(e,n),e}function vT(){return vT=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},vT.apply(this,arguments)}function wT(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function TT(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return wT(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?wT(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}var AT,ET,_T=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t=function(e){var t,n=Object.prototype,r=n.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),o=new O(r||[]);return a._invoke=function(e,t,n){var r=d;return function(i,a){if(r===p)throw new Error("Generator is already running");if(r===h){if("throw"===i)throw a;return S()}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var s=I(o,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===d)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var u=l(e,t,n);if("normal"===u.type){if(r=n.done?h:f,u.arg===m)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=h,n.method="throw",n.arg=u.arg)}}}(e,n,o),a}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var d="suspendedStart",f="suspendedYield",p="executing",h="completed",m={};function y(){}function g(){}function b(){}var v={};v[a]=function(){return this};var w=Object.getPrototypeOf,T=w&&w(w(k([])));T&&T!==n&&r.call(T,a)&&(v=T);var A=b.prototype=y.prototype=Object.create(v);function E(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function _(e,t){function n(i,a,o,s){var u=l(e[i],e,a);if("throw"!==u.type){var c=u.arg,d=c.value;return d&&"object"==typeof d&&r.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,o,s)}),(function(e){n("throw",e,o,s)})):t.resolve(d).then((function(e){c.value=e,o(c)}),(function(e){return n("throw",e,o,s)}))}s(u.arg)}var i;this._invoke=function(e,r){function a(){return new t((function(t,i){n(e,r,t,i)}))}return i=i?i.then(a,a):a()}}function I(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,I(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var i=l(r,e.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,m;var a=i.arg;return a?a.done?(n[e.resultName]=a.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function R(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(R,this),this.reset(!0)}function k(e){if(e){var n=e[a];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,o=function n(){for(;++i<e.length;)if(r.call(e,i))return n.value=e[i],n.done=!1,n;return n.value=t,n.done=!0,n};return o.next=o}}return{next:S}}function S(){return{value:t,done:!0}}return g.prototype=A.constructor=b,b.constructor=g,g.displayName=u(b,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,s,"GeneratorFunction")),e.prototype=Object.create(A),e},e.awrap=function(e){return{__await:e}},E(_.prototype),_.prototype[o]=function(){return this},e.AsyncIterator=_,e.async=function(t,n,r,i,a){void 0===a&&(a=Promise);var o=new _(c(t,n,r,i),a);return e.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},E(A),u(A,s,"Generator"),A[a]=function(){return this},A.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=k,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(C),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function i(r,i){return s.type="throw",s.arg=e,n.next=r,i&&(n.method="next",n.arg=t),!!i}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=r.call(o,"catchLoc"),c=r.call(o,"finallyLoc");if(u&&c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(u){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,m):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;C(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:k(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}})),IT="0x1F98431c8aD98523631AE4a59f267346ea31F984",RT="0x0000000000000000000000000000000000000000",CT="0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54";!function(e){e[e.LOWEST=100]="LOWEST",e[e.LOW=500]="LOW",e[e.MEDIUM=3e3]="MEDIUM",e[e.HIGH=1e4]="HIGH"}(ET||(ET={}));var OT=((AT={})[ET.LOWEST]=1,AT[ET.LOW]=10,AT[ET.MEDIUM]=60,AT[ET.HIGH]=200,AT),kT=ov.BigInt(-1),ST=ov.BigInt(0),NT=ov.BigInt(1),xT=ov.exponentiate(ov.BigInt(2),ov.BigInt(96)),PT=ov.exponentiate(xT,ov.BigInt(2));function MT(e){var t=e.factoryAddress,n=e.tokenA,r=e.tokenB,i=e.fee,a=e.initCodeHashManualOverride,o=n.sortsBefore(r)?[n,r]:[r,n],s=o[0],u=o[1];return Oi(t,Th(["bytes"],[Na.encode(["address","address","uint24"],[s.address,u.address,i])]),null!=a?a:CT)}var BT=function(){function e(){}return e.addDelta=function(e,t){return ov.lessThan(t,ST)?ov.subtract(e,ov.multiply(t,kT)):ov.add(e,t)},e}(),DT=function(){function e(){}return e.mulDivRoundingUp=function(e,t,n){var r=ov.multiply(e,t),i=ov.divide(r,n);return ov.notEqual(ov.remainder(r,n),ST)&&(i=ov.add(i,NT)),i},e}(),FT=ov.subtract(ov.exponentiate(ov.BigInt(2),ov.BigInt(160)),NT);function LT(e,t){var n=ov.multiply(e,t);return ov.bitwiseAnd(n,qw)}var UT=function(){function e(){}return e.getAmount0Delta=function(e,t,n,r){if(ov.greaterThan(e,t)){var i=[t,e];e=i[0],t=i[1]}var a=ov.leftShift(n,ov.BigInt(96)),o=ov.subtract(t,e);return r?DT.mulDivRoundingUp(DT.mulDivRoundingUp(a,o,t),NT,e):ov.divide(ov.divide(ov.multiply(a,o),t),e)},e.getAmount1Delta=function(e,t,n,r){if(ov.greaterThan(e,t)){var i=[t,e];e=i[0],t=i[1]}return r?DT.mulDivRoundingUp(n,ov.subtract(t,e),xT):ov.divide(ov.multiply(n,ov.subtract(t,e)),xT)},e.getNextSqrtPriceFromInput=function(e,t,n,r){return ov.greaterThan(e,ST)||uv(!1),ov.greaterThan(t,ST)||uv(!1),r?this.getNextSqrtPriceFromAmount0RoundingUp(e,t,n,!0):this.getNextSqrtPriceFromAmount1RoundingDown(e,t,n,!0)},e.getNextSqrtPriceFromOutput=function(e,t,n,r){return ov.greaterThan(e,ST)||uv(!1),ov.greaterThan(t,ST)||uv(!1),r?this.getNextSqrtPriceFromAmount1RoundingDown(e,t,n,!1):this.getNextSqrtPriceFromAmount0RoundingUp(e,t,n,!1)},e.getNextSqrtPriceFromAmount0RoundingUp=function(e,t,n,r){if(ov.equal(n,ST))return e;var i=ov.leftShift(t,ov.BigInt(96));if(r){var a=LT(n,e);if(ov.equal(ov.divide(a,n),e)){var o=function(e,t){var n=ov.add(e,t);return ov.bitwiseAnd(n,qw)}(i,a);if(ov.greaterThanOrEqual(o,i))return DT.mulDivRoundingUp(i,e,o)}return DT.mulDivRoundingUp(i,NT,ov.add(ov.divide(i,e),n))}var s=LT(n,e);ov.equal(ov.divide(s,n),e)||uv(!1),ov.greaterThan(i,s)||uv(!1);var u=ov.subtract(i,s);return DT.mulDivRoundingUp(i,e,u)},e.getNextSqrtPriceFromAmount1RoundingDown=function(e,t,n,r){if(r){var i=ov.lessThanOrEqual(n,FT)?ov.divide(ov.leftShift(n,ov.BigInt(96)),t):ov.divide(ov.multiply(n,xT),t);return ov.add(e,i)}var a=DT.mulDivRoundingUp(n,xT,t);return ov.greaterThan(e,a)||uv(!1),ov.subtract(e,a)},e}(),qT=ov.exponentiate(ov.BigInt(10),ov.BigInt(6)),jT=function(){function e(){}return e.computeSwapStep=function(e,t,n,r,i){var a={},o=ov.greaterThanOrEqual(e,t),s=ov.greaterThanOrEqual(r,ST);if(s){var u=ov.divide(ov.multiply(r,ov.subtract(qT,ov.BigInt(i))),qT);a.amountIn=o?UT.getAmount0Delta(t,e,n,!0):UT.getAmount1Delta(e,t,n,!0),ov.greaterThanOrEqual(u,a.amountIn)?a.sqrtRatioNextX96=t:a.sqrtRatioNextX96=UT.getNextSqrtPriceFromInput(e,n,u,o)}else a.amountOut=o?UT.getAmount1Delta(t,e,n,!1):UT.getAmount0Delta(e,t,n,!1),ov.greaterThanOrEqual(ov.multiply(r,kT),a.amountOut)?a.sqrtRatioNextX96=t:a.sqrtRatioNextX96=UT.getNextSqrtPriceFromOutput(e,n,ov.multiply(r,kT),o);var c=ov.equal(t,a.sqrtRatioNextX96);return o?(a.amountIn=c&&s?a.amountIn:UT.getAmount0Delta(a.sqrtRatioNextX96,e,n,!0),a.amountOut=c&&!s?a.amountOut:UT.getAmount1Delta(a.sqrtRatioNextX96,e,n,!1)):(a.amountIn=c&&s?a.amountIn:UT.getAmount1Delta(e,a.sqrtRatioNextX96,n,!0),a.amountOut=c&&!s?a.amountOut:UT.getAmount0Delta(e,a.sqrtRatioNextX96,n,!1)),!s&&ov.greaterThan(a.amountOut,ov.multiply(r,kT))&&(a.amountOut=ov.multiply(r,kT)),s&&ov.notEqual(a.sqrtRatioNextX96,t)?a.feeAmount=ov.subtract(r,a.amountIn):a.feeAmount=DT.mulDivRoundingUp(a.amountIn,ov.BigInt(i),ov.subtract(qT,ov.BigInt(i))),[a.sqrtRatioNextX96,a.amountIn,a.amountOut,a.feeAmount]},e}(),GT=ov.BigInt(2),HT=[128,64,32,16,8,4,2,1].map((function(e){return[e,ov.exponentiate(GT,ov.BigInt(e))]}));function zT(e){ov.greaterThan(e,ST)||uv(!1),ov.lessThanOrEqual(e,qw)||uv(!1);for(var t,n=0,r=TT(HT);!(t=r()).done;){var i=t.value,a=i[0],o=i[1];ov.greaterThanOrEqual(e,o)&&(e=ov.signedRightShift(e,ov.BigInt(a)),n+=a)}return n}function VT(e,t){return ov.signedRightShift(ov.multiply(e,ov.BigInt(t)),ov.BigInt(128))}var WT=ov.exponentiate(ov.BigInt(2),ov.BigInt(32)),KT=function(){function e(){}return e.getSqrtRatioAtTick=function(t){t>=e.MIN_TICK&&t<=e.MAX_TICK&&Number.isInteger(t)||uv(!1);var n=t<0?-1*t:t,r=0!=(1&n)?ov.BigInt("0xfffcb933bd6fad37aa2d162d1a594001"):ov.BigInt("0x100000000000000000000000000000000");return 0!=(2&n)&&(r=VT(r,"0xfff97272373d413259a46990580e213a")),0!=(4&n)&&(r=VT(r,"0xfff2e50f5f656932ef12357cf3c7fdcc")),0!=(8&n)&&(r=VT(r,"0xffe5caca7e10e4e61c3624eaa0941cd0")),0!=(16&n)&&(r=VT(r,"0xffcb9843d60f6159c9db58835c926644")),0!=(32&n)&&(r=VT(r,"0xff973b41fa98c081472e6896dfb254c0")),0!=(64&n)&&(r=VT(r,"0xff2ea16466c96a3843ec78b326b52861")),0!=(128&n)&&(r=VT(r,"0xfe5dee046a99a2a811c461f1969c3053")),0!=(256&n)&&(r=VT(r,"0xfcbe86c7900a88aedcffc83b479aa3a4")),0!=(512&n)&&(r=VT(r,"0xf987a7253ac413176f2b074cf7815e54")),0!=(1024&n)&&(r=VT(r,"0xf3392b0822b70005940c7a398e4b70f3")),0!=(2048&n)&&(r=VT(r,"0xe7159475a2c29b7443b29c7fa6e889d9")),0!=(4096&n)&&(r=VT(r,"0xd097f3bdfd2022b8845ad8f792aa5825")),0!=(8192&n)&&(r=VT(r,"0xa9f746462d870fdf8a65dc1f90e061e5")),0!=(16384&n)&&(r=VT(r,"0x70d869a156d2a1b890bb3df62baf32f7")),0!=(32768&n)&&(r=VT(r,"0x31be135f97d08fd981231505542fcfa6")),0!=(65536&n)&&(r=VT(r,"0x9aa508b5b7a84e1c677de54f3e99bc9")),0!=(131072&n)&&(r=VT(r,"0x5d6af8dedb81196699c329225ee604")),0!=(262144&n)&&(r=VT(r,"0x2216e584f5fa1ea926041bedfe98")),0!=(524288&n)&&(r=VT(r,"0x48a170391f7dc42444e8fa2")),t>0&&(r=ov.divide(qw,r)),ov.greaterThan(ov.remainder(r,WT),ST)?ov.add(ov.divide(r,WT),NT):ov.divide(r,WT)},e.getTickAtSqrtRatio=function(t){ov.greaterThanOrEqual(t,e.MIN_SQRT_RATIO)&&ov.lessThan(t,e.MAX_SQRT_RATIO)||uv(!1);var n,r=ov.leftShift(t,ov.BigInt(32)),i=zT(r);n=ov.greaterThanOrEqual(ov.BigInt(i),ov.BigInt(128))?ov.signedRightShift(r,ov.BigInt(i-127)):ov.leftShift(r,ov.BigInt(127-i));for(var a=ov.leftShift(ov.subtract(ov.BigInt(i),ov.BigInt(128)),ov.BigInt(64)),o=0;o<14;o++){n=ov.signedRightShift(ov.multiply(n,n),ov.BigInt(127));var s=ov.signedRightShift(n,ov.BigInt(128));a=ov.bitwiseOr(a,ov.leftShift(s,ov.BigInt(63-o))),n=ov.signedRightShift(n,s)}var u=ov.multiply(a,ov.BigInt("255738958999603826347141")),c=ov.toNumber(ov.signedRightShift(ov.subtract(u,ov.BigInt("3402992956809132418596140100660247210")),ov.BigInt(128))),l=ov.toNumber(ov.signedRightShift(ov.add(u,ov.BigInt("291339464771989622907027621153398088495")),ov.BigInt(128)));return c===l?c:ov.lessThanOrEqual(e.getSqrtRatioAtTick(l),t)?l:c},e}();KT.MIN_TICK=-887272,KT.MAX_TICK=-KT.MIN_TICK,KT.MIN_SQRT_RATIO=ov.BigInt("4295128739"),KT.MAX_SQRT_RATIO=ov.BigInt("1461446703485210103287273052203988822378723970342");var XT=function(){function e(){}var t=e.prototype;return t.getTick=function(){var t=yT(_T.mark((function t(n){return _T.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error(e.ERROR_MESSAGE);case 1:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),t.nextInitializedTickWithinOneWord=function(){var t=yT(_T.mark((function t(n,r,i){return _T.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error(e.ERROR_MESSAGE);case 1:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),e}();function JT(e,t){for(var n=0;n<e.length-1;n++)if(t(e[n],e[n+1])>0)return!1;return!0}function YT(e,t){return e.index-t.index}XT.ERROR_MESSAGE="No tick data provider was given";var QT=function(){function e(){}return e.validateList=function(e,t){t>0||uv(!1),e.every((function(e){return e.index%t==0}))||uv(!1),ov.equal(e.reduce((function(e,t){var n=t.liquidityNet;return ov.add(e,n)}),ST),ST)||uv(!1),JT(e,YT)||uv(!1)},e.isBelowSmallest=function(e,t){return e.length>0||uv(!1),t<e[0].index},e.isAtOrAboveLargest=function(e,t){return e.length>0||uv(!1),t>=e[e.length-1].index},e.getTick=function(e,t){var n=e[this.binarySearch(e,t)];return n.index!==t&&uv(!1),n},e.binarySearch=function(e,t){this.isBelowSmallest(e,t)&&uv(!1);for(var n,r=0,i=e.length-1;;){if(e[n=Math.floor((r+i)/2)].index<=t&&(n===e.length-1||e[n+1].index>t))return n;e[n].index<t?r=n+1:i=n-1}},e.nextInitializedTick=function(t,n,r){return r?(e.isBelowSmallest(t,n)&&uv(!1),e.isAtOrAboveLargest(t,n)?t[t.length-1]:t[this.binarySearch(t,n)]):(this.isAtOrAboveLargest(t,n)&&uv(!1),this.isBelowSmallest(t,n)?t[0]:t[this.binarySearch(t,n)+1])},e.nextInitializedTickWithinOneWord=function(t,n,r,i){var a=Math.floor(n/i);if(r){var o=(a>>8<<8)*i;if(e.isBelowSmallest(t,n))return[o,!1];var s=e.nextInitializedTick(t,n,r).index,u=Math.max(o,s);return[u,u===s]}var c=(((a+1>>8)+1<<8)-1)*i;if(this.isAtOrAboveLargest(t,n))return[c,!1];var l=this.nextInitializedTick(t,n,r).index,d=Math.min(c,l);return[d,d===l]},e}();function $T(e){var t=ov.BigInt(e).toString(16);return t.length%2!=0&&(t="0"+t),"0x"+t}function ZT(e,t){var n=e.input.wrapped,r=e.pools.reduce((function(e,t,n){var r=e.inputToken,i=e.path,a=e.types,o=t.token0.equals(r)?t.token1:t.token0;return 0===n?{inputToken:o,types:["address","uint24","address"],path:[r.address,t.fee,o.address]}:{inputToken:o,types:[].concat(a,["uint24","address"]),path:[].concat(i,[t.fee,o.address])}}),{inputToken:n,path:[],types:[]}),i=r.path,a=r.types;return t?wh(a.reverse(),i.reverse()):wh(a,i)}function eA(e,t){var n=ov.leftShift(ov.BigInt(e),ov.BigInt(192)),r=ov.BigInt(t);return function(e){if(ov.greaterThanOrEqual(e,iT)||uv(!1),ov.lessThan(e,rT))return ov.BigInt(Math.floor(Math.sqrt(ov.toNumber(e))));var t,n;for(t=e,n=ov.add(ov.divide(e,oT),aT);ov.lessThan(n,t);)t=n,n=ov.divide(ov.add(ov.divide(e,n),n),oT);return t}(ov.divide(n,r))}function tA(e,t,n){if(ov.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}var i=ov.divide(ov.multiply(e,t),xT);return ov.divide(ov.multiply(ov.BigInt(n),i),ov.subtract(t,e))}function nA(e,t,n){if(ov.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}var i=ov.multiply(ov.multiply(ov.BigInt(n),e),t),a=ov.multiply(xT,ov.subtract(t,e));return ov.divide(i,a)}function rA(e,t,n){if(ov.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}return ov.divide(ov.multiply(ov.BigInt(n),xT),ov.subtract(t,e))}function iA(e,t,n,r,i,a){if(ov.greaterThan(t,n)){var o=[n,t];t=o[0],n=o[1]}var s=a?nA:tA;if(ov.lessThanOrEqual(e,t))return s(t,n,r);if(ov.lessThan(e,n)){var u=s(e,n,r),c=rA(t,e,i);return ov.lessThan(u,c)?u:c}return rA(t,n,i)}var aA=ov.exponentiate(ov.BigInt(2),ov.BigInt(128)),oA=function(){function e(){}return e.getTokensOwed=function(e,t,n,r,i){return[ov.divide(ov.multiply(cA(r,e),n),aA),ov.divide(ov.multiply(cA(i,t),n),aA)]},e}();function sA(e,t,n){var r=KT.getSqrtRatioAtTick(n),i=ov.multiply(r,r);return e.sortsBefore(t)?new Qw(e,t,PT,i):new Qw(e,t,i,PT)}var uA=ov.exponentiate(ov.BigInt(2),ov.BigInt(256));function cA(e,t){var n=ov.subtract(e,t);return ov.lessThan(n,ST)?ov.add(uA,n):n}var lA=function(){function e(){}return e.getFeeGrowthInside=function(e,t,n,r,i,a,o){var s,u,c,l;return i>=n?(s=e.feeGrowthOutside0X128,u=e.feeGrowthOutside1X128):(s=cA(a,e.feeGrowthOutside0X128),u=cA(o,e.feeGrowthOutside1X128)),i<r?(c=t.feeGrowthOutside0X128,l=t.feeGrowthOutside1X128):(c=cA(a,t.feeGrowthOutside0X128),l=cA(o,t.feeGrowthOutside1X128)),[cA(cA(a,s),c),cA(cA(o,u),l)]},e}(),dA=function(e){var t=e.index,n=e.liquidityGross,r=e.liquidityNet;t>=KT.MIN_TICK&&t<=KT.MAX_TICK||uv(!1),this.index=t,this.liquidityGross=ov.BigInt(n),this.liquidityNet=ov.BigInt(r)},fA=function(){function e(e,t){var n=e.map((function(e){return e instanceof dA?e:new dA(e)}));QT.validateList(n,t),this.ticks=n}var t=e.prototype;return t.getTick=function(){var e=yT(_T.mark((function e(t){return _T.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",QT.getTick(this.ticks,t));case 1:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.nextInitializedTickWithinOneWord=function(){var e=yT(_T.mark((function e(t,n,r){return _T.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",QT.nextInitializedTickWithinOneWord(this.ticks,t,n,r));case 1:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),e}(),pA=new XT,hA=function(){function e(e,t,n,r,i,a,o){void 0===o&&(o=pA),Number.isInteger(n)&&n<1e6||uv(!1);var s=KT.getSqrtRatioAtTick(a),u=KT.getSqrtRatioAtTick(a+1);ov.greaterThanOrEqual(ov.BigInt(r),s)&&ov.lessThanOrEqual(ov.BigInt(r),u)||uv(!1);var c=e.sortsBefore(t)?[e,t]:[t,e];this.token0=c[0],this.token1=c[1],this.fee=n,this.sqrtRatioX96=ov.BigInt(r),this.liquidity=ov.BigInt(i),this.tickCurrent=a,this.tickDataProvider=Array.isArray(o)?new fA(o,OT[n]):o}e.getAddress=function(e,t,n,r,i){return MT({factoryAddress:null!=i?i:IT,fee:n,tokenA:e,tokenB:t,initCodeHashManualOverride:r})};var t=e.prototype;return t.involvesToken=function(e){return e.equals(this.token0)||e.equals(this.token1)},t.priceOf=function(e){return this.involvesToken(e)||uv(!1),e.equals(this.token0)?this.token0Price:this.token1Price},t.getOutputAmount=function(){var t=yT(_T.mark((function t(n,r){var i,a,o,s,u,c,l;return _T.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.involvesToken(n.currency)||uv(!1),i=n.currency.equals(this.token0),t.next=4,this.swap(i,n.quotient,r);case 4:return a=t.sent,o=a.amountCalculated,s=a.sqrtRatioX96,u=a.liquidity,c=a.tickCurrent,l=i?this.token1:this.token0,t.abrupt("return",[Kw.fromRawAmount(l,ov.multiply(o,kT)),new e(this.token0,this.token1,this.fee,s,u,c,this.tickDataProvider)]);case 11:case"end":return t.stop()}}),t,this)})));return function(e,n){return t.apply(this,arguments)}}(),t.getInputAmount=function(){var t=yT(_T.mark((function t(n,r){var i,a,o,s,u,c,l;return _T.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n.currency.isToken&&this.involvesToken(n.currency)||uv(!1),i=n.currency.equals(this.token1),t.next=4,this.swap(i,ov.multiply(n.quotient,kT),r);case 4:return a=t.sent,o=a.amountCalculated,s=a.sqrtRatioX96,u=a.liquidity,c=a.tickCurrent,l=i?this.token0:this.token1,t.abrupt("return",[Kw.fromRawAmount(l,o),new e(this.token0,this.token1,this.fee,s,u,c,this.tickDataProvider)]);case 11:case"end":return t.stop()}}),t,this)})));return function(e,n){return t.apply(this,arguments)}}(),t.swap=function(){var e=yT(_T.mark((function e(t,n,r){var i,a,o,s,u,c;return _T.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r||(r=t?ov.add(KT.MIN_SQRT_RATIO,NT):ov.subtract(KT.MAX_SQRT_RATIO,NT)),t?(ov.greaterThan(r,KT.MIN_SQRT_RATIO)||uv(!1),ov.lessThan(r,this.sqrtRatioX96)||uv(!1)):(ov.lessThan(r,KT.MAX_SQRT_RATIO)||uv(!1),ov.greaterThan(r,this.sqrtRatioX96)||uv(!1)),i=ov.greaterThanOrEqual(n,ST),a={amountSpecifiedRemaining:n,amountCalculated:ST,sqrtPriceX96:this.sqrtRatioX96,tick:this.tickCurrent,liquidity:this.liquidity};case 4:if(!ov.notEqual(a.amountSpecifiedRemaining,ST)||a.sqrtPriceX96==r){e.next=35;break}return(o={}).sqrtPriceStartX96=a.sqrtPriceX96,e.next=9,this.tickDataProvider.nextInitializedTickWithinOneWord(a.tick,t,this.tickSpacing);case 9:if(s=e.sent,o.tickNext=s[0],o.initialized=s[1],o.tickNext<KT.MIN_TICK?o.tickNext=KT.MIN_TICK:o.tickNext>KT.MAX_TICK&&(o.tickNext=KT.MAX_TICK),o.sqrtPriceNextX96=KT.getSqrtRatioAtTick(o.tickNext),u=jT.computeSwapStep(a.sqrtPriceX96,(t?ov.lessThan(o.sqrtPriceNextX96,r):ov.greaterThan(o.sqrtPriceNextX96,r))?r:o.sqrtPriceNextX96,a.liquidity,a.amountSpecifiedRemaining,this.fee),a.sqrtPriceX96=u[0],o.amountIn=u[1],o.amountOut=u[2],o.feeAmount=u[3],i?(a.amountSpecifiedRemaining=ov.subtract(a.amountSpecifiedRemaining,ov.add(o.amountIn,o.feeAmount)),a.amountCalculated=ov.subtract(a.amountCalculated,o.amountOut)):(a.amountSpecifiedRemaining=ov.add(a.amountSpecifiedRemaining,o.amountOut),a.amountCalculated=ov.add(a.amountCalculated,ov.add(o.amountIn,o.feeAmount))),!ov.equal(a.sqrtPriceX96,o.sqrtPriceNextX96)){e.next=32;break}if(!o.initialized){e.next=29;break}return e.t0=ov,e.next=25,this.tickDataProvider.getTick(o.tickNext);case 25:e.t1=e.sent.liquidityNet,c=e.t0.BigInt.call(e.t0,e.t1),t&&(c=ov.multiply(c,kT)),a.liquidity=BT.addDelta(a.liquidity,c);case 29:a.tick=t?o.tickNext-1:o.tickNext,e.next=33;break;case 32:ov.notEqual(a.sqrtPriceX96,o.sqrtPriceStartX96)&&(a.tick=KT.getTickAtSqrtRatio(a.sqrtPriceX96));case 33:e.next=4;break;case 35:return e.abrupt("return",{amountCalculated:a.amountCalculated,sqrtRatioX96:a.sqrtPriceX96,liquidity:a.liquidity,tickCurrent:a.tick});case 36:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),bT(e,[{key:"token0Price",get:function(){var e;return null!=(e=this._token0Price)?e:this._token0Price=new Qw(this.token0,this.token1,PT,ov.multiply(this.sqrtRatioX96,this.sqrtRatioX96))}},{key:"token1Price",get:function(){var e;return null!=(e=this._token1Price)?e:this._token1Price=new Qw(this.token1,this.token0,ov.multiply(this.sqrtRatioX96,this.sqrtRatioX96),PT)}},{key:"chainId",get:function(){return this.token0.chainId}},{key:"tickSpacing",get:function(){return OT[this.fee]}}]),e}(),mA=function(){function e(e){var t=e.pool,n=e.liquidity,r=e.tickLower,i=e.tickUpper;this._token0Amount=null,this._token1Amount=null,this._mintAmounts=null,r<i||uv(!1),r>=KT.MIN_TICK&&r%t.tickSpacing==0||uv(!1),i<=KT.MAX_TICK&&i%t.tickSpacing==0||uv(!1),this.pool=t,this.tickLower=r,this.tickUpper=i,this.liquidity=ov.BigInt(n)}var t=e.prototype;return t.ratiosAfterSlippage=function(e){var t=this.pool.token0Price.asFraction.multiply(new Yw(1).subtract(e)),n=this.pool.token0Price.asFraction.multiply(e.add(1)),r=eA(t.numerator,t.denominator);ov.lessThanOrEqual(r,KT.MIN_SQRT_RATIO)&&(r=ov.add(KT.MIN_SQRT_RATIO,ov.BigInt(1)));var i=eA(n.numerator,n.denominator);return ov.greaterThanOrEqual(i,KT.MAX_SQRT_RATIO)&&(i=ov.subtract(KT.MAX_SQRT_RATIO,ov.BigInt(1))),{sqrtRatioX96Lower:r,sqrtRatioX96Upper:i}},t.mintAmountsWithSlippage=function(t){var n=this.ratiosAfterSlippage(t),r=n.sqrtRatioX96Upper,i=n.sqrtRatioX96Lower,a=new hA(this.pool.token0,this.pool.token1,this.pool.fee,i,0,KT.getTickAtSqrtRatio(i)),o=new hA(this.pool.token0,this.pool.token1,this.pool.fee,r,0,KT.getTickAtSqrtRatio(r)),s=e.fromAmounts(vT({pool:this.pool,tickLower:this.tickLower,tickUpper:this.tickUpper},this.mintAmounts,{useFullPrecision:!1}));return{amount0:new e({pool:o,liquidity:s.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount0,amount1:new e({pool:a,liquidity:s.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount1}},t.burnAmountsWithSlippage=function(t){var n=this.ratiosAfterSlippage(t),r=n.sqrtRatioX96Upper,i=n.sqrtRatioX96Lower,a=new hA(this.pool.token0,this.pool.token1,this.pool.fee,i,0,KT.getTickAtSqrtRatio(i)),o=new e({pool:new hA(this.pool.token0,this.pool.token1,this.pool.fee,r,0,KT.getTickAtSqrtRatio(r)),liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount0,s=new e({pool:a,liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount1;return{amount0:o.quotient,amount1:s.quotient}},e.fromAmounts=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,a=t.amount0,o=t.amount1,s=t.useFullPrecision,u=KT.getSqrtRatioAtTick(r),c=KT.getSqrtRatioAtTick(i);return new e({pool:n,tickLower:r,tickUpper:i,liquidity:iA(n.sqrtRatioX96,u,c,a,o,s)})},e.fromAmount0=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,a=t.amount0,o=t.useFullPrecision;return e.fromAmounts({pool:n,tickLower:r,tickUpper:i,amount0:a,amount1:qw,useFullPrecision:o})},e.fromAmount1=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,a=t.amount1;return e.fromAmounts({pool:n,tickLower:r,tickUpper:i,amount0:qw,amount1:a,useFullPrecision:!0})},bT(e,[{key:"token0PriceLower",get:function(){return sA(this.pool.token0,this.pool.token1,this.tickLower)}},{key:"token0PriceUpper",get:function(){return sA(this.pool.token0,this.pool.token1,this.tickUpper)}},{key:"amount0",get:function(){return null===this._token0Amount&&(this.pool.tickCurrent<this.tickLower?this._token0Amount=Kw.fromRawAmount(this.pool.token0,UT.getAmount0Delta(KT.getSqrtRatioAtTick(this.tickLower),KT.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this.pool.tickCurrent<this.tickUpper?this._token0Amount=Kw.fromRawAmount(this.pool.token0,UT.getAmount0Delta(this.pool.sqrtRatioX96,KT.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this._token0Amount=Kw.fromRawAmount(this.pool.token0,ST)),this._token0Amount}},{key:"amount1",get:function(){return null===this._token1Amount&&(this.pool.tickCurrent<this.tickLower?this._token1Amount=Kw.fromRawAmount(this.pool.token1,ST):this.pool.tickCurrent<this.tickUpper?this._token1Amount=Kw.fromRawAmount(this.pool.token1,UT.getAmount1Delta(KT.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!1)):this._token1Amount=Kw.fromRawAmount(this.pool.token1,UT.getAmount1Delta(KT.getSqrtRatioAtTick(this.tickLower),KT.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1))),this._token1Amount}},{key:"mintAmounts",get:function(){return null===this._mintAmounts?this.pool.tickCurrent<this.tickLower?{amount0:UT.getAmount0Delta(KT.getSqrtRatioAtTick(this.tickLower),KT.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:ST}:this.pool.tickCurrent<this.tickUpper?{amount0:UT.getAmount0Delta(this.pool.sqrtRatioX96,KT.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:UT.getAmount1Delta(KT.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!0)}:{amount0:ST,amount1:UT.getAmount1Delta(KT.getSqrtRatioAtTick(this.tickLower),KT.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0)}:this._mintAmounts}}]),e}(),yA=function(){function e(e,t,n){this._midPrice=null,e.length>0||uv(!1);var r=e[0].chainId,i=e.every((function(e){return e.chainId===r}));i||uv(!1);var a=t.wrapped;e[0].involvesToken(a)||uv(!1),e[e.length-1].involvesToken(n.wrapped)||uv(!1);for(var o,s=[a],u=TT(e.entries());!(o=u()).done;){var c=o.value,l=c[0],d=c[1],f=s[l];f.equals(d.token0)||f.equals(d.token1)||uv(!1);var p=f.equals(d.token0)?d.token1:d.token0;s.push(p)}this.pools=e,this.tokenPath=s,this.input=t,this.output=null!=n?n:s[s.length-1]}return bT(e,[{key:"chainId",get:function(){return this.pools[0].chainId}},{key:"midPrice",get:function(){if(null!==this._midPrice)return this._midPrice;var e=this.pools.slice(1).reduce((function(e,t){var n=e.nextInput,r=e.price;return n.equals(t.token0)?{nextInput:t.token1,price:r.multiply(t.token0Price)}:{nextInput:t.token0,price:r.multiply(t.token1Price)}}),this.pools[0].token0.equals(this.input.wrapped)?{nextInput:this.pools[0].token1,price:this.pools[0].token0Price}:{nextInput:this.pools[0].token0,price:this.pools[0].token1Price}).price;return this._midPrice=new Qw(this.input,this.output,e.denominator,e.numerator)}}]),e}();function gA(e,t){return e.inputAmount.currency.equals(t.inputAmount.currency)||uv(!1),e.outputAmount.currency.equals(t.outputAmount.currency)||uv(!1),e.outputAmount.equalTo(t.outputAmount)?e.inputAmount.equalTo(t.inputAmount)?e.swaps.reduce((function(e,t){return e+t.route.tokenPath.length}),0)-t.swaps.reduce((function(e,t){return e+t.route.tokenPath.length}),0):e.inputAmount.lessThan(t.inputAmount)?-1:1:e.outputAmount.lessThan(t.outputAmount)?1:-1}var bA=function(){function e(e){var t=e.routes,n=e.tradeType,r=t[0].inputAmount.currency,i=t[0].outputAmount.currency;t.every((function(e){var t=e.route;return r.wrapped.equals(t.input.wrapped)}))||uv(!1),t.every((function(e){var t=e.route;return i.wrapped.equals(t.output.wrapped)}))||uv(!1);for(var a,o=t.map((function(e){return e.route.pools.length})).reduce((function(e,t){return e+t}),0),s=new Set,u=TT(t);!(a=u()).done;)for(var c,l=TT(a.value.route.pools);!(c=l()).done;){var d=c.value;s.add(hA.getAddress(d.token0,d.token1,d.fee))}o!=s.size&&uv(!1),this.swaps=t,this.tradeType=n}e.exactIn=function(){var t=yT(_T.mark((function t(n,r){return _T.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.fromRoute(n,r,kw.EXACT_INPUT));case 1:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.exactOut=function(){var t=yT(_T.mark((function t(n,r){return _T.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.fromRoute(n,r,kw.EXACT_OUTPUT));case 1:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.fromRoute=function(){var t=yT(_T.mark((function t(n,r,i){var a,o,s,u,c,l,d,f,p,h,m;return _T.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=new Array(n.tokenPath.length),i!==kw.EXACT_INPUT){t.next=19;break}r.currency.equals(n.input)||uv(!1),a[0]=r.wrapped,u=0;case 5:if(!(u<n.tokenPath.length-1)){t.next=15;break}return c=n.pools[u],t.next=9,c.getOutputAmount(a[u]);case 9:l=t.sent,d=l[0],a[u+1]=d;case 12:u++,t.next=5;break;case 15:o=Kw.fromFractionalAmount(n.input,r.numerator,r.denominator),s=Kw.fromFractionalAmount(n.output,a[a.length-1].numerator,a[a.length-1].denominator),t.next=34;break;case 19:r.currency.equals(n.output)||uv(!1),a[a.length-1]=r.wrapped,f=n.tokenPath.length-1;case 22:if(!(f>0)){t.next=32;break}return p=n.pools[f-1],t.next=26,p.getInputAmount(a[f]);case 26:h=t.sent,m=h[0],a[f-1]=m;case 29:f--,t.next=22;break;case 32:o=Kw.fromFractionalAmount(n.input,a[0].numerator,a[0].denominator),s=Kw.fromFractionalAmount(n.output,r.numerator,r.denominator);case 34:return t.abrupt("return",new e({routes:[{inputAmount:o,outputAmount:s,route:n}],tradeType:i}));case 35:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),e.fromRoutes=function(){var t=yT(_T.mark((function t(n,r){var i,a,o,s,u,c,l,d,f,p,h,m,y,g,b,v,w;return _T.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:i=[],a=TT(n);case 2:if((o=a()).done){t.next=43;break}if(s=o.value,u=s.route,c=s.amount,l=new Array(u.tokenPath.length),d=void 0,f=void 0,r!==kw.EXACT_INPUT){t.next=25;break}c.currency.equals(u.input)||uv(!1),d=Kw.fromFractionalAmount(u.input,c.numerator,c.denominator),l[0]=Kw.fromFractionalAmount(u.input.wrapped,c.numerator,c.denominator),p=0;case 12:if(!(p<u.tokenPath.length-1)){t.next=22;break}return h=u.pools[p],t.next=16,h.getOutputAmount(l[p]);case 16:m=t.sent,y=m[0],l[p+1]=y;case 19:p++,t.next=12;break;case 22:f=Kw.fromFractionalAmount(u.output,l[l.length-1].numerator,l[l.length-1].denominator),t.next=40;break;case 25:c.currency.equals(u.output)||uv(!1),f=Kw.fromFractionalAmount(u.output,c.numerator,c.denominator),l[l.length-1]=Kw.fromFractionalAmount(u.output.wrapped,c.numerator,c.denominator),g=u.tokenPath.length-1;case 29:if(!(g>0)){t.next=39;break}return b=u.pools[g-1],t.next=33,b.getInputAmount(l[g]);case 33:v=t.sent,w=v[0],l[g-1]=w;case 36:g--,t.next=29;break;case 39:d=Kw.fromFractionalAmount(u.input,l[0].numerator,l[0].denominator);case 40:i.push({route:u,inputAmount:d,outputAmount:f});case 41:t.next=2;break;case 43:return t.abrupt("return",new e({routes:i,tradeType:r}));case 44:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.createUncheckedTrade=function(t){return new e(vT({},t,{routes:[{inputAmount:t.inputAmount,outputAmount:t.outputAmount,route:t.route}]}))},e.createUncheckedTradeWithMultipleRoutes=function(t){return new e(t)};var t=e.prototype;return t.minimumAmountOut=function(e,t){if(void 0===t&&(t=this.outputAmount),e.lessThan(ST)&&uv(!1),this.tradeType===kw.EXACT_OUTPUT)return t;var n=new Vw(NT).add(e).invert().multiply(t.quotient).quotient;return Kw.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){if(void 0===t&&(t=this.inputAmount),e.lessThan(ST)&&uv(!1),this.tradeType===kw.EXACT_INPUT)return t;var n=new Vw(NT).add(e).multiply(t.quotient).quotient;return Kw.fromRawAmount(t.currency,n)},t.worstExecutionPrice=function(e){return new Qw(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactIn=function(){var t=yT(_T.mark((function t(n,r,i,a,o,s,u){var c,l,d,f,p,h,m,y,g,b,v,w;return _T.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:l=(c=void 0===a?{}:a).maxNumResults,d=void 0===l?3:l,f=c.maxHops,p=void 0===f?3:f,void 0===o&&(o=[]),void 0===s&&(s=r),void 0===u&&(u=[]),n.length>0||uv(!1),p>0||uv(!1),r===s||o.length>0||uv(!1),h=s.wrapped,m=i.wrapped,y=0;case 10:if(!(y<n.length)){t.next=46;break}if((g=n[y]).token0.equals(h.currency)||g.token1.equals(h.currency)){t.next=14;break}return t.abrupt("continue",43);case 14:return b=void 0,t.prev=15,t.next=19,g.getOutputAmount(h);case 19:v=t.sent,b=v[0],t.next=28;break;case 23:if(t.prev=23,t.t0=t.catch(15),!t.t0.isInsufficientInputAmountError){t.next=27;break}return t.abrupt("continue",43);case 27:throw t.t0;case 28:if(!b.currency.isToken||!b.currency.equals(m)){t.next=39;break}return t.t1=nT,t.t2=u,t.next=33,e.fromRoute(new yA([].concat(o,[g]),r.currency,i),r,kw.EXACT_INPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=gA,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=43;break;case 39:if(!(p>1&&n.length>1)){t.next=43;break}return w=n.slice(0,y).concat(n.slice(y+1,n.length)),t.next=43,e.bestTradeExactIn(w,r,i,{maxNumResults:d,maxHops:p-1},[].concat(o,[g]),b,u);case 43:y++,t.next=10;break;case 46:return t.abrupt("return",u);case 47:case"end":return t.stop()}}),t,null,[[15,23]])})));return function(e,n,r,i,a,o,s){return t.apply(this,arguments)}}(),e.bestTradeExactOut=function(){var t=yT(_T.mark((function t(n,r,i,a,o,s,u){var c,l,d,f,p,h,m,y,g,b,v,w;return _T.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:l=(c=void 0===a?{}:a).maxNumResults,d=void 0===l?3:l,f=c.maxHops,p=void 0===f?3:f,void 0===o&&(o=[]),void 0===s&&(s=i),void 0===u&&(u=[]),n.length>0||uv(!1),p>0||uv(!1),i===s||o.length>0||uv(!1),h=s.wrapped,m=r.wrapped,y=0;case 10:if(!(y<n.length)){t.next=46;break}if((g=n[y]).token0.equals(h.currency)||g.token1.equals(h.currency)){t.next=14;break}return t.abrupt("continue",43);case 14:return b=void 0,t.prev=15,t.next=19,g.getInputAmount(h);case 19:v=t.sent,b=v[0],t.next=28;break;case 23:if(t.prev=23,t.t0=t.catch(15),!t.t0.isInsufficientReservesError){t.next=27;break}return t.abrupt("continue",43);case 27:throw t.t0;case 28:if(!b.currency.equals(m)){t.next=39;break}return t.t1=nT,t.t2=u,t.next=33,e.fromRoute(new yA([g].concat(o),r,i.currency),i,kw.EXACT_OUTPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=gA,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=43;break;case 39:if(!(p>1&&n.length>1)){t.next=43;break}return w=n.slice(0,y).concat(n.slice(y+1,n.length)),t.next=43,e.bestTradeExactOut(w,r,i,{maxNumResults:d,maxHops:p-1},[g].concat(o),b,u);case 43:y++,t.next=10;break;case 46:return t.abrupt("return",u);case 47:case"end":return t.stop()}}),t,null,[[15,23]])})));return function(e,n,r,i,a,o,s){return t.apply(this,arguments)}}(),bT(e,[{key:"route",get:function(){return 1!=this.swaps.length&&uv(!1),this.swaps[0].route}},{key:"inputAmount",get:function(){if(this._inputAmount)return this._inputAmount;var e=this.swaps[0].inputAmount.currency,t=this.swaps.map((function(e){return e.inputAmount})).reduce((function(e,t){return e.add(t)}),Kw.fromRawAmount(e,0));return this._inputAmount=t,this._inputAmount}},{key:"outputAmount",get:function(){if(this._outputAmount)return this._outputAmount;var e=this.swaps[0].outputAmount.currency,t=this.swaps.map((function(e){return e.outputAmount})).reduce((function(e,t){return e.add(t)}),Kw.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:"executionPrice",get:function(){var e;return null!=(e=this._executionPrice)?e:this._executionPrice=new Qw(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:"priceImpact",get:function(){if(this._priceImpact)return this._priceImpact;for(var e,t=Kw.fromRawAmount(this.outputAmount.currency,0),n=TT(this.swaps);!(e=n()).done;){var r=e.value,i=r.route,a=r.inputAmount,o=i.midPrice;t=t.add(o.quote(a))}var s=t.subtract(this.outputAmount).divide(t);return this._priceImpact=new Yw(s.numerator,s.denominator),this._priceImpact}}]),e}(),vA=function(){function e(){}return e.encodeMulticall=function(t){return Array.isArray(t)||(t=[t]),1===t.length?t[0]:e.INTERFACE.encodeFunctionData("multicall",[t])},e}();vA.INTERFACE=new Lo(sT);var wA=function(){function e(){}return e.encodePermit=function(t,n){return"nonce"in n?e.INTERFACE.encodeFunctionData("selfPermitAllowed",[t.address,$T(n.nonce),$T(n.expiry),n.v,n.r,n.s]):e.INTERFACE.encodeFunctionData("selfPermit",[t.address,$T(n.amount),$T(n.deadline),n.v,n.r,n.s])},e}();wA.INTERFACE=new Lo(cT);var TA=function(){function e(){}return e.encodeFeeBips=function(e){return $T(e.multiply(1e4).quotient)},e.encodeUnwrapWETH9=function(t,n,r){if(n=$w(n),r){var i=this.encodeFeeBips(r.fee),a=$w(r.recipient);return e.INTERFACE.encodeFunctionData("unwrapWETH9WithFee",[$T(t),n,i,a])}return e.INTERFACE.encodeFunctionData("unwrapWETH9",[$T(t),n])},e.encodeSweepToken=function(t,n,r,i){if(r=$w(r),i){var a=this.encodeFeeBips(i.fee),o=$w(i.recipient);return e.INTERFACE.encodeFunctionData("sweepTokenWithFee",[t.address,$T(n),r,a,o])}return e.INTERFACE.encodeFunctionData("sweepToken",[t.address,$T(n),r])},e.encodeRefundETH=function(){return e.INTERFACE.encodeFunctionData("refundETH")},e}();TA.INTERFACE=new Lo(lT);var AA=$T(ov.subtract(ov.exponentiate(ov.BigInt(2),ov.BigInt(128)),ov.BigInt(1)));function EA(e){return Object.keys(e).some((function(e){return"recipient"===e}))}var _A=function(){function e(){}return e.encodeCreate=function(t){return e.INTERFACE.encodeFunctionData("createAndInitializePoolIfNecessary",[t.token0.address,t.token1.address,t.fee,$T(t.sqrtRatioX96)])},e.createCallParameters=function(e){return{calldata:this.encodeCreate(e),value:$T(0)}},e.addCallParameters=function(t,n){ov.greaterThan(t.liquidity,ST)||uv(!1);var r=[],i=t.mintAmounts,a=i.amount0,o=i.amount1,s=t.mintAmountsWithSlippage(n.slippageTolerance),u=$T(s.amount0),c=$T(s.amount1),l=$T(n.deadline);if(EA(n)&&n.createPool&&r.push(this.encodeCreate(t.pool)),n.token0Permit&&r.push(wA.encodePermit(t.pool.token0,n.token0Permit)),n.token1Permit&&r.push(wA.encodePermit(t.pool.token1,n.token1Permit)),EA(n)){var d=$w(n.recipient);r.push(e.INTERFACE.encodeFunctionData("mint",[{token0:t.pool.token0.address,token1:t.pool.token1.address,fee:t.pool.fee,tickLower:t.tickLower,tickUpper:t.tickUpper,amount0Desired:$T(a),amount1Desired:$T(o),amount0Min:u,amount1Min:c,recipient:d,deadline:l}]))}else r.push(e.INTERFACE.encodeFunctionData("increaseLiquidity",[{tokenId:$T(n.tokenId),amount0Desired:$T(a),amount1Desired:$T(o),amount0Min:u,amount1Min:c,deadline:l}]));var f=$T(0);if(n.useNative){var p=n.useNative.wrapped;t.pool.token0.equals(p)||t.pool.token1.equals(p)||uv(!1);var h=t.pool.token0.equals(p)?a:o;ov.greaterThan(h,ST)&&r.push(TA.encodeRefundETH()),f=$T(h)}return{calldata:vA.encodeMulticall(r),value:f}},e.encodeCollect=function(t){var n=[],r=$T(t.tokenId),i=t.expectedCurrencyOwed0.currency.isNative||t.expectedCurrencyOwed1.currency.isNative,a=$w(t.recipient);if(n.push(e.INTERFACE.encodeFunctionData("collect",[{tokenId:r,recipient:i?RT:a,amount0Max:AA,amount1Max:AA}])),i){var o=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed0.quotient:t.expectedCurrencyOwed1.quotient,s=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed1.currency:t.expectedCurrencyOwed0.currency,u=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed1.quotient:t.expectedCurrencyOwed0.quotient;n.push(TA.encodeUnwrapWETH9(o,a)),n.push(TA.encodeSweepToken(s,u,a))}return n},e.collectCallParameters=function(t){var n=e.encodeCollect(t);return{calldata:vA.encodeMulticall(n),value:$T(0)}},e.removeCallParameters=function(t,n){var r=[],i=$T(n.deadline),a=$T(n.tokenId),o=new mA({pool:t.pool,liquidity:n.liquidityPercentage.multiply(t.liquidity).quotient,tickLower:t.tickLower,tickUpper:t.tickUpper});ov.greaterThan(o.liquidity,ST)||uv(!1);var s=o.burnAmountsWithSlippage(n.slippageTolerance),u=s.amount0,c=s.amount1;n.permit&&r.push(e.INTERFACE.encodeFunctionData("permit",[$w(n.permit.spender),a,$T(n.permit.deadline),n.permit.v,n.permit.r,n.permit.s])),r.push(e.INTERFACE.encodeFunctionData("decreaseLiquidity",[{tokenId:a,liquidity:$T(o.liquidity),amount0Min:$T(u),amount1Min:$T(c),deadline:i}]));var l=n.collectOptions,d=l.expectedCurrencyOwed0,f=l.expectedCurrencyOwed1,p=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(l,["expectedCurrencyOwed0","expectedCurrencyOwed1"]);return r.push.apply(r,e.encodeCollect(vT({tokenId:$T(n.tokenId),expectedCurrencyOwed0:d.add(Kw.fromRawAmount(d.currency,u)),expectedCurrencyOwed1:f.add(Kw.fromRawAmount(f.currency,c))},p))),n.liquidityPercentage.equalTo(NT)?n.burnToken&&r.push(e.INTERFACE.encodeFunctionData("burn",[a])):!0===n.burnToken&&uv(!1),{calldata:vA.encodeMulticall(r),value:$T(0)}},e.safeTransferFromParameters=function(t){var n=$w(t.recipient),r=$w(t.sender);return{calldata:t.data?e.INTERFACE.encodeFunctionData("safeTransferFrom(address,address,uint256,bytes)",[r,n,$T(t.tokenId),t.data]):e.INTERFACE.encodeFunctionData("safeTransferFrom(address,address,uint256)",[r,n,$T(t.tokenId)]),value:$T(0)}},e}();_A.INTERFACE=new Lo(uT);var IA=function(){function e(){}return e.quoteCallParameters=function(e,t,n,r){void 0===r&&(r={});var i,a=1===e.pools.length,o=$T(t.quotient),s=r.useQuoterV2?this.V2INTERFACE:this.V1INTERFACE;if(a){var u,c,l={tokenIn:e.tokenPath[0].address,tokenOut:e.tokenPath[1].address,fee:e.pools[0].fee,sqrtPriceLimitX96:$T(null!=(u=null==(c=r)?void 0:c.sqrtPriceLimitX96)?u:0)},d=vT({},l,n==kw.EXACT_INPUT?{amountIn:o}:{amount:o}),f=[l.tokenIn,l.tokenOut,l.fee,o,l.sqrtPriceLimitX96],p=n===kw.EXACT_INPUT?"quoteExactInputSingle":"quoteExactOutputSingle";i=s.encodeFunctionData(p,r.useQuoterV2?[d]:f)}else{var h;void 0!==(null==(h=r)?void 0:h.sqrtPriceLimitX96)&&uv(!1);var m=ZT(e,n===kw.EXACT_OUTPUT),y=n===kw.EXACT_INPUT?"quoteExactInput":"quoteExactOutput";i=s.encodeFunctionData(y,[m,o])}return{calldata:i,value:$T(0)}},e}();IA.V1INTERFACE=new Lo(dT),IA.V2INTERFACE=new Lo(fT);var RA=function(){function e(){}return e.encodeClaim=function(t,n){var r,i=[];i.push(e.INTERFACE.encodeFunctionData("unstakeToken",[this._encodeIncentiveKey(t),$T(n.tokenId)]));var a=$w(n.recipient),o=null!=(r=n.amount)?r:0;return i.push(e.INTERFACE.encodeFunctionData("claimReward",[t.rewardToken.address,a,$T(o)])),i},e.collectRewards=function(t,n){t=Array.isArray(t)?t:[t];for(var r=[],i=0;i<t.length;i++){var a=t[i];(r=r.concat(this.encodeClaim(a,n))).push(e.INTERFACE.encodeFunctionData("stakeToken",[this._encodeIncentiveKey(a),$T(n.tokenId)]))}return{calldata:vA.encodeMulticall(r),value:$T(0)}},e.withdrawToken=function(t,n){var r=[];t=Array.isArray(t)?t:[t];for(var i={tokenId:n.tokenId,recipient:n.recipient,amount:n.amount},a=0;a<t.length;a++){var o=t[a];r=r.concat(this.encodeClaim(o,i))}var s=$w(n.owner);return r.push(e.INTERFACE.encodeFunctionData("withdrawToken",[$T(n.tokenId),s,n.data?n.data:$T(0)])),{calldata:vA.encodeMulticall(r),value:$T(0)}},e.encodeDeposit=function(t){var n;if((t=Array.isArray(t)?t:[t]).length>1){for(var r=[],i=0;i<t.length;i++){var a=t[i];r.push(this._encodeIncentiveKey(a))}n=Na.encode([e.INCENTIVE_KEY_ABI+"[]"],[r])}else n=Na.encode([e.INCENTIVE_KEY_ABI],[this._encodeIncentiveKey(t[0])]);return n},e._encodeIncentiveKey=function(e){var t=e.pool,n=t.token0,r=t.token1,i=t.fee,a=$w(e.refundee);return{rewardToken:e.rewardToken.address,pool:hA.getAddress(n,r,i),startTime:$T(e.startTime),endTime:$T(e.endTime),refundee:a}},e}();RA.INTERFACE=new Lo(pT),RA.INCENTIVE_KEY_ABI="tuple(address rewardToken, address pool, uint256 startTime, uint256 endTime, address refundee)";var CA=function(){function e(){}return e.swapCallParameters=function(t,n){Array.isArray(t)||(t=[t]);var r=t[0],i=r.inputAmount.currency.wrapped,a=r.outputAmount.currency.wrapped;t.every((function(e){return e.inputAmount.currency.wrapped.equals(i)}))||uv(!1),t.every((function(e){return e.outputAmount.currency.wrapped.equals(a)}))||uv(!1);var o=[],s=Kw.fromRawAmount(t[0].inputAmount.currency,0),u=Kw.fromRawAmount(t[0].outputAmount.currency,0),c=t.reduce((function(e,t){return e.add(t.minimumAmountOut(n.slippageTolerance))}),u),l=r.inputAmount.currency.isNative&&r.tradeType===kw.EXACT_OUTPUT,d=r.inputAmount.currency.isNative,f=r.outputAmount.currency.isNative,p=f||!!n.fee,h=d?t.reduce((function(e,t){return e.add(t.maximumAmountIn(n.slippageTolerance))}),s):s;n.inputTokenPermit&&(r.inputAmount.currency.isToken||uv(!1),o.push(wA.encodePermit(r.inputAmount.currency,n.inputTokenPermit)));for(var m,y=$w(n.recipient),g=$T(n.deadline),b=TT(t);!(m=b()).done;)for(var v,w=m.value,T=TT(w.swaps);!(v=T()).done;){var A=v.value,E=A.route,_=A.inputAmount,I=A.outputAmount,R=$T(w.maximumAmountIn(n.slippageTolerance,_).quotient),C=$T(w.minimumAmountOut(n.slippageTolerance,I).quotient);if(1===E.pools.length)if(w.tradeType===kw.EXACT_INPUT){var O,k={tokenIn:E.tokenPath[0].address,tokenOut:E.tokenPath[1].address,fee:E.pools[0].fee,recipient:p?RT:y,deadline:g,amountIn:R,amountOutMinimum:C,sqrtPriceLimitX96:$T(null!=(O=n.sqrtPriceLimitX96)?O:0)};o.push(e.INTERFACE.encodeFunctionData("exactInputSingle",[k]))}else{var S,N={tokenIn:E.tokenPath[0].address,tokenOut:E.tokenPath[1].address,fee:E.pools[0].fee,recipient:p?RT:y,deadline:g,amountOut:C,amountInMaximum:R,sqrtPriceLimitX96:$T(null!=(S=n.sqrtPriceLimitX96)?S:0)};o.push(e.INTERFACE.encodeFunctionData("exactOutputSingle",[N]))}else{void 0!==n.sqrtPriceLimitX96&&uv(!1);var x=ZT(E,w.tradeType===kw.EXACT_OUTPUT);if(w.tradeType===kw.EXACT_INPUT){var P={path:x,recipient:p?RT:y,deadline:g,amountIn:R,amountOutMinimum:C};o.push(e.INTERFACE.encodeFunctionData("exactInput",[P]))}else{var M={path:x,recipient:p?RT:y,deadline:g,amountOut:C,amountInMaximum:R};o.push(e.INTERFACE.encodeFunctionData("exactOutput",[M]))}}}return p&&(n.fee?f?o.push(TA.encodeUnwrapWETH9(c.quotient,y,n.fee)):o.push(TA.encodeSweepToken(r.outputAmount.currency.wrapped,c.quotient,y,n.fee)):o.push(TA.encodeUnwrapWETH9(c.quotient,y))),l&&o.push(TA.encodeRefundETH()),{calldata:vA.encodeMulticall(o),value:$T(h.quotient)}},e}();CA.INTERFACE=new Lo(hT);var OA,kA,SA=Object.freeze({__proto__:null,ADDRESS_ZERO:RT,FACTORY_ADDRESS:IT,get FeeAmount(){return ET},FullMath:DT,LiquidityMath:BT,Multicall:vA,NoTickDataProvider:XT,NonfungiblePositionManager:_A,POOL_INIT_CODE_HASH:CT,Payments:TA,Pool:hA,Position:mA,PositionLibrary:oA,Route:yA,SelfPermit:wA,SqrtPriceMath:UT,Staker:RA,SwapMath:jT,SwapQuoter:IA,SwapRouter:CA,TICK_SPACINGS:OT,Tick:dA,TickLibrary:lA,TickList:QT,TickListDataProvider:fA,TickMath:KT,Trade:bA,computePoolAddress:MT,encodeRouteToPath:ZT,encodeSqrtRatioX96:eA,isSorted:JT,maxLiquidityForAmounts:iA,mostSignificantBit:zT,nearestUsableTick:function(e,t){Number.isInteger(e)&&Number.isInteger(t)||uv(!1),t>0||uv(!1),e>=KT.MIN_TICK&&e<=KT.MAX_TICK||uv(!1);var n=Math.round(e/t)*t;return n<KT.MIN_TICK?n+t:n>KT.MAX_TICK?n-t:n},priceToClosestTick:function(e){var t=e.baseCurrency.sortsBefore(e.quoteCurrency),n=t?eA(e.numerator,e.denominator):eA(e.denominator,e.numerator),r=KT.getTickAtSqrtRatio(n),i=sA(e.baseCurrency,e.quoteCurrency,r+1);return t?e.lessThan(i)||r++:e.greaterThan(i)||r++,r},subIn256:cA,tickToPrice:sA,toHex:$T,tradeComparator:gA}),NA={exports:{}},xA={},PA=dt(Uo);var MA,BA={_format:"hh-sol-artifact-1",contractName:"IApproveAndCall",sourceName:"contracts/interfaces/IApproveAndCall.sol",abi:[{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"callPositionManager",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"getApprovalType",outputs:[{internalType:"enum IApproveAndCall.ApprovalType",name:"",type:"uint8"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"}],internalType:"struct IApproveAndCall.IncreaseLiquidityParams",name:"params",type:"tuple"}],name:"increaseLiquidity",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],internalType:"struct IApproveAndCall.MintParams",name:"params",type:"tuple"}],name:"mint",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}},DA=dt(SA),FA={_format:"hh-sol-artifact-1",contractName:"IMulticallExtended",sourceName:"contracts/interfaces/IMulticallExtended.sol",abi:[{inputs:[{internalType:"bytes32",name:"previousBlockhash",type:"bytes32"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}};function LA(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function UA(e,t,n){return t&&LA(e.prototype,t),n&&LA(e,n),e}function qA(){return qA=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},qA.apply(this,arguments)}function jA(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}!function(e){e[e.MAINNET=1]="MAINNET",e[e.GOERLI=5]="GOERLI",e[e.SEPOLIA=11155111]="SEPOLIA",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.CELO=42220]="CELO",e[e.CELO_ALFAJORES=44787]="CELO_ALFAJORES",e[e.GNOSIS=100]="GNOSIS",e[e.MOONBEAM=1284]="MOONBEAM",e[e.BNB=56]="BNB",e[e.AVALANCHE=43114]="AVALANCHE",e[e.BASE_GOERLI=84531]="BASE_GOERLI",e[e.BASE=8453]="BASE"}(MA||(MA={}));var GA,HA,zA,VA,WA,KA,XA,JA=[MA.MAINNET,MA.OPTIMISM,MA.OPTIMISM_GOERLI,MA.ARBITRUM_ONE,MA.ARBITRUM_GOERLI,MA.POLYGON,MA.POLYGON_MUMBAI,MA.GOERLI,MA.SEPOLIA,MA.CELO_ALFAJORES,MA.CELO,MA.BNB,MA.AVALANCHE,MA.BASE,MA.BASE_GOERLI];!function(e){e.ETHER="ETH",e.MATIC="MATIC",e.CELO="CELO",e.GNOSIS="XDAI",e.MOONBEAM="GLMR",e.BNB="BNB",e.AVAX="AVAX"}(GA||(GA={}));var YA=[MA.MAINNET,MA.GOERLI];function QA(e,t){return void 0===t&&(t=[]),YA.concat(t).reduce((function(t,n){return t[n]=e,t}),{})}var $A,ZA,eE=QA("0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",[MA.OPTIMISM,MA.ARBITRUM_ONE,MA.POLYGON,MA.POLYGON_MUMBAI,MA.SEPOLIA]),tE="0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",nE=QA(tE),rE="0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",iE=QA(rE),aE={v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x1F98415757620B543A52E61c46B32eB19261F984",quoterAddress:"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",v3MigratorAddress:"0xA5644E29708357803b5A882D272c41cC0dF92B34",nonfungiblePositionManagerAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88"},oE=qA({},aE,{v1MixedRouteQuoterAddress:"0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E"}),sE=qA({},aE,{v1MixedRouteQuoterAddress:"0xBa60b6e6fF25488308789E6e0A65D838be34194e"}),uE=aE,cE=qA({},aE,{multicallAddress:"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",tickLensAddress:"0xbfd8137f7d1516D3ea5cA83523914859ec47F573"}),lE=aE,dE={v3CoreFactoryAddress:"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",multicallAddress:"0x633987602DE5C4F337e3DbF265303A1080324204",quoterAddress:"0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",v3MigratorAddress:"0x3cFd4d48EDfDCC53D3f173F596f621064614C582",nonfungiblePositionManagerAddress:"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",tickLensAddress:"0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D"},fE=((HA={})[MA.MAINNET]=oE,HA[MA.OPTIMISM]=uE,HA[MA.ARBITRUM_ONE]=cE,HA[MA.POLYGON]=lE,HA[MA.POLYGON_MUMBAI]=lE,HA[MA.GOERLI]=sE,HA[MA.CELO]=dE,HA[MA.CELO_ALFAJORES]=dE,HA[MA.BNB]={v3CoreFactoryAddress:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",multicallAddress:"0x963Df249eD09c358A4819E39d9Cd5736c3087184",quoterAddress:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",v3MigratorAddress:"0x32681814957e0C13117ddc0c2aba232b5c9e760f",nonfungiblePositionManagerAddress:"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",tickLensAddress:"0xD9270014D396281579760619CCf4c3af0501A47C",swapRouter02Address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2"},HA[MA.OPTIMISM_GOERLI]={v3CoreFactoryAddress:"0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",multicallAddress:"0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",quoterAddress:"0x9569CbA925c8ca2248772A9A4976A516743A246F",v3MigratorAddress:"0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",nonfungiblePositionManagerAddress:"0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",tickLensAddress:"0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"},HA[MA.ARBITRUM_GOERLI]={v3CoreFactoryAddress:"0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",multicallAddress:"0x8260CB40247290317a4c062F3542622367F206Ee",quoterAddress:"0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",v3MigratorAddress:"0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",nonfungiblePositionManagerAddress:"0x622e4726a167799826d1E1D150b076A7725f5D81",tickLensAddress:"0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"},HA[MA.SEPOLIA]={v3CoreFactoryAddress:"0x0227628f3F023bb0B980b67D528571c95c6DaC1c",multicallAddress:"0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",quoterAddress:"0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",v3MigratorAddress:"0x729004182cF005CEC8Bd85df140094b6aCbe8b15",nonfungiblePositionManagerAddress:"0x1238536071E1c677A632429e3655c799b22cDA52",tickLensAddress:"0xd7f33bcdb21b359c8ee6f0251d30e94832baad07"},HA[MA.AVALANCHE]={v3CoreFactoryAddress:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",multicallAddress:"0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",quoterAddress:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",v3MigratorAddress:"0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",nonfungiblePositionManagerAddress:"0x655C406EBFa14EE2006250925e54ec43AD184f8B",tickLensAddress:"0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",swapRouter02Address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE"},HA[MA.BASE]={v3CoreFactoryAddress:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",multicallAddress:"0x091e99cb1C49331a94dD62755D168E941AbD0693",quoterAddress:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",v3MigratorAddress:"0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",nonfungiblePositionManagerAddress:"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",tickLensAddress:"0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",swapRouter02Address:"0x2626664c2603336E57B271c5C0b26F421741e481"},HA[MA.BASE_GOERLI]={v3CoreFactoryAddress:"0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",multicallAddress:"0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",quoterAddress:"0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",v3MigratorAddress:"0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",nonfungiblePositionManagerAddress:"0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",tickLensAddress:"0x1acB873Ee909D0c98adB18e4474943249F931b92",swapRouter02Address:"0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"},HA),pE=qA({},JA.reduce((function(e,t){return e[t]=fE[t].v3CoreFactoryAddress,e}),{})),hE=qA({},JA.reduce((function(e,t){var n=fE[t].v3MigratorAddress;return n&&(e[t]=n),e}),{})),mE=qA({},JA.reduce((function(e,t){return e[t]=fE[t].multicallAddress,e}),{})),yE=QA("0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F"),gE=((zA={})[MA.MAINNET]="0xC4e172459f1E7939D522503B81AFAaC1014CE6F6",zA),bE=((VA={})[MA.MAINNET]="0x408ED6354d4973f66138C91495F2f2FCbd8724C3",VA),vE=QA("0x1a9C8182C09F50C8318d769245beA52c32BE35BC"),wE=((WA={})[MA.MAINNET]="0x090D4613473dEE047c3f2706764f49E0821D256e",WA),TE=((KA={})[MA.MAINNET]="0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8",KA),AE=qA({},JA.reduce((function(e,t){return e[t]=fE[t].quoterAddress,e}),{})),EE=qA({},JA.reduce((function(e,t){var n=fE[t].nonfungiblePositionManagerAddress;return n&&(e[t]=n),e}),{})),_E=qA({},QA("0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e")),IE=((XA={})[MA.MAINNET]="0x65770b5283117639760beA3F867b69b3697a91dd",XA),RE=qA({},JA.reduce((function(e,t){var n=fE[t].tickLensAddress;return n&&(e[t]=n),e}),{})),CE=JA.reduce((function(e,t){var n=fE[t].v1MixedRouteQuoterAddress;return n&&(e[t]=n),e}),{});!function(e){e[e.EXACT_INPUT=0]="EXACT_INPUT",e[e.EXACT_OUTPUT=1]="EXACT_OUTPUT"}($A||($A={})),function(e){e[e.ROUND_DOWN=0]="ROUND_DOWN",e[e.ROUND_HALF_UP=1]="ROUND_HALF_UP",e[e.ROUND_UP=2]="ROUND_UP"}(ZA||(ZA={}));var OE,kE,SE=ov.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),NE=gv(lv),xE=gv(fv),PE=((OE={})[ZA.ROUND_DOWN]=NE.ROUND_DOWN,OE[ZA.ROUND_HALF_UP]=NE.ROUND_HALF_UP,OE[ZA.ROUND_UP]=NE.ROUND_UP,OE),ME=((kE={})[ZA.ROUND_DOWN]=0,kE[ZA.ROUND_HALF_UP]=1,kE[ZA.ROUND_UP]=3,kE),BE=function(){function e(e,t){void 0===t&&(t=ov.BigInt(1)),this.numerator=ov.BigInt(e),this.denominator=ov.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof ov||"number"==typeof t||"string"==typeof t)return new e(t);if("numerator"in t&&"denominator"in t)return t;throw new Error("Could not parse fraction")};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return ov.equal(this.denominator,n.denominator)?new e(ov.add(this.numerator,n.numerator),this.denominator):new e(ov.add(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator)),ov.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return ov.equal(this.denominator,n.denominator)?new e(ov.subtract(this.numerator,n.numerator),this.denominator):new e(ov.subtract(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator)),ov.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return ov.lessThan(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return ov.equal(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return ov.greaterThan(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(ov.multiply(this.numerator,n.numerator),ov.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(ov.multiply(this.numerator,n.denominator),ov.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=ZA.ROUND_HALF_UP),Number.isInteger(e)||uv(!1),e>0||uv(!1),NE.set({precision:e+1,rounding:PE[n]});var r=new NE(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=ZA.ROUND_HALF_UP),Number.isInteger(e)||uv(!1),e>=0||uv(!1),xE.DP=e,xE.RM=ME[n],new xE(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},UA(e,[{key:"quotient",get:function(){return ov.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(ov.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}]),e}(),DE=gv(fv),FE=function(e){function t(t,n,r){var i;return i=e.call(this,n,r)||this,ov.lessThanOrEqual(i.quotient,SE)||uv(!1),i.currency=t,i.decimalScale=ov.exponentiate(ov.BigInt(10),ov.BigInt(t.decimals)),i}jA(t,e),t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){this.currency.equals(n.currency)||uv(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){this.currency.equals(n.currency)||uv(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return void 0===t&&(t=6),void 0===r&&(r=ZA.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=this.currency.decimals),void 0===r&&(r=ZA.ROUND_DOWN),t<=this.currency.decimals||uv(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),DE.DP=this.currency.decimals,new DE(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},UA(t,[{key:"wrapped",get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(BE),LE=new BE(ov.BigInt(100));function UE(e){return new qE(e.numerator,e.denominator)}var qE=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isPercent=!0,t}jA(t,e);var n=t.prototype;return n.add=function(t){return UE(e.prototype.add.call(this,t))},n.subtract=function(t){return UE(e.prototype.subtract.call(this,t))},n.multiply=function(t){return UE(e.prototype.multiply.call(this,t))},n.divide=function(t){return UE(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return void 0===t&&(t=5),e.prototype.multiply.call(this,LE).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=2),e.prototype.multiply.call(this,LE).toFixed(t,n,r)},t}(BE),jE=function(e){function t(){for(var t,n,r,i,a,o=arguments.length,s=new Array(o),u=0;u<o;u++)s[u]=arguments[u];if(4===s.length)n=s[0],r=s[1],i=s[2],a=s[3];else{var c=s[0].quoteAmount.divide(s[0].baseAmount),l=[s[0].baseAmount.currency,s[0].quoteAmount.currency,c.denominator,c.numerator];n=l[0],r=l[1],i=l[2],a=l[3]}return(t=e.call(this,a,i)||this).baseCurrency=n,t.quoteCurrency=r,t.scalar=new BE(ov.exponentiate(ov.BigInt(10),ov.BigInt(n.decimals)),ov.exponentiate(ov.BigInt(10),ov.BigInt(r.decimals))),t}jA(t,e);var n=t.prototype;return n.invert=function(){return new t(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},n.multiply=function(n){this.quoteCurrency.equals(n.baseCurrency)||uv(!1);var r=e.prototype.multiply.call(this,n);return new t(this.baseCurrency,n.quoteCurrency,r.denominator,r.numerator)},n.quote=function(t){t.currency.equals(this.baseCurrency)||uv(!1);var n=e.prototype.multiply.call(this,t);return FE.fromFractionalAmount(this.quoteCurrency,n.numerator,n.denominator)},n.toSignificant=function(e,t,n){return void 0===e&&(e=6),this.adjustedForDecimals.toSignificant(e,t,n)},n.toFixed=function(e,t,n){return void 0===e&&(e=4),this.adjustedForDecimals.toFixed(e,t,n)},UA(t,[{key:"adjustedForDecimals",get:function(){return e.prototype.multiply.call(this,this.scalar)}}]),t}(BE),GE=function(e,t,n,r){Number.isSafeInteger(e)||uv(!1),t>=0&&t<255&&Number.isInteger(t)||uv(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r},HE=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isNative=!0,t.isToken=!1,t}return jA(t,e),t}(GE);function zE(e){try{return _i(e)}catch(t){throw new Error(e+" is not a valid address.")}}var VE=/^0x[0-9a-fA-F]{40}$/;var WE,KE=function(e){function t(t,n,r,i,a,o){var s;return(s=e.call(this,t,r,i,a)||this).isNative=!1,s.isToken=!0,s.address=o?function(e){if(VE.test(e))return e;throw new Error(e+" is not a valid address.")}(n):zE(n),s}jA(t,e);var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&uv(!1),this.address.toLowerCase()===e.address.toLowerCase()&&uv(!1),this.address.toLowerCase()<e.address.toLowerCase()},UA(t,[{key:"wrapped",get:function(){return this}}]),t}(GE),XE=((WE={})[1]=new KE(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),WE[3]=new KE(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),WE[4]=new KE(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),WE[5]=new KE(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),WE[42]=new KE(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),WE[10]=new KE(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),WE[69]=new KE(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),WE[42161]=new KE(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),WE[421611]=new KE(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether"),WE),JE=function(e){function t(t){return e.call(this,t,18,"ETH","Ether")||this}return jA(t,e),t.onChain=function(e){var n;return null!=(n=this._etherCache[e])?n:this._etherCache[e]=new t(e)},t.prototype.equals=function(e){return e.isNative&&e.chainId===this.chainId},UA(t,[{key:"wrapped",get:function(){var e=XE[this.chainId];return e||uv(!1),e}}]),t}(HE);JE._etherCache={};var YE=ov.BigInt(Number.MAX_SAFE_INTEGER),QE=ov.BigInt(0),$E=ov.BigInt(1),ZE=ov.BigInt(2);var e_,t_,n_,r_=Object.freeze({__proto__:null,ARGENT_WALLET_DETECTOR_ADDRESS:TE,CHAIN_TO_ADDRESSES_MAP:fE,get ChainId(){return MA},CurrencyAmount:FE,ENS_REGISTRAR_ADDRESSES:_E,Ether:JE,Fraction:BE,GOVERNANCE_ALPHA_V0_ADDRESSES:yE,GOVERNANCE_ALPHA_V1_ADDRESSES:gE,GOVERNANCE_BRAVO_ADDRESSES:bE,MERKLE_DISTRIBUTOR_ADDRESS:wE,MIXED_ROUTE_QUOTER_V1_ADDRESSES:CE,MULTICALL_ADDRESSES:mE,MaxUint256:SE,NONFUNGIBLE_POSITION_MANAGER_ADDRESSES:EE,NativeCurrency:HE,get NativeCurrencyName(){return GA},Percent:qE,Price:jE,QUOTER_ADDRESSES:AE,get Rounding(){return ZA},SOCKS_CONTROLLER_ADDRESSES:IE,SUPPORTED_CHAINS:JA,SWAP_ROUTER_02_ADDRESSES:function(e){return e==MA.BNB?fE[e].swapRouter02Address:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45"},TICK_LENS_ADDRESSES:RE,TIMELOCK_ADDRESSES:vE,Token:KE,get TradeType(){return $A},UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS:"0x8B799381ac40b838BBA4131ffB26197C432AFe78",UNI_ADDRESSES:eE,V2_FACTORY_ADDRESS:tE,V2_FACTORY_ADDRESSES:nE,V2_ROUTER_ADDRESS:rE,V2_ROUTER_ADDRESSES:iE,V3_CORE_FACTORY_ADDRESSES:pE,V3_MIGRATOR_ADDRESSES:hE,WETH9:XE,computePriceImpact:function(e,t,n){var r=e.quote(t),i=r.subtract(n).divide(r);return new qE(i.numerator,i.denominator)},sortedInsert:function(e,t,n,r){if(n>0||uv(!1),e.length<=n||uv(!1),0===e.length)return e.push(t),null;var i=e.length===n;if(i&&r(e[e.length-1],t)<=0)return t;for(var a=0,o=e.length;a<o;){var s=a+o>>>1;r(e[s],t)<=0?a=s+1:o=s}return e.splice(a,0,t),i?e.pop():null},sqrt:function(e){if(ov.greaterThanOrEqual(e,QE)||uv(!1),ov.lessThan(e,YE))return ov.BigInt(Math.floor(Math.sqrt(ov.toNumber(e))));var t,n;for(t=e,n=ov.add(ov.divide(e,ZE),$E);ov.lessThan(n,t);)t=n,n=ov.divide(ov.add(ov.divide(e,n),n),ZE);return t},validateAndParseAddress:zE}),i_=dt(r_),a_={_format:"hh-sol-artifact-1",contractName:"IPeripheryPaymentsWithFeeExtended",sourceName:"contracts/interfaces/IPeripheryPaymentsWithFeeExtended.sol",abi:[{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"pull",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"wrapETH",outputs:[],stateMutability:"payable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}},o_={_format:"hh-sol-artifact-1",contractName:"ISwapRouter02",sourceName:"contracts/interfaces/ISwapRouter02.sol",abi:[{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"callPositionManager",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactInputParams",name:"params",type:"tuple"}],name:"exactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactInputSingleParams",name:"params",type:"tuple"}],name:"exactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactOutputParams",name:"params",type:"tuple"}],name:"exactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactOutputSingleParams",name:"params",type:"tuple"}],name:"exactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"getApprovalType",outputs:[{internalType:"enum IApproveAndCall.ApprovalType",name:"",type:"uint8"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"}],internalType:"struct IApproveAndCall.IncreaseLiquidityParams",name:"params",type:"tuple"}],name:"increaseLiquidity",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],internalType:"struct IApproveAndCall.MintParams",name:"params",type:"tuple"}],name:"mint",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"previousBlockhash",type:"bytes32"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"swapExactTokensForTokens",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMax",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"swapTokensForExactTokens",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"nonpayable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}};function s_(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function u_(e,t,n){return t&&s_(e.prototype,t),n&&s_(e,n),e}function c_(){return c_=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c_.apply(this,arguments)}function l_(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}!function(e){e[e.MAINNET=1]="MAINNET",e[e.GOERLI=5]="GOERLI",e[e.SEPOLIA=11155111]="SEPOLIA",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.CELO=42220]="CELO",e[e.CELO_ALFAJORES=44787]="CELO_ALFAJORES",e[e.GNOSIS=100]="GNOSIS",e[e.MOONBEAM=1284]="MOONBEAM",e[e.BNB=56]="BNB",e[e.AVALANCHE=43114]="AVALANCHE",e[e.BASE_GOERLI=84531]="BASE_GOERLI",e[e.BASE=8453]="BASE"}(e_||(e_={})),e_.MAINNET,e_.OPTIMISM,e_.OPTIMISM_GOERLI,e_.ARBITRUM_ONE,e_.ARBITRUM_GOERLI,e_.POLYGON,e_.POLYGON_MUMBAI,e_.GOERLI,e_.SEPOLIA,e_.CELO_ALFAJORES,e_.CELO,e_.BNB,e_.AVALANCHE,e_.BASE,e_.BASE_GOERLI,function(e){e.ETHER="ETH",e.MATIC="MATIC",e.CELO="CELO",e.GNOSIS="XDAI",e.MOONBEAM="GLMR",e.BNB="BNB",e.AVAX="AVAX"}(t_||(t_={}));e_.MAINNET,e_.GOERLI;e_.OPTIMISM,e_.ARBITRUM_ONE,e_.POLYGON,e_.POLYGON_MUMBAI,e_.SEPOLIA;var d_,f_,p_={v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x1F98415757620B543A52E61c46B32eB19261F984",quoterAddress:"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",v3MigratorAddress:"0xA5644E29708357803b5A882D272c41cC0dF92B34",nonfungiblePositionManagerAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88"},h_=c_({},p_,{v1MixedRouteQuoterAddress:"0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E"}),m_=c_({},p_,{v1MixedRouteQuoterAddress:"0xBa60b6e6fF25488308789E6e0A65D838be34194e"}),y_=p_,g_=c_({},p_,{multicallAddress:"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",tickLensAddress:"0xbfd8137f7d1516D3ea5cA83523914859ec47F573"}),b_=p_,v_={v3CoreFactoryAddress:"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",multicallAddress:"0x633987602DE5C4F337e3DbF265303A1080324204",quoterAddress:"0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",v3MigratorAddress:"0x3cFd4d48EDfDCC53D3f173F596f621064614C582",nonfungiblePositionManagerAddress:"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",tickLensAddress:"0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D"};(n_={})[e_.MAINNET]=h_,n_[e_.OPTIMISM]=y_,n_[e_.ARBITRUM_ONE]=g_,n_[e_.POLYGON]=b_,n_[e_.POLYGON_MUMBAI]=b_,n_[e_.GOERLI]=m_,n_[e_.CELO]=v_,n_[e_.CELO_ALFAJORES]=v_,n_[e_.BNB]={v3CoreFactoryAddress:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",multicallAddress:"0x963Df249eD09c358A4819E39d9Cd5736c3087184",quoterAddress:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",v3MigratorAddress:"0x32681814957e0C13117ddc0c2aba232b5c9e760f",nonfungiblePositionManagerAddress:"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",tickLensAddress:"0xD9270014D396281579760619CCf4c3af0501A47C",swapRouter02Address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2"},n_[e_.OPTIMISM_GOERLI]={v3CoreFactoryAddress:"0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",multicallAddress:"0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",quoterAddress:"0x9569CbA925c8ca2248772A9A4976A516743A246F",v3MigratorAddress:"0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",nonfungiblePositionManagerAddress:"0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",tickLensAddress:"0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"},n_[e_.ARBITRUM_GOERLI]={v3CoreFactoryAddress:"0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",multicallAddress:"0x8260CB40247290317a4c062F3542622367F206Ee",quoterAddress:"0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",v3MigratorAddress:"0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",nonfungiblePositionManagerAddress:"0x622e4726a167799826d1E1D150b076A7725f5D81",tickLensAddress:"0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"},n_[e_.SEPOLIA]={v3CoreFactoryAddress:"0x0227628f3F023bb0B980b67D528571c95c6DaC1c",multicallAddress:"0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",quoterAddress:"0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",v3MigratorAddress:"0x729004182cF005CEC8Bd85df140094b6aCbe8b15",nonfungiblePositionManagerAddress:"0x1238536071E1c677A632429e3655c799b22cDA52",tickLensAddress:"0xd7f33bcdb21b359c8ee6f0251d30e94832baad07"},n_[e_.AVALANCHE]={v3CoreFactoryAddress:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",multicallAddress:"0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",quoterAddress:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",v3MigratorAddress:"0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",nonfungiblePositionManagerAddress:"0x655C406EBFa14EE2006250925e54ec43AD184f8B",tickLensAddress:"0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",swapRouter02Address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE"},n_[e_.BASE]={v3CoreFactoryAddress:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",multicallAddress:"0x091e99cb1C49331a94dD62755D168E941AbD0693",quoterAddress:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",v3MigratorAddress:"0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",nonfungiblePositionManagerAddress:"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",tickLensAddress:"0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",swapRouter02Address:"0x2626664c2603336E57B271c5C0b26F421741e481"},n_[e_.BASE_GOERLI]={v3CoreFactoryAddress:"0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",multicallAddress:"0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",quoterAddress:"0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",v3MigratorAddress:"0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",nonfungiblePositionManagerAddress:"0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",tickLensAddress:"0x1acB873Ee909D0c98adB18e4474943249F931b92",swapRouter02Address:"0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"},{}[e_.MAINNET]="0xC4e172459f1E7939D522503B81AFAaC1014CE6F6",{}[e_.MAINNET]="0x408ED6354d4973f66138C91495F2f2FCbd8724C3",{}[e_.MAINNET]="0x090D4613473dEE047c3f2706764f49E0821D256e",{}[e_.MAINNET]="0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8",{}[e_.MAINNET]="0x65770b5283117639760beA3F867b69b3697a91dd",function(e){e[e.EXACT_INPUT=0]="EXACT_INPUT",e[e.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(d_||(d_={})),function(e){e[e.ROUND_DOWN=0]="ROUND_DOWN",e[e.ROUND_HALF_UP=1]="ROUND_HALF_UP",e[e.ROUND_UP=2]="ROUND_UP"}(f_||(f_={}));var w_,T_,A_=ov.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),E_=gv(lv),__=gv(fv),I_=((w_={})[f_.ROUND_DOWN]=E_.ROUND_DOWN,w_[f_.ROUND_HALF_UP]=E_.ROUND_HALF_UP,w_[f_.ROUND_UP]=E_.ROUND_UP,w_),R_=((T_={})[f_.ROUND_DOWN]=0,T_[f_.ROUND_HALF_UP]=1,T_[f_.ROUND_UP]=3,T_),C_=function(){function e(e,t){void 0===t&&(t=ov.BigInt(1)),this.numerator=ov.BigInt(e),this.denominator=ov.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof ov||"number"==typeof t||"string"==typeof t)return new e(t);if("numerator"in t&&"denominator"in t)return t;throw new Error("Could not parse fraction")};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return ov.equal(this.denominator,n.denominator)?new e(ov.add(this.numerator,n.numerator),this.denominator):new e(ov.add(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator)),ov.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return ov.equal(this.denominator,n.denominator)?new e(ov.subtract(this.numerator,n.numerator),this.denominator):new e(ov.subtract(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator)),ov.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return ov.lessThan(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return ov.equal(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return ov.greaterThan(ov.multiply(this.numerator,n.denominator),ov.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(ov.multiply(this.numerator,n.numerator),ov.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(ov.multiply(this.numerator,n.denominator),ov.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=f_.ROUND_HALF_UP),Number.isInteger(e)||uv(!1),e>0||uv(!1),E_.set({precision:e+1,rounding:I_[n]});var r=new E_(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=f_.ROUND_HALF_UP),Number.isInteger(e)||uv(!1),e>=0||uv(!1),__.DP=e,__.RM=R_[n],new __(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},u_(e,[{key:"quotient",get:function(){return ov.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(ov.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}]),e}(),O_=gv(fv),k_=function(e){function t(t,n,r){var i;return i=e.call(this,n,r)||this,ov.lessThanOrEqual(i.quotient,A_)||uv(!1),i.currency=t,i.decimalScale=ov.exponentiate(ov.BigInt(10),ov.BigInt(t.decimals)),i}l_(t,e),t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){this.currency.equals(n.currency)||uv(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){this.currency.equals(n.currency)||uv(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return void 0===t&&(t=6),void 0===r&&(r=f_.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=this.currency.decimals),void 0===r&&(r=f_.ROUND_DOWN),t<=this.currency.decimals||uv(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),O_.DP=this.currency.decimals,new O_(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},u_(t,[{key:"wrapped",get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(C_),S_=new C_(ov.BigInt(100));function N_(e){return new x_(e.numerator,e.denominator)}var x_=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isPercent=!0,t}l_(t,e);var n=t.prototype;return n.add=function(t){return N_(e.prototype.add.call(this,t))},n.subtract=function(t){return N_(e.prototype.subtract.call(this,t))},n.multiply=function(t){return N_(e.prototype.multiply.call(this,t))},n.divide=function(t){return N_(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return void 0===t&&(t=5),e.prototype.multiply.call(this,S_).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=2),e.prototype.multiply.call(this,S_).toFixed(t,n,r)},t}(C_),P_=function(e){function t(){for(var t,n,r,i,a,o=arguments.length,s=new Array(o),u=0;u<o;u++)s[u]=arguments[u];if(4===s.length)n=s[0],r=s[1],i=s[2],a=s[3];else{var c=s[0].quoteAmount.divide(s[0].baseAmount),l=[s[0].baseAmount.currency,s[0].quoteAmount.currency,c.denominator,c.numerator];n=l[0],r=l[1],i=l[2],a=l[3]}return(t=e.call(this,a,i)||this).baseCurrency=n,t.quoteCurrency=r,t.scalar=new C_(ov.exponentiate(ov.BigInt(10),ov.BigInt(n.decimals)),ov.exponentiate(ov.BigInt(10),ov.BigInt(r.decimals))),t}l_(t,e);var n=t.prototype;return n.invert=function(){return new t(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},n.multiply=function(n){this.quoteCurrency.equals(n.baseCurrency)||uv(!1);var r=e.prototype.multiply.call(this,n);return new t(this.baseCurrency,n.quoteCurrency,r.denominator,r.numerator)},n.quote=function(t){t.currency.equals(this.baseCurrency)||uv(!1);var n=e.prototype.multiply.call(this,t);return k_.fromFractionalAmount(this.quoteCurrency,n.numerator,n.denominator)},n.toSignificant=function(e,t,n){return void 0===e&&(e=6),this.adjustedForDecimals.toSignificant(e,t,n)},n.toFixed=function(e,t,n){return void 0===e&&(e=4),this.adjustedForDecimals.toFixed(e,t,n)},u_(t,[{key:"adjustedForDecimals",get:function(){return e.prototype.multiply.call(this,this.scalar)}}]),t}(C_);function M_(e){try{return _i(e)}catch(t){throw new Error(e+" is not a valid address.")}}var B_=/^0x[0-9a-fA-F]{40}$/;var D_,F_=function(e){function t(t,n,r,i,a,o){var s;return(s=e.call(this,t,r,i,a)||this).isNative=!1,s.isToken=!0,s.address=o?function(e){if(B_.test(e))return e;throw new Error(e+" is not a valid address.")}(n):M_(n),s}l_(t,e);var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&uv(!1),this.address.toLowerCase()===e.address.toLowerCase()&&uv(!1),this.address.toLowerCase()<e.address.toLowerCase()},u_(t,[{key:"wrapped",get:function(){return this}}]),t}((function(e,t,n,r){Number.isSafeInteger(e)||uv(!1),t>=0&&t<255&&Number.isInteger(t)||uv(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r}));function L_(e,t,n,r){if(n>0||uv(!1),e.length<=n||uv(!1),0===e.length)return e.push(t),null;var i=e.length===n;if(i&&r(e[e.length-1],t)<=0)return t;for(var a=0,o=e.length;a<o;){var s=a+o>>>1;r(e[s],t)<=0?a=s+1:o=s}return e.splice(a,0,t),i?e.pop():null}(D_={})[1]=new F_(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),D_[3]=new F_(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),D_[4]=new F_(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),D_[5]=new F_(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),D_[42]=new F_(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),D_[10]=new F_(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),D_[69]=new F_(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),D_[42161]=new F_(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),D_[421611]=new F_(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether");var U_=ov.BigInt(Number.MAX_SAFE_INTEGER),q_=ov.BigInt(0),j_=ov.BigInt(1),G_=ov.BigInt(2);function H_(e){if(ov.greaterThanOrEqual(e,q_)||uv(!1),ov.lessThan(e,U_))return ov.BigInt(Math.floor(Math.sqrt(ov.toNumber(e))));var t,n;for(t=e,n=ov.add(ov.divide(e,G_),j_);ov.lessThan(n,t);)t=n,n=ov.divide(ov.add(ov.divide(e,n),n),G_);return t}var z_="0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",V_="0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",W_=ov.BigInt(1e3),K_=ov.BigInt(0),X_=ov.BigInt(1),J_=ov.BigInt(5),Y_=ov.BigInt(997),Q_=ov.BigInt(1e3);function $_(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Z_(e,t,n){return t&&$_(e.prototype,t),n&&$_(e,n),e}function eI(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function tI(e){return tI=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},tI(e)}function nI(e,t){return nI=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},nI(e,t)}function rI(e,t,n){return rI=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&nI(i,n.prototype),i},rI.apply(null,arguments)}function iI(e){var t="function"==typeof Map?new Map:void 0;return iI=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return rI(e,arguments,tI(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),nI(r,e)},iI(e)}function aI(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function oI(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function sI(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return oI(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?oI(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}var uI="setPrototypeOf"in Object,cI=function(e){function t(){var n;return(n=e.call(this)||this).isInsufficientReservesError=!0,n.name=n.constructor.name,uI&&Object.setPrototypeOf(aI(n),(this instanceof t?this.constructor:void 0).prototype),n}return eI(t,e),t}(iI(Error)),lI=function(e){function t(){var n;return(n=e.call(this)||this).isInsufficientInputAmountError=!0,n.name=n.constructor.name,uI&&Object.setPrototypeOf(aI(n),(this instanceof t?this.constructor:void 0).prototype),n}return eI(t,e),t}(iI(Error)),dI=function(e){var t=e.factoryAddress,n=e.tokenA,r=e.tokenB,i=n.sortsBefore(r)?[n,r]:[r,n],a=i[1];return Oi(t,Th(["bytes"],[wh(["address","address"],[i[0].address,a.address])]),V_)},fI=function(){function e(t,n){var r=t.currency.sortsBefore(n.currency)?[t,n]:[n,t];this.liquidityToken=new F_(r[0].currency.chainId,e.getAddress(r[0].currency,r[1].currency),18,"UNI-V2","Uniswap V2"),this.tokenAmounts=r}e.getAddress=function(e,t){return dI({factoryAddress:z_,tokenA:e,tokenB:t})};var t=e.prototype;return t.involvesToken=function(e){return e.equals(this.token0)||e.equals(this.token1)},t.priceOf=function(e){return this.involvesToken(e)||uv(!1),e.equals(this.token0)?this.token0Price:this.token1Price},t.reserveOf=function(e){return this.involvesToken(e)||uv(!1),e.equals(this.token0)?this.reserve0:this.reserve1},t.getOutputAmount=function(t){if(this.involvesToken(t.currency)||uv(!1),ov.equal(this.reserve0.quotient,K_)||ov.equal(this.reserve1.quotient,K_))throw new cI;var n=this.reserveOf(t.currency),r=this.reserveOf(t.currency.equals(this.token0)?this.token1:this.token0),i=ov.multiply(t.quotient,Y_),a=ov.multiply(i,r.quotient),o=ov.add(ov.multiply(n.quotient,Q_),i),s=k_.fromRawAmount(t.currency.equals(this.token0)?this.token1:this.token0,ov.divide(a,o));if(ov.equal(s.quotient,K_))throw new lI;return[s,new e(n.add(t),r.subtract(s))]},t.getInputAmount=function(t){if(this.involvesToken(t.currency)||uv(!1),ov.equal(this.reserve0.quotient,K_)||ov.equal(this.reserve1.quotient,K_)||ov.greaterThanOrEqual(t.quotient,this.reserveOf(t.currency).quotient))throw new cI;var n=this.reserveOf(t.currency),r=this.reserveOf(t.currency.equals(this.token0)?this.token1:this.token0),i=ov.multiply(ov.multiply(r.quotient,t.quotient),Q_),a=ov.multiply(ov.subtract(n.quotient,t.quotient),Y_),o=k_.fromRawAmount(t.currency.equals(this.token0)?this.token1:this.token0,ov.add(ov.divide(i,a),X_));return[o,new e(r.add(o),n.subtract(t))]},t.getLiquidityMinted=function(e,t,n){e.currency.equals(this.liquidityToken)||uv(!1);var r,i=t.currency.sortsBefore(n.currency)?[t,n]:[n,t];if(i[0].currency.equals(this.token0)&&i[1].currency.equals(this.token1)||uv(!1),ov.equal(e.quotient,K_))r=ov.subtract(H_(ov.multiply(i[0].quotient,i[1].quotient)),W_);else{var a=ov.divide(ov.multiply(i[0].quotient,e.quotient),this.reserve0.quotient),o=ov.divide(ov.multiply(i[1].quotient,e.quotient),this.reserve1.quotient);r=ov.lessThanOrEqual(a,o)?a:o}if(!ov.greaterThan(r,K_))throw new lI;return k_.fromRawAmount(this.liquidityToken,r)},t.getLiquidityValue=function(e,t,n,r,i){var a;if(void 0===r&&(r=!1),this.involvesToken(e)||uv(!1),t.currency.equals(this.liquidityToken)||uv(!1),n.currency.equals(this.liquidityToken)||uv(!1),ov.lessThanOrEqual(n.quotient,t.quotient)||uv(!1),r){i||uv(!1);var o=ov.BigInt(i);if(ov.equal(o,K_))a=t;else{var s=H_(ov.multiply(this.reserve0.quotient,this.reserve1.quotient)),u=H_(o);if(ov.greaterThan(s,u)){var c=ov.multiply(t.quotient,ov.subtract(s,u)),l=ov.add(ov.multiply(s,J_),u),d=ov.divide(c,l);a=t.add(k_.fromRawAmount(this.liquidityToken,d))}else a=t}}else a=t;return k_.fromRawAmount(e,ov.divide(ov.multiply(n.quotient,this.reserveOf(e).quotient),a.quotient))},Z_(e,[{key:"token0Price",get:function(){var e=this.tokenAmounts[1].divide(this.tokenAmounts[0]);return new P_(this.token0,this.token1,e.denominator,e.numerator)}},{key:"token1Price",get:function(){var e=this.tokenAmounts[0].divide(this.tokenAmounts[1]);return new P_(this.token1,this.token0,e.denominator,e.numerator)}},{key:"chainId",get:function(){return this.token0.chainId}},{key:"token0",get:function(){return this.tokenAmounts[0].currency}},{key:"token1",get:function(){return this.tokenAmounts[1].currency}},{key:"reserve0",get:function(){return this.tokenAmounts[0]}},{key:"reserve1",get:function(){return this.tokenAmounts[1]}}]),e}(),pI=function(){function e(e,t,n){this._midPrice=null,e.length>0||uv(!1);var r=e[0].chainId;e.every((function(e){return e.chainId===r}))||uv(!1);var i=t.wrapped;e[0].involvesToken(i)||uv(!1),void 0===n||e[e.length-1].involvesToken(n.wrapped)||uv(!1);for(var a,o=[i],s=sI(e.entries());!(a=s()).done;){var u=a.value,c=u[0],l=u[1],d=o[c];d.equals(l.token0)||d.equals(l.token1)||uv(!1);var f=d.equals(l.token0)?l.token1:l.token0;o.push(f)}this.pairs=e,this.path=o,this.input=t,this.output=n}return Z_(e,[{key:"midPrice",get:function(){if(null!==this._midPrice)return this._midPrice;for(var e,t=[],n=sI(this.pairs.entries());!(e=n()).done;){var r=e.value,i=r[0],a=r[1];t.push(this.path[i].equals(a.token0)?new P_(a.reserve0.currency,a.reserve1.currency,a.reserve0.quotient,a.reserve1.quotient):new P_(a.reserve1.currency,a.reserve0.currency,a.reserve1.quotient,a.reserve0.quotient))}var o=t.slice(1).reduce((function(e,t){return e.multiply(t)}),t[0]);return this._midPrice=new P_(this.input,this.output,o.denominator,o.numerator)}},{key:"chainId",get:function(){return this.pairs[0].chainId}}]),e}();function hI(e,t){return e.inputAmount.currency.equals(t.inputAmount.currency)||uv(!1),e.outputAmount.currency.equals(t.outputAmount.currency)||uv(!1),e.outputAmount.equalTo(t.outputAmount)?e.inputAmount.equalTo(t.inputAmount)?0:e.inputAmount.lessThan(t.inputAmount)?-1:1:e.outputAmount.lessThan(t.outputAmount)?1:-1}function mI(e,t){var n=hI(e,t);return 0!==n?n:e.priceImpact.lessThan(t.priceImpact)?-1:e.priceImpact.greaterThan(t.priceImpact)?1:e.route.path.length-t.route.path.length}var yI=function(){function e(e,t,n){this.route=e,this.tradeType=n;var r=new Array(e.path.length);if(n===d_.EXACT_INPUT){t.currency.equals(e.input)||uv(!1),r[0]=t.wrapped;for(var i=0;i<e.path.length-1;i++){var a=e.pairs[i].getOutputAmount(r[i])[0];r[i+1]=a}this.inputAmount=k_.fromFractionalAmount(e.input,t.numerator,t.denominator),this.outputAmount=k_.fromFractionalAmount(e.output,r[r.length-1].numerator,r[r.length-1].denominator)}else{t.currency.equals(e.output)||uv(!1),r[r.length-1]=t.wrapped;for(var o=e.path.length-1;o>0;o--){var s=e.pairs[o-1].getInputAmount(r[o])[0];r[o-1]=s}this.inputAmount=k_.fromFractionalAmount(e.input,r[0].numerator,r[0].denominator),this.outputAmount=k_.fromFractionalAmount(e.output,t.numerator,t.denominator)}this.executionPrice=new P_(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient),this.priceImpact=function(e,t,n){var r=e.quote(t),i=r.subtract(n).divide(r);return new x_(i.numerator,i.denominator)}(e.midPrice,this.inputAmount,this.outputAmount)}e.exactIn=function(t,n){return new e(t,n,d_.EXACT_INPUT)},e.exactOut=function(t,n){return new e(t,n,d_.EXACT_OUTPUT)};var t=e.prototype;return t.minimumAmountOut=function(e){if(e.lessThan(K_)&&uv(!1),this.tradeType===d_.EXACT_OUTPUT)return this.outputAmount;var t=new C_(X_).add(e).invert().multiply(this.outputAmount.quotient).quotient;return k_.fromRawAmount(this.outputAmount.currency,t)},t.maximumAmountIn=function(e){if(e.lessThan(K_)&&uv(!1),this.tradeType===d_.EXACT_INPUT)return this.inputAmount;var t=new C_(X_).add(e).multiply(this.inputAmount.quotient).quotient;return k_.fromRawAmount(this.inputAmount.currency,t)},e.bestTradeExactIn=function(t,n,r,i,a,o,s){var u=void 0===i?{}:i,c=u.maxNumResults,l=void 0===c?3:c,d=u.maxHops,f=void 0===d?3:d;void 0===a&&(a=[]),void 0===o&&(o=n),void 0===s&&(s=[]),t.length>0||uv(!1),f>0||uv(!1),n===o||a.length>0||uv(!1);for(var p=o.wrapped,h=r.wrapped,m=0;m<t.length;m++){var y=t[m];if((y.token0.equals(p.currency)||y.token1.equals(p.currency))&&(!y.reserve0.equalTo(K_)&&!y.reserve1.equalTo(K_))){var g=void 0;try{g=y.getOutputAmount(p)[0]}catch(e){if(e.isInsufficientInputAmountError)continue;throw e}if(g.currency.equals(h))L_(s,new e(new pI([].concat(a,[y]),n.currency,r),n,d_.EXACT_INPUT),l,mI);else if(f>1&&t.length>1){var b=t.slice(0,m).concat(t.slice(m+1,t.length));e.bestTradeExactIn(b,n,r,{maxNumResults:l,maxHops:f-1},[].concat(a,[y]),g,s)}}}return s},t.worstExecutionPrice=function(e){return new P_(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactOut=function(t,n,r,i,a,o,s){var u=void 0===i?{}:i,c=u.maxNumResults,l=void 0===c?3:c,d=u.maxHops,f=void 0===d?3:d;void 0===a&&(a=[]),void 0===o&&(o=r),void 0===s&&(s=[]),t.length>0||uv(!1),f>0||uv(!1),r===o||a.length>0||uv(!1);for(var p=o.wrapped,h=n.wrapped,m=0;m<t.length;m++){var y=t[m];if((y.token0.equals(p.currency)||y.token1.equals(p.currency))&&(!y.reserve0.equalTo(K_)&&!y.reserve1.equalTo(K_))){var g=void 0;try{g=y.getInputAmount(p)[0]}catch(e){if(e.isInsufficientReservesError)continue;throw e}if(g.currency.equals(h))L_(s,new e(new pI([y].concat(a),n,r.currency),r,d_.EXACT_OUTPUT),l,mI);else if(f>1&&t.length>1){var b=t.slice(0,m).concat(t.slice(m+1,t.length));e.bestTradeExactOut(b,n,r,{maxNumResults:l,maxHops:f-1},[y].concat(a),g,s)}}}return s},e}();function gI(e){return"0x"+e.quotient.toString(16)}var bI,vI="0x0",wI=function(){function e(){}return e.swapCallParameters=function(e,t){var n=e.inputAmount.currency.isNative,r=e.outputAmount.currency.isNative;n&&r&&uv(!1),!("ttl"in t)||t.ttl>0||uv(!1);var i,a,o,s=M_(t.recipient),u=gI(e.maximumAmountIn(t.allowedSlippage)),c=gI(e.minimumAmountOut(t.allowedSlippage)),l=e.route.path.map((function(e){return e.address})),d="ttl"in t?"0x"+(Math.floor((new Date).getTime()/1e3)+t.ttl).toString(16):"0x"+t.deadline.toString(16),f=Boolean(t.feeOnTransfer);switch(e.tradeType){case d_.EXACT_INPUT:n?(i=f?"swapExactETHForTokensSupportingFeeOnTransferTokens":"swapExactETHForTokens",a=[c,l,s,d],o=u):r?(i=f?"swapExactTokensForETHSupportingFeeOnTransferTokens":"swapExactTokensForETH",a=[u,c,l,s,d],o=vI):(i=f?"swapExactTokensForTokensSupportingFeeOnTransferTokens":"swapExactTokensForTokens",a=[u,c,l,s,d],o=vI);break;case d_.EXACT_OUTPUT:f&&uv(!1),n?(i="swapETHForExactTokens",a=[c,l,s,d],o=u):r?(i="swapTokensForExactETH",a=[c,u,l,s,d],o=vI):(i="swapTokensForExactTokens",a=[c,u,l,s,d],o=vI)}return{methodName:i,args:a,value:o}},e}(),TI=dt(Object.freeze({__proto__:null,FACTORY_ADDRESS:z_,INIT_CODE_HASH:V_,InsufficientInputAmountError:lI,InsufficientReservesError:cI,MINIMUM_LIQUIDITY:W_,Pair:fI,Route:pI,Router:wI,Trade:yI,computePairAddress:dI,inputOutputComparator:hI,tradeComparator:mI})),AI=dt(Eh);NA.exports=(bI||(bI=1,function(e){function t(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(e,"__esModule",{value:!0});var n,r=t(av),i=PA,a=t(kA?OA:(kA=1,OA=function(e,t){if(!e)throw new Error("Invariant failed")})),o=BA,s=DA,u=FA,c=i_,l=a_,d=o_,f=TI,p=AI,h="0x0000000000000000000000000000000000000001",m="0x0000000000000000000000000000000000000002",y=r.BigInt(0),g=r.BigInt(1);function b(e){return Object.keys(e).some((function(e){return"recipient"===e}))}(n=e.ApprovalTypes||(e.ApprovalTypes={}))[n.NOT_REQUIRED=0]="NOT_REQUIRED",n[n.MAX=1]="MAX",n[n.MAX_MINUS_ONE=2]="MAX_MINUS_ONE",n[n.ZERO_THEN_MAX=3]="ZERO_THEN_MAX",n[n.ZERO_THEN_MAX_MINUS_ONE=4]="ZERO_THEN_MAX_MINUS_ONE";var v=function(){function t(){}return t.encodeApproveMax=function(e){return t.INTERFACE.encodeFunctionData("approveMax",[e.address])},t.encodeApproveMaxMinusOne=function(e){return t.INTERFACE.encodeFunctionData("approveMaxMinusOne",[e.address])},t.encodeApproveZeroThenMax=function(e){return t.INTERFACE.encodeFunctionData("approveZeroThenMax",[e.address])},t.encodeApproveZeroThenMaxMinusOne=function(e){return t.INTERFACE.encodeFunctionData("approveZeroThenMaxMinusOne",[e.address])},t.encodeCallPositionManager=function(e){if(e.length>0||a(!1),1==e.length)return t.INTERFACE.encodeFunctionData("callPositionManager",e);var n=s.NonfungiblePositionManager.INTERFACE.encodeFunctionData("multicall",[e]);return t.INTERFACE.encodeFunctionData("callPositionManager",[n])},t.encodeAddLiquidity=function(e,n,i,a){var o=e.mintAmountsWithSlippage(a),u=o.amount0,c=o.amount1;return r.lessThan(n.amount0.quotient,u)&&(u=n.amount0.quotient),r.lessThan(n.amount1.quotient,c)&&(c=n.amount1.quotient),b(i)?t.INTERFACE.encodeFunctionData("mint",[{token0:e.pool.token0.address,token1:e.pool.token1.address,fee:e.pool.fee,tickLower:e.tickLower,tickUpper:e.tickUpper,amount0Min:s.toHex(u),amount1Min:s.toHex(c),recipient:i.recipient}]):t.INTERFACE.encodeFunctionData("increaseLiquidity",[{token0:e.pool.token0.address,token1:e.pool.token1.address,amount0Min:s.toHex(u),amount1Min:s.toHex(c),tokenId:s.toHex(i.tokenId)}])},t.encodeApprove=function(n,r){switch(r){case e.ApprovalTypes.MAX:return t.encodeApproveMax(n.wrapped);case e.ApprovalTypes.MAX_MINUS_ONE:return t.encodeApproveMaxMinusOne(n.wrapped);case e.ApprovalTypes.ZERO_THEN_MAX:return t.encodeApproveZeroThenMax(n.wrapped);case e.ApprovalTypes.ZERO_THEN_MAX_MINUS_ONE:return t.encodeApproveZeroThenMaxMinusOne(n.wrapped);default:throw"Error: invalid ApprovalType"}},t}();v.INTERFACE=new i.Interface(o.abi);var w=function(){function e(){}return e.encodeMulticall=function(t,n){if(void 0===n)return s.Multicall.encodeMulticall(t);if(Array.isArray(t)||(t=[t]),"string"==typeof n&&n.startsWith("0x")){var r=function(e){if(!e.match(/^0x[0-9a-fA-F]{64}$/))throw new Error(e+" is not valid bytes32.");return e.toLowerCase()}(n);return e.INTERFACE.encodeFunctionData("multicall(bytes32,bytes[])",[r,t])}var i=s.toHex(n);return e.INTERFACE.encodeFunctionData("multicall(uint256,bytes[])",[i,t])},e}();function T(e){return s.toHex(e.multiply(1e4).quotient)}w.INTERFACE=new i.Interface(u.abi);var A=function(){function e(){}return e.encodeUnwrapWETH9=function(t,n,r){if("string"==typeof n)return s.Payments.encodeUnwrapWETH9(t,n,r);if(r){var i=T(r.fee),a=c.validateAndParseAddress(r.recipient);return e.INTERFACE.encodeFunctionData("unwrapWETH9WithFee(uint256,uint256,address)",[s.toHex(t),i,a])}return e.INTERFACE.encodeFunctionData("unwrapWETH9(uint256)",[s.toHex(t)])},e.encodeSweepToken=function(t,n,r,i){if("string"==typeof r)return s.Payments.encodeSweepToken(t,n,r,i);if(i){var a=T(i.fee),o=c.validateAndParseAddress(i.recipient);return e.INTERFACE.encodeFunctionData("sweepTokenWithFee(address,uint256,uint256,address)",[t.address,s.toHex(n),a,o])}return e.INTERFACE.encodeFunctionData("sweepToken(address,uint256)",[t.address,s.toHex(n)])},e.encodePull=function(t,n){return e.INTERFACE.encodeFunctionData("pull",[t.address,s.toHex(n)])},e.encodeWrapETH=function(t){return e.INTERFACE.encodeFunctionData("wrapETH",[s.toHex(t)])},e}();function E(e,t,n,r,i,a,o){try{var s=e[a](o),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function _(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){E(a,r,i,o,s,"next",e)}function s(e){E(a,r,i,o,s,"throw",e)}o(void 0)}))}}function I(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function R(e,t,n){return t&&I(e.prototype,t),n&&I(e,n),e}function C(){return(C=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function O(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function S(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return k(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}A.INTERFACE=new i.Interface(l.abi);var N,x=(function(e){var t=function(e){var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var i=Object.create((t&&t.prototype instanceof d?t:d).prototype),a=new E(r||[]);return i._invoke=function(e,t,n){var r="suspendedStart";return function(i,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw a;return{value:void 0,done:!0}}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var s=w(o,n);if(s){if(s===l)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var u=c(e,t,n);if("normal"===u.type){if(r=n.done?"completed":"suspendedYield",u.arg===l)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r="completed",n.method="throw",n.arg=u.arg)}}}(e,n,a),i}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var l={};function d(){}function f(){}function p(){}var h={};s(h,i,(function(){return this}));var m=Object.getPrototypeOf,y=m&&m(m(_([])));y&&y!==t&&n.call(y,i)&&(h=y);var g=p.prototype=d.prototype=Object.create(h);function b(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function v(e,t){var r;this._invoke=function(i,a){function o(){return new t((function(r,o){!function r(i,a,o,s){var u=c(e[i],e,a);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==typeof d&&n.call(d,"__await")?t.resolve(d.__await).then((function(e){r("next",e,o,s)}),(function(e){r("throw",e,o,s)})):t.resolve(d).then((function(e){l.value=e,o(l)}),(function(e){return r("throw",e,o,s)}))}s(u.arg)}(i,a,r,o)}))}return r=r?r.then(o,o):o()}}function w(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,w(e,t),"throw"===t.method))return l;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var r=c(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,l;var i=r.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,l):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,l)}function T(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function A(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function _(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:I}}function I(){return{value:void 0,done:!0}}return f.prototype=p,s(g,"constructor",p),s(p,"constructor",f),f.displayName=s(p,o,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,s(e,o,"GeneratorFunction")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},b(v.prototype),s(v.prototype,a,(function(){return this})),e.AsyncIterator=v,e.async=function(t,n,r,i,a){void 0===a&&(a=Promise);var o=new v(u(t,n,r,i),a);return e.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},b(g),s(g,o,"Generator"),s(g,i,(function(){return this})),s(g,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=_,E.prototype={constructor:E,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(A),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return o.type="throw",o.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(s&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,l):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),l},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),A(n),l}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;A(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:_(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),l}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}}(N={exports:{}}),N.exports),P=function(){function e(e,t,n){this._midPrice=null,e.length>0||a(!1);var r=e[0].chainId;e.every((function(e){return e.chainId===r}))||a(!1);var i=t.wrapped;e[0].involvesToken(i)||a(!1),e[e.length-1].involvesToken(n.wrapped)||a(!1);for(var o,s=[i],u=S(e.entries());!(o=u()).done;){var c=o.value,l=c[1],d=s[c[0]];d.equals(l.token0)||d.equals(l.token1)||a(!1);var f=d.equals(l.token0)?l.token1:l.token0;s.push(f)}this.pools=e,this.path=s,this.input=t,this.output=null!=n?n:s[s.length-1]}return R(e,[{key:"chainId",get:function(){return this.pools[0].chainId}},{key:"midPrice",get:function(){if(null!==this._midPrice)return this._midPrice;var e=this.pools.slice(1).reduce((function(e,t){var n=e.price;return e.nextInput.equals(t.token0)?{nextInput:t.token1,price:n.multiply(t.token0Price)}:{nextInput:t.token0,price:n.multiply(t.token1Price)}}),this.pools[0].token0.equals(this.input.wrapped)?{nextInput:this.pools[0].token1,price:this.pools[0].token0Price}:{nextInput:this.pools[0].token0,price:this.pools[0].token1Price}).price;return this._midPrice=new c.Price(this.input,this.output,e.denominator,e.numerator)}}]),e}();function M(e,t){return e.inputAmount.currency.equals(t.inputAmount.currency)||a(!1),e.outputAmount.currency.equals(t.outputAmount.currency)||a(!1),e.outputAmount.equalTo(t.outputAmount)?e.inputAmount.equalTo(t.inputAmount)?e.swaps.reduce((function(e,t){return e+t.route.path.length}),0)-t.swaps.reduce((function(e,t){return e+t.route.path.length}),0):e.inputAmount.lessThan(t.inputAmount)?-1:1:e.outputAmount.lessThan(t.outputAmount)?1:-1}var B,D=function(){function e(e){var t=e.routes,n=e.tradeType,r=t[0].inputAmount.currency,i=t[0].outputAmount.currency;t.every((function(e){return r.wrapped.equals(e.route.input.wrapped)}))||a(!1),t.every((function(e){return i.wrapped.equals(e.route.output.wrapped)}))||a(!1);for(var o,u=t.map((function(e){return e.route.pools.length})).reduce((function(e,t){return e+t}),0),l=new Set,d=S(t);!(o=d()).done;)for(var p,h=S(o.value.route.pools);!(p=h()).done;){var m=p.value;l.add(m instanceof s.Pool?s.Pool.getAddress(m.token0,m.token1,m.fee):f.Pair.getAddress(m.token0,m.token1))}u!=l.size&&a(!1),n!==c.TradeType.EXACT_INPUT&&a(!1),this.swaps=t,this.tradeType=n}e.fromRoute=function(){var t=_(x.mark((function t(n,r,i){var o,s,u,l,d;return x.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:o=new Array(n.path.length),i!==c.TradeType.EXACT_INPUT&&a(!1),r.currency.equals(n.input)||a(!1),o[0]=r.wrapped,l=0;case 5:if(!(l<n.path.length-1)){t.next=15;break}return d=n.pools[l],t.next=9,d.getOutputAmount(o[l]);case 9:o[l+1]=t.sent[0];case 12:l++,t.next=5;break;case 15:return s=c.CurrencyAmount.fromFractionalAmount(n.input,r.numerator,r.denominator),u=c.CurrencyAmount.fromFractionalAmount(n.output,o[o.length-1].numerator,o[o.length-1].denominator),t.abrupt("return",new e({routes:[{inputAmount:s,outputAmount:u,route:n}],tradeType:i}));case 18:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),e.fromRoutes=function(){var t=_(x.mark((function t(n,r){var i,o,s,u,l,d,f,p,h,m,y;return x.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:i=[],r!==c.TradeType.EXACT_INPUT&&a(!1),o=S(n);case 3:if((s=o()).done){t.next=26;break}l=(u=s.value).route,d=u.amount,f=new Array(l.path.length),p=void 0,h=void 0,d.currency.equals(l.input)||a(!1),p=c.CurrencyAmount.fromFractionalAmount(l.input,d.numerator,d.denominator),f[0]=c.CurrencyAmount.fromFractionalAmount(l.input.wrapped,d.numerator,d.denominator),m=0;case 12:if(!(m<l.path.length-1)){t.next=22;break}return y=l.pools[m],t.next=16,y.getOutputAmount(f[m]);case 16:f[m+1]=t.sent[0];case 19:m++,t.next=12;break;case 22:h=c.CurrencyAmount.fromFractionalAmount(l.output,f[f.length-1].numerator,f[f.length-1].denominator),i.push({route:l,inputAmount:p,outputAmount:h});case 24:t.next=3;break;case 26:return t.abrupt("return",new e({routes:i,tradeType:r}));case 27:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.createUncheckedTrade=function(t){return new e(C({},t,{routes:[{inputAmount:t.inputAmount,outputAmount:t.outputAmount,route:t.route}]}))},e.createUncheckedTradeWithMultipleRoutes=function(t){return new e(t)};var t=e.prototype;return t.minimumAmountOut=function(e,t){void 0===t&&(t=this.outputAmount),e.lessThan(y)&&a(!1);var n=new c.Fraction(g).add(e).invert().multiply(t.quotient).quotient;return c.CurrencyAmount.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){return void 0===t&&(t=this.inputAmount),e.lessThan(y)&&a(!1),t},t.worstExecutionPrice=function(e){return new c.Price(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactIn=function(){var t=_(x.mark((function t(n,r,i,o,s,u,l){var d,p,h,m,g,b,v,w,T,A,E;return x.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:h=void 0===(p=(d=void 0===o?{}:o).maxNumResults)?3:p,g=void 0===(m=d.maxHops)?3:m,void 0===s&&(s=[]),void 0===u&&(u=r),void 0===l&&(l=[]),n.length>0||a(!1),g>0||a(!1),r===u||s.length>0||a(!1),b=u.wrapped,v=i.wrapped,w=0;case 10:if(!(w<n.length)){t.next=49;break}if((T=n[w]).token0.equals(b.currency)||T.token1.equals(b.currency)){t.next=14;break}return t.abrupt("continue",46);case 14:if(!(T instanceof f.Pair)){t.next=17;break}if(!T.reserve0.equalTo(y)&&!T.reserve1.equalTo(y)){t.next=17;break}return t.abrupt("continue",46);case 17:return A=void 0,t.prev=18,t.next=22,T.getOutputAmount(b);case 22:A=t.sent[0],t.next=31;break;case 26:if(t.prev=26,t.t0=t.catch(18),!t.t0.isInsufficientInputAmountError){t.next=30;break}return t.abrupt("continue",46);case 30:throw t.t0;case 31:if(!A.currency.isToken||!A.currency.equals(v)){t.next=42;break}return t.t1=c.sortedInsert,t.t2=l,t.next=36,e.fromRoute(new P([].concat(s,[T]),r.currency,i),r,c.TradeType.EXACT_INPUT);case 36:t.t3=t.sent,t.t4=h,t.t5=M,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=46;break;case 42:if(!(g>1&&n.length>1)){t.next=46;break}return E=n.slice(0,w).concat(n.slice(w+1,n.length)),t.next=46,e.bestTradeExactIn(E,r,i,{maxNumResults:h,maxHops:g-1},[].concat(s,[T]),A,l);case 46:w++,t.next=10;break;case 49:return t.abrupt("return",l);case 50:case"end":return t.stop()}}),t,null,[[18,26]])})));return function(e,n,r,i,a,o,s){return t.apply(this,arguments)}}(),R(e,[{key:"route",get:function(){return 1!=this.swaps.length&&a(!1),this.swaps[0].route}},{key:"inputAmount",get:function(){if(this._inputAmount)return this._inputAmount;var e=this.swaps[0].inputAmount.currency,t=this.swaps.map((function(e){return e.inputAmount})).reduce((function(e,t){return e.add(t)}),c.CurrencyAmount.fromRawAmount(e,0));return this._inputAmount=t,this._inputAmount}},{key:"outputAmount",get:function(){if(this._outputAmount)return this._outputAmount;var e=this.swaps[0].outputAmount.currency,t=this.swaps.map((function(e){return e.outputAmount})).reduce((function(e,t){return e.add(t)}),c.CurrencyAmount.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:"executionPrice",get:function(){var e;return null!=(e=this._executionPrice)?e:this._executionPrice=new c.Price(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:"priceImpact",get:function(){if(this._priceImpact)return this._priceImpact;for(var e,t=c.CurrencyAmount.fromRawAmount(this.outputAmount.currency,0),n=S(this.swaps);!(e=n()).done;){var r=e.value;t=t.add(r.route.midPrice.quote(r.inputAmount))}var i=t.subtract(this.outputAmount).divide(t);return this._priceImpact=new c.Percent(i.numerator,i.denominator),this._priceImpact}}]),e}();(B=e.Protocol||(e.Protocol={})).V2="V2",B.V3="V3",B.MIXED="MIXED";var F=function(t){function n(n){var r;return(r=t.call(this,n.pairs,n.input,n.output)||this).protocol=e.Protocol.V2,r.pools=r.pairs,r}return O(n,t),n}(f.Route),L=function(t){function n(n){var r;return(r=t.call(this,n.pools,n.input,n.output)||this).protocol=e.Protocol.V3,r.path=n.tokenPath,r}return O(n,t),n}(s.Route),U=function(t){function n(n){var r;return(r=t.call(this,n.pools,n.input,n.output)||this).protocol=e.Protocol.MIXED,r}return O(n,t),n}(P),q=function(){function e(e){var t=e.v2Routes,n=e.v3Routes,r=e.tradeType,i=e.mixedRoutes;this.swaps=[],this.routes=[];for(var o,u=S(t);!(o=u()).done;){var c=o.value,l=c.inputAmount,d=c.outputAmount,p=new F(c.routev2);this.routes.push(p),this.swaps.push({route:p,inputAmount:l,outputAmount:d})}for(var h,m=S(n);!(h=m()).done;){var y=h.value,g=y.inputAmount,b=y.outputAmount,v=new L(y.routev3);this.routes.push(v),this.swaps.push({route:v,inputAmount:g,outputAmount:b})}if(i)for(var w,T=S(i);!(w=T()).done;){var A=w.value,E=A.inputAmount,_=A.outputAmount,I=new U(A.mixedRoute);this.routes.push(I),this.swaps.push({route:I,inputAmount:E,outputAmount:_})}this.tradeType=r;var R=this.swaps[0].inputAmount.currency,C=this.swaps[0].outputAmount.currency;this.swaps.every((function(e){return R.wrapped.equals(e.route.input.wrapped)}))||a(!1),this.swaps.every((function(e){return C.wrapped.equals(e.route.output.wrapped)}))||a(!1);for(var O,k=this.swaps.map((function(e){return e.route.pools.length})).reduce((function(e,t){return e+t}),0),N=new Set,x=S(this.swaps);!(O=x()).done;)for(var P,M=S(O.value.route.pools);!(P=M()).done;){var B=P.value;if(B instanceof s.Pool)N.add(s.Pool.getAddress(B.token0,B.token1,B.fee));else{if(!(B instanceof f.Pair))throw new Error("Unexpected pool type in route when constructing trade object");N.add(f.Pair.getAddress(B.token0,B.token1))}}k!=N.size&&a(!1)}var t=e.prototype;return t.minimumAmountOut=function(e,t){if(void 0===t&&(t=this.outputAmount),e.lessThan(y)&&a(!1),this.tradeType===c.TradeType.EXACT_OUTPUT)return t;var n=new c.Fraction(g).add(e).invert().multiply(t.quotient).quotient;return c.CurrencyAmount.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){if(void 0===t&&(t=this.inputAmount),e.lessThan(y)&&a(!1),this.tradeType===c.TradeType.EXACT_INPUT)return t;var n=new c.Fraction(g).add(e).multiply(t.quotient).quotient;return c.CurrencyAmount.fromRawAmount(t.currency,n)},t.worstExecutionPrice=function(e){return new c.Price(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.fromRoutes=function(){var t=_(x.mark((function t(n,r,i,a){var o,u,c,l,d,p,h,m,y,g,b,v,w,T,A,E,_,I,R,C;return x.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:for(o=[],u=[],c=[],l=S(n);!(d=l()).done;)m=new f.Trade(h=(p=d.value).routev2,p.amount,i),o.push({routev2:h,inputAmount:m.inputAmount,outputAmount:m.outputAmount});y=S(r);case 5:if((g=y()).done){t.next=14;break}return v=(b=g.value).routev3,w=b.amount,t.next=9,s.Trade.fromRoute(v,w,i);case 9:u.push({routev3:v,inputAmount:(T=t.sent).inputAmount,outputAmount:T.outputAmount});case 12:t.next=5;break;case 14:if(!a){t.next=25;break}A=S(a);case 16:if((E=A()).done){t.next=25;break}return I=(_=E.value).mixedRoute,R=_.amount,t.next=20,D.fromRoute(I,R,i);case 20:c.push({mixedRoute:I,inputAmount:(C=t.sent).inputAmount,outputAmount:C.outputAmount});case 23:t.next=16;break;case 25:return t.abrupt("return",new e({v2Routes:o,v3Routes:u,mixedRoutes:c,tradeType:i}));case 26:case"end":return t.stop()}}),t)})));return function(e,n,r,i){return t.apply(this,arguments)}}(),e.fromRoute=function(){var t=_(x.mark((function t(n,r,i){var a,o,u,c,l,d;return x.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=[],o=[],u=[],!(n instanceof f.Route)){t.next=9;break}c=new f.Trade(n,r,i),a=[{routev2:n,inputAmount:c.inputAmount,outputAmount:c.outputAmount}],t.next=26;break;case 9:if(!(n instanceof s.Route)){t.next=17;break}return t.next=12,s.Trade.fromRoute(n,r,i);case 12:o=[{routev3:n,inputAmount:(l=t.sent).inputAmount,outputAmount:l.outputAmount}],t.next=26;break;case 17:if(!(n instanceof P)){t.next=25;break}return t.next=20,D.fromRoute(n,r,i);case 20:u=[{mixedRoute:n,inputAmount:(d=t.sent).inputAmount,outputAmount:d.outputAmount}],t.next=26;break;case 25:throw new Error("Invalid route type");case 26:return t.abrupt("return",new e({v2Routes:a,v3Routes:o,mixedRoutes:u,tradeType:i}));case 27:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),R(e,[{key:"inputAmount",get:function(){if(this._inputAmount)return this._inputAmount;var e=this.swaps[0].inputAmount.currency,t=this.swaps.map((function(e){return e.inputAmount})).reduce((function(e,t){return e.add(t)}),c.CurrencyAmount.fromRawAmount(e,0));return this._inputAmount=t,this._inputAmount}},{key:"outputAmount",get:function(){if(this._outputAmount)return this._outputAmount;var e=this.swaps[0].outputAmount.currency,t=this.swaps.map((function(e){return e.outputAmount})).reduce((function(e,t){return e.add(t)}),c.CurrencyAmount.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:"executionPrice",get:function(){var e;return null!=(e=this._executionPrice)?e:this._executionPrice=new c.Price(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:"priceImpact",get:function(){if(this._priceImpact)return this._priceImpact;for(var e,t=c.CurrencyAmount.fromRawAmount(this.outputAmount.currency,0),n=S(this.swaps);!(e=n()).done;){var r=e.value;t=t.add(r.route.midPrice.quote(r.inputAmount))}var i=t.subtract(this.outputAmount).divide(t);return this._priceImpact=new c.Percent(i.numerator,i.denominator),this._priceImpact}}]),e}();function j(e){var t=e.pools.reduce((function(e,t,n){var r=e.inputToken,i=e.path,a=e.types,o=t.token0.equals(r)?t.token1:t.token0;return 0===n?{inputToken:o,types:["address","uint24","address"],path:[r.address,t instanceof s.Pool?t.fee:8388608,o.address]}:{inputToken:o,types:[].concat(a,["uint24","address"]),path:[].concat(i,[t instanceof s.Pool?t.fee:8388608,o.address])}}),{inputToken:e.input.wrapped,path:[],types:[]});return p.pack(t.types,t.path)}var G=function(e){for(var t=[],n=0,r=0;r<e.pools.length;)(e.pools[n]instanceof s.Pool&&e.pools[r]instanceof f.Pair||e.pools[n]instanceof f.Pair&&e.pools[r]instanceof s.Pool)&&(t.push(e.pools.slice(n,r)),n=r),++r===e.pools.length&&t.push(e.pools.slice(n,r));return t},H=function(e,t){return e.reduce((function(e,t){var n=e.inputToken;if(!t.involvesToken(n))throw new Error("PATH");return{inputToken:t.token0.equals(n)?t.token1:t.token0}}),{inputToken:t}).inputToken},z=r.BigInt(0),V=new c.Percent(r.BigInt(50),r.BigInt(100)),W=function(){function t(){}return t.encodeV2Swap=function(e,n,r,i){var a=s.toHex(e.maximumAmountIn(n.slippageTolerance).quotient),o=s.toHex(e.minimumAmountOut(n.slippageTolerance).quotient),u=e.route.path.map((function(e){return e.address})),l=r?m:void 0===n.recipient?h:c.validateAndParseAddress(n.recipient);return e.tradeType===c.TradeType.EXACT_INPUT?t.INTERFACE.encodeFunctionData("swapExactTokensForTokens",[a,i?0:o,u,l]):t.INTERFACE.encodeFunctionData("swapTokensForExactTokens",[o,a,u,l])},t.encodeV3Swap=function(e,n,r,i){for(var a,o=[],u=S(e.swaps);!(a=u()).done;){var l=a.value,d=l.route,f=l.outputAmount,p=s.toHex(e.maximumAmountIn(n.slippageTolerance,l.inputAmount).quotient),y=s.toHex(e.minimumAmountOut(n.slippageTolerance,f).quotient),g=1===d.pools.length,b=r?m:void 0===n.recipient?h:c.validateAndParseAddress(n.recipient);if(g)o.push(e.tradeType===c.TradeType.EXACT_INPUT?t.INTERFACE.encodeFunctionData("exactInputSingle",[{tokenIn:d.tokenPath[0].address,tokenOut:d.tokenPath[1].address,fee:d.pools[0].fee,recipient:b,amountIn:p,amountOutMinimum:i?0:y,sqrtPriceLimitX96:0}]):t.INTERFACE.encodeFunctionData("exactOutputSingle",[{tokenIn:d.tokenPath[0].address,tokenOut:d.tokenPath[1].address,fee:d.pools[0].fee,recipient:b,amountOut:y,amountInMaximum:p,sqrtPriceLimitX96:0}]));else{var v=s.encodeRouteToPath(d,e.tradeType===c.TradeType.EXACT_OUTPUT);o.push(e.tradeType===c.TradeType.EXACT_INPUT?t.INTERFACE.encodeFunctionData("exactInput",[{path:v,recipient:b,amountIn:p,amountOutMinimum:i?0:y}]):t.INTERFACE.encodeFunctionData("exactOutput",[{path:v,recipient:b,amountOut:y,amountInMaximum:p}]))}}return o},t.encodeMixedRouteSwap=function(e,n,r,i){var o=[];e.tradeType!==c.TradeType.EXACT_INPUT&&a(!1);for(var u,l=S(e.swaps);!(u=l()).done;){var d=u.value,f=d.route,p=d.outputAmount,y=s.toHex(e.maximumAmountIn(n.slippageTolerance,d.inputAmount).quotient),g=s.toHex(e.minimumAmountOut(n.slippageTolerance,p).quotient),b=1===f.pools.length,v=r?m:void 0===n.recipient?h:c.validateAndParseAddress(n.recipient),w=function(e){return e.pools.every((function(e){return e instanceof s.Pool}))};if(b)if(w(f))o.push(t.INTERFACE.encodeFunctionData("exactInputSingle",[{tokenIn:f.path[0].address,tokenOut:f.path[1].address,fee:f.pools[0].fee,recipient:v,amountIn:y,amountOutMinimum:i?0:g,sqrtPriceLimitX96:0}]));else{var T=f.path.map((function(e){return e.address}));o.push(t.INTERFACE.encodeFunctionData("swapExactTokensForTokens",[y,i?0:g,T,v]))}else!function(){for(var e=G(f),n=function(t){return t===e.length-1},r=void 0,i=f.input.wrapped,a=0;a<e.length;a++){var s=e[a];r=H(s,i);var u=new P([].concat(s),s[0].token0.equals(i)?s[0].token0:s[0].token1,r),c=new U(u);if(i=r,w(c)){var l={path:j(c),recipient:n(a)?v:m,amountIn:0==a?y:0,amountOutMinimum:n(a)?g:0};o.push(t.INTERFACE.encodeFunctionData("exactInput",[l]))}else{var d=[0==a?y:0,n(a)?g:0,c.path.map((function(e){return e.address})),n(a)?v:m];o.push(t.INTERFACE.encodeFunctionData("swapExactTokensForTokens",d))}}}()}return o},t.encodeSwaps=function(n,r,i){if(n instanceof q){n.swaps.every((function(t){return t.route.protocol==e.Protocol.V3||t.route.protocol==e.Protocol.V2||t.route.protocol==e.Protocol.MIXED}))||a(!1);for(var o,u=[],l=S(n.swaps);!(o=l()).done;){var d=o.value,p=d.route,h=d.inputAmount,m=d.outputAmount;if(p.protocol==e.Protocol.V2)u.push(new f.Trade(p,n.tradeType==c.TradeType.EXACT_INPUT?h:m,n.tradeType));else if(p.protocol==e.Protocol.V3)u.push(s.Trade.createUncheckedTrade({route:p,inputAmount:h,outputAmount:m,tradeType:n.tradeType}));else{if(p.protocol!=e.Protocol.MIXED)throw new Error("UNSUPPORTED_TRADE_PROTOCOL");u.push(D.createUncheckedTrade({route:p,inputAmount:h,outputAmount:m,tradeType:n.tradeType}))}}n=u}Array.isArray(n)||(n=[n]);var y=n.reduce((function(e,t){return e+(t instanceof s.Trade||t instanceof D?t.swaps.length:1)}),0),g=n[0];n.every((function(e){return e.inputAmount.currency.equals(g.inputAmount.currency)}))||a(!1),n.every((function(e){return e.outputAmount.currency.equals(g.outputAmount.currency)}))||a(!1),n.every((function(e){return e.tradeType===g.tradeType}))||a(!1);var b=[],v=g.inputAmount.currency.isNative,w=g.outputAmount.currency.isNative,T=g.tradeType===c.TradeType.EXACT_INPUT&&y>2,A=w||!!r.fee||!!i||T;r.inputTokenPermit&&(g.inputAmount.currency.isToken||a(!1),b.push(s.SelfPermit.encodePermit(g.inputAmount.currency,r.inputTokenPermit)));for(var E,_=S(n);!(E=_()).done;){var I=E.value;if(I instanceof f.Trade)b.push(t.encodeV2Swap(I,r,A,T));else if(I instanceof s.Trade)for(var R,C=S(t.encodeV3Swap(I,r,A,T));!(R=C()).done;)b.push(R.value);else{if(!(I instanceof D))throw new Error("Unsupported trade object");for(var O,k=S(t.encodeMixedRouteSwap(I,r,A,T));!(O=k()).done;)b.push(O.value)}}var N=c.CurrencyAmount.fromRawAmount(g.inputAmount.currency,0),x=c.CurrencyAmount.fromRawAmount(g.outputAmount.currency,0),P=n.reduce((function(e,t){return e.add(t.minimumAmountOut(r.slippageTolerance))}),x),M=n.reduce((function(e,t){return e.add(t.outputAmount)}),x),B=n.reduce((function(e,t){return e.add(t.maximumAmountIn(r.slippageTolerance))}),N);return{calldatas:b,sampleTrade:g,routerMustCustody:A,inputIsNative:v,outputIsNative:w,totalAmountIn:B,minimumAmountOut:P,quoteAmountOut:M}},t.swapCallParameters=function(e,n){var r=t.encodeSwaps(e,n),i=r.calldatas,a=r.sampleTrade,o=r.inputIsNative,u=r.totalAmountIn,l=r.minimumAmountOut;return r.routerMustCustody&&i.push(r.outputIsNative?A.encodeUnwrapWETH9(l.quotient,n.recipient,n.fee):A.encodeSweepToken(a.outputAmount.currency.wrapped,l.quotient,n.recipient,n.fee)),o&&(a.tradeType===c.TradeType.EXACT_OUTPUT||t.riskOfPartialFill(e))&&i.push(s.Payments.encodeRefundETH()),{calldata:w.encodeMulticall(i,n.deadlineOrPreviousBlockhash),value:s.toHex(o?u.quotient:z)}},t.swapAndAddCallParameters=function(n,r,i,o,u,l){var d=t.encodeSwaps(n,r,!0),f=d.calldatas,p=d.inputIsNative,h=d.outputIsNative,m=d.sampleTrade,y=d.totalAmountIn,g=d.quoteAmountOut,b=d.minimumAmountOut;r.outputTokenPermit&&(g.currency.isToken||a(!1),f.push(s.SelfPermit.encodePermit(g.currency,r.outputTokenPermit)));var T=m.route.chainId,E=i.pool.token0.wrapped.address===y.currency.wrapped.address,_=t.getPositionAmounts(i,E),I=_.positionAmountIn,R=_.positionAmountOut,C=p?c.WETH9[T]:I.currency.wrapped,O=h?c.WETH9[T]:R.currency.wrapped,k=R.subtract(g.wrapped);k.greaterThan(c.CurrencyAmount.fromRawAmount(R.currency,0))&&f.push(h?A.encodeWrapETH(k.quotient):A.encodePull(O,k.quotient)),f.push(p?A.encodeWrapETH(I.quotient):A.encodePull(C,I.quotient)),u!==e.ApprovalTypes.NOT_REQUIRED&&f.push(v.encodeApprove(C,u)),l!==e.ApprovalTypes.NOT_REQUIRED&&f.push(v.encodeApprove(O,l));var S,N=s.Position.fromAmounts({pool:i.pool,tickLower:i.tickLower,tickUpper:i.tickUpper,amount0:E?i.amount0.quotient.toString():b.quotient.toString(),amount1:E?b.quotient.toString():i.amount1.quotient.toString(),useFullPrecision:!1});return f.push(v.encodeAddLiquidity(i,N,o,r.slippageTolerance)),f.push(p?A.encodeUnwrapWETH9(z):A.encodeSweepToken(C,z)),f.push(h?A.encodeUnwrapWETH9(z):A.encodeSweepToken(O,z)),S=p?y.wrapped.add(I.wrapped).quotient:h?k.quotient:z,{calldata:w.encodeMulticall(f,r.deadlineOrPreviousBlockhash),value:S.toString()}},t.riskOfPartialFill=function(e){return Array.isArray(e)?e.some((function(e){return t.v3TradeWithHighPriceImpact(e)})):t.v3TradeWithHighPriceImpact(e)},t.v3TradeWithHighPriceImpact=function(e){return!(e instanceof f.Trade)&&e.priceImpact.greaterThan(V)},t.getPositionAmounts=function(e,t){var n=e.mintAmounts,r=n.amount1,i=c.CurrencyAmount.fromRawAmount(e.pool.token0,n.amount0),a=c.CurrencyAmount.fromRawAmount(e.pool.token1,r),o=t?[i,a]:[a,i];return{positionAmountIn:o[0],positionAmountOut:o[1]}},t}();W.INTERFACE=new i.Interface(d.abi),e.ADDRESS_THIS=m,e.ApproveAndCall=v,e.MSG_SENDER=h,e.MixedRoute=U,e.MixedRouteSDK=P,e.MixedRouteTrade=D,e.MulticallExtended=w,e.ONE=g,e.PaymentsExtended=A,e.RouteV2=F,e.RouteV3=L,e.SwapRouter=W,e.Trade=q,e.V2_FEE_PATH_PLACEHOLDER=8388608,e.ZERO=y,e.encodeMixedRouteToPath=j,e.getOutputOfPools=H,e.isMint=b,e.partitionMixedRouteByProtocol=G,e.tradeComparator=M}(xA)),xA);var EI,_I=NA.exports;!function(e){e.INVALID_CONFIGURATION="INVALID_CONFIGURATION",e.INVALID_SLIPPAGE="INVALID_SLIPPAGE",e.INVALID_MAX_HOPS="INVALID_MAX_HOPS",e.INVALID_ADDRESS="INVALID_ADDRESS",e.DUPLICATE_ADDRESSES="DUPLICATE_ADDRESSES",e.CHAIN_NOT_SUPPORTED="CHAIN_NOT_SUPPORTED",e.NO_ROUTES_AVAILABLE="NO_ROUTES_AVAILABLE",e.PROVIDER_CALL_ERROR="PROVIDER_CALL_ERROR",e.APPROVE_ERROR="APPROVE_ERROR",e.ALREADY_APPROVED_ERROR="ALREADY_APPROVED_ERROR"}(EI||(EI={}));class II extends Error{message;code;constructor(e,t){super(e),this.message=e,this.code=t}}class RI extends II{constructor(e){super(e||"Invalid configuration",EI.INVALID_CONFIGURATION)}}class CI extends II{constructor(e,t){super(`Chain with ID ${e} is not a supported chain in environment ${t}`,EI.CHAIN_NOT_SUPPORTED)}}class OI extends II{constructor(e){super(e,EI.INVALID_SLIPPAGE)}}class kI extends II{constructor(e){super(e,EI.INVALID_MAX_HOPS)}}class SI extends II{constructor(e){super(e,EI.INVALID_ADDRESS)}}class NI extends II{constructor(){super("token in and token out addresses must be different",EI.DUPLICATE_ADDRESSES)}}class xI extends II{constructor(){super("no routes available",EI.NO_ROUTES_AVAILABLE)}}class PI extends II{constructor(e){super(e,EI.PROVIDER_CALL_ERROR)}}class MI extends II{constructor(e){super(e,EI.APPROVE_ERROR)}}const BI=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}];class DI{static abi=BI;static createInterface(){return new Lo(BI)}static connect(e,t){return new vl(e,BI,t)}}const FI=[{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"gasLimit",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct UniswapInterfaceMulticall.Call[]",name:"calls",type:"tuple[]"}],name:"multicall",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"uint256",name:"gasUsed",type:"uint256"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct UniswapInterfaceMulticall.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}],LI="0x608060405234801561001057600080fd5b50610567806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f28c97d146100465780631749e1e3146100645780634d2301cc14610085575b600080fd5b61004e610098565b60405161005b919061041f565b60405180910390f35b6100776100723660046102a7565b61009c565b60405161005b929190610428565b61004e610093366004610286565b610220565b4290565b8051439060609067ffffffffffffffff811180156100b957600080fd5b506040519080825280602002602001820160405280156100f357816020015b6100e061023a565b8152602001906001900390816100d85790505b50905060005b835181101561021a57600080600086848151811061011357fe5b60200260200101516000015187858151811061012b57fe5b60200260200101516020015188868151811061014357fe5b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff1685856040516101839190610403565b60006040518083038160008787f1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b509150915060005a8403905060405180606001604052808415158152602001828152602001838152508989815181106101fb57fe5b60200260200101819052505050505050505080806001019150506100f9565b50915091565b73ffffffffffffffffffffffffffffffffffffffff163190565b604051806060016040528060001515815260200160008152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461028157600080fd5b919050565b600060208284031215610297578081fd5b6102a08261025d565b9392505050565b600060208083850312156102b9578182fd5b823567ffffffffffffffff808211156102d0578384fd5b818501915085601f8301126102e3578384fd5b8135818111156102ef57fe5b6102fc8485830201610506565b81815284810190848601875b848110156103f457813587017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0606081838f03011215610346578a8bfd5b60408051606081018181108b8211171561035c57fe5b8252610369848d0161025d565b8152818401358c82015260608401358a811115610384578d8efd5b8085019450508e603f850112610398578c8dfd5b8b8401358a8111156103a657fe5b6103b68d85601f84011601610506565b93508084528f838287010111156103cb578d8efd5b808386018e86013783018c018d9052908101919091528552509287019290870190600101610308565b50909998505050505050505050565b6000825161041581846020870161052a565b9190910192915050565b90815260200190565b600060408083018584526020828186015281865180845260609350838701915083838202880101838901875b838110156104f6578983037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa001855281518051151584528681015187850152880151888401889052805188850181905260806104b582828801858c0161052a565b96880196601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01694909401909301925090850190600101610454565b50909a9950505050505050505050565b60405181810167ffffffffffffffff8111828210171561052257fe5b604052919050565b60005b8381101561054557818101518382015260200161052d565b83811115610554576000848401525b5050505056fea164736f6c6343000706000a";class UI extends wl{constructor(...e){e.length>1?super(...e):super(FI,LI,e[0])}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static bytecode=LI;static abi=FI;static createInterface(){return new Lo(FI)}static connect(e,t){return new vl(e,FI,t)}}const qI=[{inputs:[{internalType:"address",name:"_admin",type:"address"},{internalType:"address",name:"_uniRouter",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"feeToken",type:"address"},{indexed:!0,internalType:"address",name:"feePayer",type:"address"},{indexed:!0,internalType:"address",name:"feeRecipient",type:"address"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"}],name:"FeeTaken",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[],name:"BASIS_POINT_PRECISION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"FEE_BASIS_POINTS_MAXIMUM",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"PAUSE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UNPAUSE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"WITHDRAW",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct ISecondaryFee.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactInputSingleParams",name:"swapParams",type:"tuple"}],name:"exactInputSingleWithSecondaryFee",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct ISecondaryFee.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactInputParams",name:"swapParams",type:"tuple"}],name:"exactInputWithSecondaryFee",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct ISecondaryFee.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactOutputSingleParams",name:"swapParams",type:"tuple"}],name:"exactOutputSingleWithSecondaryFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct ISecondaryFee.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactOutputParams",name:"swapParams",type:"tuple"}],name:"exactOutputWithSecondaryFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"uniswapRouter",outputs:[{internalType:"contract IV3SwapRouter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"address",name:"erc20",type:"address"}],name:"withdrawFunds",outputs:[],stateMutability:"nonpayable",type:"function"}],jI="0x60806040523480156200001157600080fd5b506040516200278438038062002784833981016040819052620000349162000136565b6001805460ff191690556200004b60008362000078565b600180546001600160a01b0390921661010002610100600160a81b0319909216919091179055506200016e565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000115576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000d43390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b80516001600160a01b03811681146200013157600080fd5b919050565b600080604083850312156200014a57600080fd5b620001558362000119565b9150620001656020840162000119565b90509250929050565b612606806200017e6000396000f3fe60806040526004361061013f5760003560e01c80635ae401dc116100b657806393751f631161006f57806393751f631461038c578063a217fddf146103b5578063ac9650d8146103ca578063d547741f146103ea578063d9a6f7051461040a578063e65fad971461042057600080fd5b80635ae401dc146102ae5780635c975abb146102ce578063735de9f7146102e65780638456cb59146103235780638f3914661461033857806391d148541461036c57600080fd5b80632f2ff15d116101085780632f2ff15d1461022057806336568abe14610240578063383ebb0b146102605780633f4ba83a146102735780635640f6591461028857806358e81a501461029b57600080fd5b80620fa9fb1461014457806301ffc9a714610166578063116944b21461019b57806316ba7197146101bc578063248a9ca3146101f0575b600080fd5b34801561015057600080fd5b5061016461015f366004611db4565b610454565b005b34801561017257600080fd5b50610186610181366004611ded565b61050d565b60405190151581526020015b60405180910390f35b6101ae6101a9366004611f85565b610544565b604051908152602001610192565b3480156101c857600080fd5b506101ae7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b3480156101fc57600080fd5b506101ae61020b366004611fda565b60009081526020819052604090206001015490565b34801561022c57600080fd5b5061016461023b366004611ff3565b610634565b34801561024c57600080fd5b5061016461025b366004611ff3565b610659565b6101ae61026e3660046120db565b6106dc565b34801561027f57600080fd5b5061016461084c565b6101ae6102963660046120db565b610889565b6101ae6102a9366004611f85565b61097f565b6102c16102bc366004612187565b610ad0565b6040516101929190612222565b3480156102da57600080fd5b5060015460ff16610186565b3480156102f257600080fd5b5060015461030b9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610192565b34801561032f57600080fd5b50610164610b1e565b34801561034457600080fd5b506101ae7fe7276a2a84d8de556657ec9cf93a55a7d66f096e529d0582ed08e9e2208b92b581565b34801561037857600080fd5b50610186610387366004611ff3565b610b59565b34801561039857600080fd5b506103a26103e881565b60405161ffff9091168152602001610192565b3480156103c157600080fd5b506101ae600081565b3480156103d657600080fd5b506102c16103e5366004612284565b610b82565b3480156103f657600080fd5b50610164610405366004611ff3565b610c76565b34801561041657600080fd5b506101ae61271081565b34801561042c57600080fd5b506101ae7ffcb9fcbfa83b897fb2d5cf4b58962164105c1e71489a37ef3ae0db3fdce576f681565b61047e7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286933610b59565b61048757600080fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f291906122c5565b90506105086001600160a01b0383168483610c9b565b505050565b60006001600160e01b03198216637965db0b60e01b148061053e57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006105b08260000151836080015184606001518787808060200260200160405190810160405280939291908181526020016000905b828210156105a657610597604083028601368190038101906122de565b8152602001906001019061057a565b5050505050610cfe565b60808301526001546040516304e45aaf60e01b81526101009091046001600160a01b0316906304e45aaf906105e9908590600401612335565b6020604051808303816000875af1158015610608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062c91906122c5565b949350505050565b60008281526020819052604090206001015461064f81610dbf565b6105088383610dcc565b6001600160a01b03811633146106ce5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6106d88282610e50565b5050565b6000806106ec8360000151610eb5565b905060008061075783866060015187602001518a8a808060200260200160405190810160405280939291908181526020016000905b8282101561074d5761073e604083028601368190038101906122de565b81526020019060010190610721565b5050505050610ee3565b606087018190526001546040516304dc09a360e11b81529294509092506000916101009091046001600160a01b0316906309b813469061079b9089906004016123db565b6020604051808303816000875af11580156107ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107de91906122c5565b905061083e8482858b8b808060200260200160405190810160405280939291908181526020016000905b8282101561083457610825604083028601368190038101906122de565b81526020019060010190610808565b5050505050610f96565b9450505050505b9392505050565b6108767fe7276a2a84d8de556657ec9cf93a55a7d66f096e529d0582ed08e9e2208b92b533610b59565b61087f57600080fd5b610887610ff7565b565b6000806108998360000151611049565b90506108f781846040015185602001518888808060200260200160405190810160405280939291908181526020016000905b828210156105a6576108e8604083028601368190038101906122de565b815260200190600101906108cb565b604084810191909152600154905163b858183f60e01b81526101009091046001600160a01b03169063b858183f906109339086906004016123db565b6020604051808303816000875af1158015610952573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097691906122c5565b95945050505050565b60008060006109e484600001518560a0015186606001518989808060200260200160405190810160405280939291908181526020016000905b8282101561074d576109d5604083028601368190038101906122de565b815260200190600101906109b8565b60a08601819052600154604051635023b4df60e01b81529294509092506000916101009091046001600160a01b031690635023b4df90610a28908890600401612335565b6020604051808303816000875af1158015610a47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6b91906122c5565b9050610ac5856000015182858a8a808060200260200160405190810160405280939291908181526020016000905b8282101561083457610ab6604083028601368190038101906122de565b81526020019060010190610a99565b979650505050505050565b606083421115610b145760405162461bcd60e51b815260206004820152600f60248201526e111958591b1a5b99481c185cdcd959608a1b60448201526064016106c5565b61062c8383610b82565b610b487ffcb9fcbfa83b897fb2d5cf4b58962164105c1e71489a37ef3ae0db3fdce576f633610b59565b610b5157600080fd5b610887611055565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060816001600160401b03811115610b9c57610b9c611e62565b604051908082528060200260200182016040528015610bcf57816020015b6060815260200190600190039081610bba5790505b50905060005b82811015610c6f57610c3f30858584818110610bf357610bf36123ee565b9050602002810190610c059190612404565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061109092505050565b828281518110610c5157610c516123ee565b60200260200101819052508080610c6790612460565b915050610bd5565b5092915050565b600082815260208190526040902060010154610c9181610dbf565b6105088383610e50565b6040516001600160a01b03831660248201526044810182905261050890849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526110b5565b60006001600160a01b0383163314610d585760405162461bcd60e51b815260206004820181905260248201527f73776170526563697069656e74206d757374206265206d73672e73656e64657260448201526064016106c5565b60015460ff16610d9757610d6b8261118a565b50600080610d79868561123d565b9092509050610d888287612479565b9550610d948782611366565b50505b610dac6001600160a01b03861633308761146f565b610db685856114ad565b50919392505050565b610dc981336115aa565b50565b610dd68282610b59565b6106d8576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610e0c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610e5a8282610b59565b156106d8576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008060148351610ec69190612479565b90506000610ed684836014611603565b905061062c816000611710565b6000806001600160a01b0384163314610f3e5760405162461bcd60e51b815260206004820181905260248201527f73776170526563697069656e74206d757374206265206d73672e73656e64657260448201526064016106c5565b6000610f498461118a565b90506000610f598261271061248c565b9050610f688761271083611775565b9250610f7488846114ad565b610f896001600160a01b03891633308a61146f565b5094969095509350505050565b6000806000610fa5868561123d565b91509150610fb560015460ff1690565b610fc357610fc387826117b5565b610fed3383610fd28989612479565b610fdc9190612479565b6001600160a01b038a169190610c9b565b610ac5828761248c565b610fff6118bc565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600061053e8282611710565b61105d611905565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2583361102c565b606061084583836040518060600160405280602781526020016125aa6027913961194b565b600061110a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166119c39092919063ffffffff16565b905080516000148061112b57508080602001905181019061112b919061249f565b6105085760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106c5565b6000805b82518110156111d4578281815181106111a9576111a96123ee565b602002602001015160200151826111c0919061248c565b9150806111cc81612460565b91505061118e565b506103e88111156112385760405162461bcd60e51b815260206004820152602860248201527f5365636f6e6461727920666565203e204645455f42415349535f504f494e54536044820152675f4d4158494d554d60c01b60648201526084016106c5565b919050565b6000606082516001600160401b0381111561125a5761125a611e62565b60405190808252806020026020018201604052801561129f57816020015b60408051808201909152600080825260208201528152602001906001900390816112785790505b50905060005b835181101561135e5760006112e48583815181106112c5576112c56123ee565b602002602001015160200151612710886119d29092919063ffffffff16565b90506040518060400160405280868481518110611303576113036123ee565b6020026020010151600001516001600160a01b0316815260200182815250838381518110611333576113336123ee565b6020908102919091010152611348818561248c565b935050808061135690612460565b9150506112a5565b509250929050565b60005b8151811015610508576113cc33838381518110611388576113886123ee565b6020026020010151600001518484815181106113a6576113a66123ee565b602002602001015160200151866001600160a01b031661146f909392919063ffffffff16565b8181815181106113de576113de6123ee565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e85858151811061143a5761143a6123ee565b60200260200101516020015160405161145591815260200190565b60405180910390a48061146781612460565b915050611369565b6040516001600160a01b03808516602483015283166044820152606481018290526114a79085906323b872dd60e01b90608401610cc7565b50505050565b600154604051636eb1769f60e11b81523060048201526001600160a01b0361010090920482166024820152829184169063dd62ed3e90604401602060405180830381865afa158015611503573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152791906122c5565b10156106d85760015460405163095ea7b360e01b81526101009091046001600160a01b039081166004830152600019602483015283169063095ea7b3906044016020604051808303816000875af1158015611586573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610508919061249f565b6115b48282610b59565b6106d8576115c181611a74565b6115cc836020611a86565b6040516020016115dd9291906124c1565b60408051601f198184030181529082905262461bcd60e51b82526106c591600401612536565b60608161161181601f61248c565b10156116505760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106c5565b61165a828461248c565b8451101561169e5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106c5565b6060821580156116bd5760405191506000825260208201604052611707565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156116f65780518352602092830192016116de565b5050858452601f01601f1916604052505b50949350505050565b600061171d82601461248c565b835110156117655760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b60448201526064016106c5565b500160200151600160601b900490565b60006117828484846119d2565b90506000828061179457611794612549565b84860911156108455760001981106117ab57600080fd5b6001019392505050565b60005b8151811015610508576118198282815181106117d6576117d66123ee565b6020026020010151600001518383815181106117f4576117f46123ee565b602002602001015160200151856001600160a01b0316610c9b9092919063ffffffff16565b81818151811061182b5761182b6123ee565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e858581518110611887576118876123ee565b6020026020010151602001516040516118a291815260200190565b60405180910390a4806118b481612460565b9150506117b8565b60015460ff166108875760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016106c5565b60015460ff16156108875760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016106c5565b6060600080856001600160a01b031685604051611968919061255f565b600060405180830381855af49150503d80600081146119a3576040519150601f19603f3d011682016040523d82523d6000602084013e6119a8565b606091505b50915091506119b986838387611c21565b9695505050505050565b606061062c8484600085611c9a565b600083830281600019858709828110838203039150508084116119f457600080fd5b80600003611a0757508290049050610845565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b606061053e6001600160a01b03831660145b60606000611a9583600261257b565b611aa090600261248c565b6001600160401b03811115611ab757611ab7611e62565b6040519080825280601f01601f191660200182016040528015611ae1576020820181803683370190505b509050600360fc1b81600081518110611afc57611afc6123ee565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611b2b57611b2b6123ee565b60200101906001600160f81b031916908160001a9053506000611b4f84600261257b565b611b5a90600161248c565b90505b6001811115611bd2576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611b8e57611b8e6123ee565b1a60f81b828281518110611ba457611ba46123ee565b60200101906001600160f81b031916908160001a90535060049490941c93611bcb81612592565b9050611b5d565b5083156108455760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106c5565b60608315611c90578251600003611c89576001600160a01b0385163b611c895760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106c5565b508161062c565b61062c8383611d6a565b606082471015611cfb5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106c5565b600080866001600160a01b03168587604051611d17919061255f565b60006040518083038185875af1925050503d8060008114611d54576040519150601f19603f3d011682016040523d82523d6000602084013e611d59565b606091505b5091509150610ac587838387611c21565b815115611d7a5781518083602001fd5b8060405162461bcd60e51b81526004016106c59190612536565b6001600160a01b0381168114610dc957600080fd5b803561123881611d94565b60008060408385031215611dc757600080fd5b8235611dd281611d94565b91506020830135611de281611d94565b809150509250929050565b600060208284031215611dff57600080fd5b81356001600160e01b03198116811461084557600080fd5b60008083601f840112611e2957600080fd5b5081356001600160401b03811115611e4057600080fd5b6020830191508360208260061b8501011115611e5b57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715611e9a57611e9a611e62565b60405290565b604051608081016001600160401b0381118282101715611e9a57611e9a611e62565b604051601f8201601f191681016001600160401b0381118282101715611eea57611eea611e62565b604052919050565b600060e08284031215611f0457600080fd5b611f0c611e78565b90508135611f1981611d94565b81526020820135611f2981611d94565b6020820152604082013562ffffff81168114611f4457600080fd5b6040820152611f5560608301611da9565b60608201526080820135608082015260a082013560a0820152611f7a60c08301611da9565b60c082015292915050565b60008060006101008486031215611f9b57600080fd5b83356001600160401b03811115611fb157600080fd5b611fbd86828701611e17565b9094509250611fd190508560208601611ef2565b90509250925092565b600060208284031215611fec57600080fd5b5035919050565b6000806040838503121561200657600080fd5b823591506020830135611de281611d94565b60006080828403121561202a57600080fd5b612032611ea0565b905081356001600160401b038082111561204b57600080fd5b818401915084601f83011261205f57600080fd5b813560208282111561207357612073611e62565b612085601f8301601f19168201611ec2565b9250818352868183860101111561209b57600080fd5b818185018285013760008183850101528285526120b9818701611da9565b8186015250505050604082013560408201526060820135606082015292915050565b6000806000604084860312156120f057600080fd5b83356001600160401b038082111561210757600080fd5b61211387838801611e17565b9095509350602086013591508082111561212c57600080fd5b5061213986828701612018565b9150509250925092565b60008083601f84011261215557600080fd5b5081356001600160401b0381111561216c57600080fd5b6020830191508360208260051b8501011115611e5b57600080fd5b60008060006040848603121561219c57600080fd5b8335925060208401356001600160401b038111156121b957600080fd5b6121c586828701612143565b9497909650939450505050565b60005b838110156121ed5781810151838201526020016121d5565b50506000910152565b6000815180845261220e8160208601602086016121d2565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561227757603f198886030184526122658583516121f6565b94509285019290850190600101612249565b5092979650505050505050565b6000806020838503121561229757600080fd5b82356001600160401b038111156122ad57600080fd5b6122b985828601612143565b90969095509350505050565b6000602082840312156122d757600080fd5b5051919050565b6000604082840312156122f057600080fd5b604051604081018181106001600160401b038211171561231257612312611e62565b604052823561232081611d94565b81526020928301359281019290925250919050565b60e0810161053e828480516001600160a01b03908116835260208083015182169084015260408083015162ffffff16908401526060808301518216908401526080808301519084015260a0828101519084015260c09182015116910152565b60008151608084526123a960808501826121f6565b6020848101516001600160a01b0316908601526040808501519086015260609384015193909401929092525090919050565b6020815260006108456020830184612394565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261241b57600080fd5b8301803591506001600160401b0382111561243557600080fd5b602001915036819003821315611e5b57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016124725761247261244a565b5060010190565b8181038181111561053e5761053e61244a565b8082018082111561053e5761053e61244a565b6000602082840312156124b157600080fd5b8151801515811461084557600080fd5b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516124f98160178501602088016121d2565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161252a8160288401602088016121d2565b01602801949350505050565b60208152600061084560208301846121f6565b634e487b7160e01b600052601260045260246000fd5b600082516125718184602087016121d2565b9190910192915050565b808202811582820484141761053e5761053e61244a565b6000816125a1576125a161244a565b50600019019056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c75a7db1b170ff1ce6888f2940825a25db3ebb624d8b84bd3f2372ebae2de1d464736f6c63430008130033";class GI extends wl{constructor(...e){e.length>1?super(...e):super(qI,jI,e[0])}deploy(e,t,n){return super.deploy(e,t,n||{})}getDeployTransaction(e,t,n){return super.getDeployTransaction(e,t,n||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static bytecode=jI;static abi=qI;static createInterface(){return new Lo(qI)}static connect(e,t){return new vl(e,qI,t)}}const HI=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!0,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"uint128",name:"amount",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Burn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!0,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!0,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"uint128",name:"amount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"amount1",type:"uint128"}],name:"Collect",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint128",name:"amount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"amount1",type:"uint128"}],name:"CollectProtocol",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"},{indexed:!1,internalType:"uint256",name:"paid0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"paid1",type:"uint256"}],name:"Flash",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"observationCardinalityNextOld",type:"uint16"},{indexed:!1,internalType:"uint16",name:"observationCardinalityNextNew",type:"uint16"}],name:"IncreaseObservationCardinalityNext",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"}],name:"Initialize",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!0,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"uint128",name:"amount",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Mint",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"feeProtocol0Old",type:"uint8"},{indexed:!1,internalType:"uint8",name:"feeProtocol1Old",type:"uint8"},{indexed:!1,internalType:"uint8",name:"feeProtocol0New",type:"uint8"},{indexed:!1,internalType:"uint8",name:"feeProtocol1New",type:"uint8"}],name:"SetFeeProtocol",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"int256",name:"amount0",type:"int256"},{indexed:!1,internalType:"int256",name:"amount1",type:"int256"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"}],name:"Swap",type:"event"},{inputs:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"amount",type:"uint128"}],name:"burn",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"amount0Requested",type:"uint128"},{internalType:"uint128",name:"amount1Requested",type:"uint128"}],name:"collect",outputs:[{internalType:"uint128",name:"amount0",type:"uint128"},{internalType:"uint128",name:"amount1",type:"uint128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint128",name:"amount0Requested",type:"uint128"},{internalType:"uint128",name:"amount1Requested",type:"uint128"}],name:"collectProtocol",outputs:[{internalType:"uint128",name:"amount0",type:"uint128"},{internalType:"uint128",name:"amount1",type:"uint128"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fee",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeGrowthGlobal0X128",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeGrowthGlobal1X128",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"flash",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"observationCardinalityNext",type:"uint16"}],name:"increaseObservationCardinalityNext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"liquidity",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxLiquidityPerTick",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"amount",type:"uint128"},{internalType:"bytes",name:"data",type:"bytes"}],name:"mint",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"observations",outputs:[{internalType:"uint32",name:"blockTimestamp",type:"uint32"},{internalType:"int56",name:"tickCumulative",type:"int56"},{internalType:"uint160",name:"secondsPerLiquidityCumulativeX128",type:"uint160"},{internalType:"bool",name:"initialized",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32[]",name:"secondsAgos",type:"uint32[]"}],name:"observe",outputs:[{internalType:"int56[]",name:"tickCumulatives",type:"int56[]"},{internalType:"uint160[]",name:"secondsPerLiquidityCumulativeX128s",type:"uint160[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"positions",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"},{internalType:"uint128",name:"tokensOwed0",type:"uint128"},{internalType:"uint128",name:"tokensOwed1",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFees",outputs:[{internalType:"uint128",name:"token0",type:"uint128"},{internalType:"uint128",name:"token1",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint8",name:"feeProtocol0",type:"uint8"},{internalType:"uint8",name:"feeProtocol1",type:"uint8"}],name:"setFeeProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"slot0",outputs:[{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{internalType:"int24",name:"tick",type:"int24"},{internalType:"uint16",name:"observationIndex",type:"uint16"},{internalType:"uint16",name:"observationCardinality",type:"uint16"},{internalType:"uint16",name:"observationCardinalityNext",type:"uint16"},{internalType:"uint8",name:"feeProtocol",type:"uint8"},{internalType:"bool",name:"unlocked",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"}],name:"snapshotCumulativesInside",outputs:[{internalType:"int56",name:"tickCumulativeInside",type:"int56"},{internalType:"uint160",name:"secondsPerLiquidityInsideX128",type:"uint160"},{internalType:"uint32",name:"secondsInside",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"},{internalType:"bytes",name:"data",type:"bytes"}],name:"swap",outputs:[{internalType:"int256",name:"amount0",type:"int256"},{internalType:"int256",name:"amount1",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"int16",name:"",type:"int16"}],name:"tickBitmap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"tickSpacing",outputs:[{internalType:"int24",name:"",type:"int24"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"int24",name:"",type:"int24"}],name:"ticks",outputs:[{internalType:"uint128",name:"liquidityGross",type:"uint128"},{internalType:"int128",name:"liquidityNet",type:"int128"},{internalType:"uint256",name:"feeGrowthOutside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthOutside1X128",type:"uint256"},{internalType:"int56",name:"tickCumulativeOutside",type:"int56"},{internalType:"uint160",name:"secondsPerLiquidityOutsideX128",type:"uint160"},{internalType:"uint32",name:"secondsOutside",type:"uint32"},{internalType:"bool",name:"initialized",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"token0",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"token1",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],zI="0x6101606040523480156200001257600080fd5b503060601b60805260408051630890357360e41b81529051600091339163890357309160048082019260a092909190829003018186803b1580156200005657600080fd5b505afa1580156200006b573d6000803e3d6000fd5b505050506040513d60a08110156200008257600080fd5b508051602080830151604084015160608086015160809096015160e896871b6001600160e81b0319166101005291811b6001600160601b031990811660e05292811b831660c0529390931b1660a052600282810b900b90921b610120529150620000f79082906200010f811b62002b8417901c565b60801b6001600160801b03191661014052506200017d565b60008082600281900b620d89e719816200012557fe5b05029050600083600281900b620d89e8816200013d57fe5b0502905060008460020b83830360020b816200015557fe5b0560010190508062ffffff166001600160801b038016816200017357fe5b0495945050505050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160e81c6101405160801c61567e6200024a60003980611fee5280614b5f5280614b96525080610c0052806128fd5280614bca5280614bfc525080610cef52806119cb5280611a0252806129455250806111c75280611a855280611ef4528061244452806129215280613e6b5250806108d252806112f55280611a545280611e8e52806123be5280613d2252508061207b528061227d52806128d9525080612bfb525061567e6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000008f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000000061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f00000000000000000000000000000000000000000000000000000000000000008d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f00000000000000000000000000000000000000000000000000000000000000008d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f00000000000000000000000000000000000000000000000000000000000000008b8b613b86565b8715611aab57611aab7f00000000000000000000000000000000000000000000000000000000000000008b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f0000000000000000000000000000000000000000000000000000000000000000908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f0000000000000000000000000000000000000000000000000000000000000000908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f00000000000000000000000000000000000000000000000000000000000000009087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f00000000000000000000000000000000000000000000000000000000000000009087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f000000000000000000000000000000000000000000000000000000000000000061513b565b9450614bba60058c8b8d8b8b87898b60017f000000000000000000000000000000000000000000000000000000000000000061513b565b93508415614bee57614bee60068d7f0000000000000000000000000000000000000000000000000000000000000000615325565b8315614c2057614c2060068c7f0000000000000000000000000000000000000000000000000000000000000000615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a";class VI extends wl{constructor(...e){e.length>1?super(...e):super(HI,zI,e[0])}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static bytecode=zI;static abi=HI;static createInterface(){return new Lo(HI)}static connect(e,t){return new vl(e,HI,t)}}const WI=2e6;async function KI(e,t,n){const r=VI.createInterface(),i=XI(t,r),a=[];return i&&n.forEach((e=>{e&&a.push({target:e,callData:i,gasLimit:tr.from("1000000")})})),e.callStatic.multicall(a)}const XI=(e,t)=>{const n=t?.getFunction(e);return n?t?.encodeFunctionData(n):void 0},JI={"0xcdca1753":["uint256","uint160[]","uint32[]","uint256"],"0xc6a5026a":["uint256","uint160","uint32","uint256"],"0x2f80bb1d":["uint256","uint160[]","uint32[]","uint256"],"0xbd21704a":["uint256","uint160","uint32","uint256"]};const YI=xa("decimals()").substring(0,10);async function QI(e,t,n){if("native"===e)return n.decimals;try{const n=await t.call({to:e,data:YI});return parseInt(n,16)}catch(e){const t=e instanceof Error?e.message:"Unknown Error";throw new PI(`failed to get ERC20 decimals: ${t}`)}}function $I(e){if(e===ji)return!1;try{return _i(e),!0}catch(e){return!1}}const ZI=e=>"native"===e||$I(e),eR=e=>new Dv(e.chainId,e.address,e.decimals,e.symbol,e.name),tR=e=>({chainId:e.chainId,address:e.address,decimals:e.decimals,symbol:e.symbol,name:e.name,type:"erc20"}),nR=e=>{const t=eR(e.token);return Sv.fromRawAmount(t,e.value.toString())},rR=(e,t)=>({value:e,token:t}),iR=e=>"erc20"===e.token.type,aR=e=>"native"===e.token.type,oR=e=>"native"===e.type,sR=(e,t)=>{if(iR(e)&&iR(t))return((e,t)=>{if(e.token.address!==t.token.address)throw new Error("Token mismatch: token addresses must be the same");return{value:e.value.add(t.value),token:e.token}})(e,t);if(aR(e)&&aR(t))return((e,t)=>({value:e.value.add(t.value),token:e.token}))(e,t);throw new Error("Token mismatch: token types must be the same")},uR=(e,t)=>{if(iR(e)&&iR(t))return((e,t)=>{if(e.token.address!==t.token.address)throw new Error("Token mismatch: token addresses must be the same");return{value:e.value.sub(t.value),token:e.token}})(e,t);if(aR(e)&&aR(t))return((e,t)=>({value:e.value.sub(t.value),token:e.token}))(e,t);throw new Error("Token mismatch: token types must be the same")},cR=e=>{return{token:(t=e.token,"native"===t.type?{address:"",chainId:t.chainId,decimals:t.decimals,symbol:t.symbol,name:t.name}:t),value:e.value};var t};async function lR(e,t,n,r,i){const a=n.map((e=>IA.quoteCallParameters(e,nR(r),i,{useQuoterV2:!0}).calldata));let o;try{o=await async function(e,t,n,r){const i=new Array(t.length);for(const e in t)i[e]={target:n,callData:t[e],gasLimit:r?.gasRequired??WI};return e.callStatic.multicall(i)}(e,a,t)}catch(e){const t=e instanceof Error?e.message:"Unknown Error";throw new PI(`failed multicall: ${t}`)}const s=[];for(const e in o.returnData){const t=a[e].substring(0,10),u=JI[t];if(!u)throw new Error("No quoting function signature found");if("0x"!==o.returnData[e].returnData)try{const t=Na.decode(u,o.returnData[e].returnData);if(t){const a=t[0];if(!(a instanceof tr))throw new Error("Expected BigNumber");const o=tR(n[e].input),u=tR(n[e].output);s.push({route:n[e],amountIn:i===mv.EXACT_INPUT?r:rR(a,o),amountOut:i===mv.EXACT_INPUT?rR(a,u):r,gasEstimate:tr.from(t[3]),tradeType:i})}}catch{}}return s}function dR({factoryAddress:e,erc20Pair:t,fee:n,initCodeHashManualOverride:r}){return t=fR(t),Oi(e,Th(["bytes"],[Na.encode(["address","address","uint24"],[t[0].address,t[1].address,n])]),r??"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54")}const fR=e=>{if(e[0].address.toLowerCase()>e[1].address.toLowerCase()){const t=e[0];e[0]=e[1],e[1]=t}return e},pR=[ET.LOWEST,ET.LOW,ET.MEDIUM,ET.HIGH],hR=(e,t,n)=>{const r=((e,t)=>{const n=new Map,r=[];[...e,...t].forEach((e=>{n.set(e.address,e),r.push(e.address)}));const i=[...new Set([...r])],a=[];for(let e=0;e<i.length;e++)for(let t=e+1;t<i.length;t++){const r=n.get(i[e]),o=n.get(i[t]);r&&o&&a.push([r,o])}return a})(e,t),i=[];for(let e=0;e<r.length;e++)for(let t=0;t<pR.length;t++){const a=dR({factoryAddress:n,erc20Pair:r[e],fee:pR[t]});i.push({erc20Pair:r[e],fee:pR[t],poolAddress:a})}return i},mR="liquidity",yR="slot0";class gR{provider;routingTokens;routingContracts;constructor(e,t,n){this.provider=e,this.routingTokens=t,this.routingContracts=n}async findOptimalRoute(e,t,n,r=2){const[i,a]=this.determineERC20InAndERC20Out(n,e,t),o=UI.connect(this.routingContracts.multicallAddress,this.provider),s=[i,a],u=await(async(e,t,n,r)=>{const i=hR(t,n,r),a=i.map((e=>e.poolAddress));let o,s;try{[o,s]=await Promise.all([KI(e,yR,a),KI(e,mR,a)])}catch(e){const t=e instanceof Error?e.message:"Unknown Error";throw new PI(`failed multicall: ${t}`)}const u=o.returnData,c=s.returnData,l=VI.createInterface(),d=[];return i.forEach(((e,t)=>{const n="0x"===o.returnData[t].returnData,r="0x"===s.returnData[t].returnData;if(n||r)return;const i=l.decodeFunctionResult(yR,u[t].returnData),a=l.decodeFunctionResult(mR,c[t].returnData),f=i.sqrtPriceX96.isZero(),p=a[0].isZero();if(f||p)return;const h=new hA(eR(e.erc20Pair[0]),eR(e.erc20Pair[1]),e.fee,i.sqrtPriceX96.toString(),a.toString(),i.tick);d.push(h)})),d})(o,s,this.routingTokens,this.routingContracts.factoryAddress);if(0===u.length)throw new xI;const c=bR(i,a,u,r,[],[],i);if(0===c.length)throw new xI;return await this.getBestQuoteFromRoutes(o,c,e,n)}async getBestQuoteFromRoutes(e,t,n,r){const i=await lR(e,this.routingContracts.quoterAddress,t,n,r);if(0===i.length)throw new xI;if(r===mv.EXACT_INPUT)return this.bestQuoteForAmountIn(i);if(r===mv.EXACT_OUTPUT)return this.bestQuoteForAmountOut(i);throw new Error("Invalid trade type")}bestQuoteForAmountIn(e){let t=e[0];for(let n=1;n<e.length;n++)e[n].amountOut.value.gt(t.amountOut.value)&&(t=e[n]);return t}bestQuoteForAmountOut(e){let t=e[0];for(let n=1;n<e.length;n++)e[n].amountIn.value.lt(t.amountIn.value)&&(t=e[n]);return t}determineERC20InAndERC20Out(e,t,n){return e===mv.EXACT_INPUT?[t.token,n]:[n,t.token]}}const bR=(e,t,n,r,i=[],a=[],o=e)=>{const s=eR(e),u=eR(t),c=eR(o);for(const e of n){const l=e.involvesToken(s),d=i.find((t=>{return(n=e)===(r=t)||n.token0.equals(r.token0)&&n.token1.equals(r.token1)&&n.fee===r.fee;var n,r}));if(!l||d)continue;const f=e.token0.equals(s)?e.token1:e.token0;f.equals(u)?a.push(new yA([...i,e],c,u)):r>1&&bR(tR(f),t,n,r-1,[...i,e],a,o)}return a},vR=async(e,t)=>{const n=await e.getFeeData().catch((()=>null));return n?(r=n).maxFeePerGas&&r.maxPriorityFeePerGas?rR(n.maxFeePerGas.add(n.maxPriorityFeePerGas),t):n.gasPrice?rR(n.gasPrice,t):null:null;var r},wR=(e,t)=>rR(t.mul(e.value),e.token),TR=async(e,t,n,r)=>{const i=await(async(e,t,n,r)=>{const i=DI.connect(n.token.address,e);let a;try{a=await i.allowance(t,r)}catch(e){const t=e instanceof Error?e.message:"Unknown Error";throw new MI(`failed to get allowance: ${t}`)}const o=n.value.sub(a);return!o.isNegative()&&!o.isZero()})(e,t,n,r);return i?((e,t,n)=>{if(e===n)throw new MI("owner and spender addresses are the same");return{data:DI.createInterface().encodeFunctionData("approve",[n,t.value]),to:t.token.address,value:0,from:e}})(t,n,r):null};const AR=async(e,t,n,r)=>{const i=await TR(e,t,n.amount,n.spender);if(!i)return null;const a=await async function(e,t,n,r){const i=DI.connect(r,e);return await i.estimateGas.approve(n,Ki,{from:t})}(e,t,n.spender,n.amount.token.address),o=r?wR(r,a):null;return{transaction:i,gasFeeEstimate:o?cR(o):null}},ER=e=>"native"===e.type;class _R{nativeToken;wrappedToken;constructor(e,t){this.nativeToken=e,this.wrappedToken=t}wrapAmount(e){if(!ER(e.token))throw new Error(`cannot wrap non-native token: ${e.token.address}`);return rR(e.value,this.wrappedToken)}unwrapAmount(e){if(e.token.address.toLowerCase()!==this.wrappedToken.address.toLowerCase())throw new Error(`cannot unwrap non-wrapped token ${e.token.address}`);return rR(e.value,this.nativeToken)}maybeWrapToken(e){return ER(e)?this.wrappedToken:e}maybeWrapAmount(e){return rR(e.value,this.maybeWrapToken(e.token))}}const IR=e=>{if(1===e.toString().split(".").length)return new Pv(e,100);const t=(e/100).toString().split("."),n=t[0]+t[1],r=10**t[1].length;return new Pv(n,r)};const RR=(e,t,n,r)=>{const i=function(e){return e.tradeType===mv.EXACT_INPUT?e.amountOut:e.amountIn}(t),a=ER(r)?e.unwrapAmount(i):i,o=rR(function(e,t,n){const r=IR(n).add(1),i=(e===mv.EXACT_INPUT?r.invert():r).multiply(t.toString()).quotient;return tr.from(i.toString())}(t.tradeType,a.value,n),r);return{quotedAmount:a,quotedAmountWithMaxSlippage:o}};const CR=Math.floor(Date.now()/1e3)+900;class OR{secondaryFees;amount;constructor(e,t){this.secondaryFees=e,this.amount=rR(tr.from(0),t)}get token(){return this.amount.token}addAmount(e){this.amount=sR(this.amount,e)}amountWithFeesApplied(){return sR(this.amount,this.total())}amountLessFees(){return uR(this.amount,this.total())}withAmounts(){return this.secondaryFees.map((e=>{const t=this.amount.value.mul(e.basisPoints).div(1e4);return{...e,amount:rR(t,this.amount.token)}}))}total(){let e=rR(tr.from(0),this.amount.token);for(const t of this.secondaryFees){const n=this.amount.value.mul(t.basisPoints).div(1e4);e=sR(e,rR(n,this.amount.token))}return e}}const kR=13472,SR={chainId:kR,address:"0x0000000000000000000000000000000000001010",decimals:18,symbol:"tIMX",name:"Immutable Testnet Token",type:"erc20"},NR="multicall(uint256,bytes[])";function xR(e,t,n,r,i,a,o,s,u,c){const{route:l}=r.swaps[0],d=1===l.pools.length,f=i.length>0;return d?f?function(e,t,n,r,i,a,o){const s=a.map((e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient}))),u=[];return t.tradeType===mv.EXACT_INPUT&&u.push(o.encodeFunctionData("exactInputSingleWithSecondaryFee",[s,{tokenIn:n.tokenPath[0].address,tokenOut:n.tokenPath[1].address,fee:n.pools[0].fee,recipient:e,amountIn:r,amountOutMinimum:i,sqrtPriceLimitX96:0}])),t.tradeType===mv.EXACT_OUTPUT&&u.push(o.encodeFunctionData("exactOutputSingleWithSecondaryFee",[s,{tokenIn:n.tokenPath[0].address,tokenOut:n.tokenPath[1].address,fee:n.pools[0].fee,recipient:e,amountInMaximum:r,amountOut:i,sqrtPriceLimitX96:0}])),u}(n,r,l,u,c,i,a):function(e,t,n,r,i,a,o,s,u){const c=[];return r.tradeType===mv.EXACT_INPUT&&c.push(s.encodeFunctionData("exactInputSingle",[{tokenIn:i.tokenPath[0].address,tokenOut:i.tokenPath[1].address,fee:i.pools[0].fee,recipient:n,amountIn:a,amountOutMinimum:o,sqrtPriceLimitX96:0}])),r.tradeType===mv.EXACT_OUTPUT&&c.push(s.encodeFunctionData("exactOutputSingle",[{tokenIn:i.tokenPath[0].address,tokenOut:i.tokenPath[1].address,fee:i.pools[0].fee,recipient:n,amountInMaximum:a,amountOut:o,sqrtPriceLimitX96:0}])),r.tradeType===mv.EXACT_OUTPUT&&oR(e)&&c.push(u.encodeFunctionData("refundETH")),oR(t)&&c.push(u.encodeFunctionData("unwrapWETH9(uint256)",[o])),c}(e,t,n,r,l,u,c,o,s):f?function(e,t,n,r,i,a,o){const s=ZT(n,t.tradeType===mv.EXACT_OUTPUT),u=a.map((e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient}))),c=[];return t.tradeType===mv.EXACT_INPUT&&c.push(o.encodeFunctionData("exactInputWithSecondaryFee",[u,{path:s,recipient:e,amountIn:r,amountOutMinimum:i}])),t.tradeType===mv.EXACT_OUTPUT&&c.push(o.encodeFunctionData("exactOutputWithSecondaryFee",[u,{path:s,recipient:e,amountInMaximum:r,amountOut:i}])),c}(n,r,l,u,c,i,a):function(e,t,n,r,i,a,o,s,u){const c=ZT(i,r.tradeType===mv.EXACT_OUTPUT),l=[];return r.tradeType===mv.EXACT_INPUT&&l.push(s.encodeFunctionData("exactInput",[{path:c,recipient:n,amountIn:a,amountOutMinimum:o}])),r.tradeType===mv.EXACT_OUTPUT&&l.push(s.encodeFunctionData("exactOutput",[{path:c,recipient:n,amountInMaximum:a,amountOut:o}])),r.tradeType===mv.EXACT_OUTPUT&&oR(e)&&l.push(u.encodeFunctionData("refundETH")),oR(t)&&l.push(u.encodeFunctionData("unwrapWETH9(uint256)",[o])),l}(e,t,n,r,l,u,c,o,s)}function PR(e,t,n,r,i,a,o,s){const u=GI.createInterface(),c=xR(e,t,r,n,a,u,_I.SwapRouter.INTERFACE,_I.PaymentsExtended.INTERFACE,o,s);return u.encodeFunctionData(NR,[i.deadlineOrPreviousBlockhash,c])}function MR(e,t,n,r,i,a,o,s,u,c){const l=oR(t)?o:r,{calldata:d,maximumAmountIn:f}=function(e,t,n,r,i,a,o){const s=bA.createUncheckedTrade({route:n.route,inputAmount:nR(n.amountIn),outputAmount:nR(n.amountOut),tradeType:n.tradeType}),u={slippageTolerance:IR(i),recipient:r,deadlineOrPreviousBlockhash:a},c=$T(s.maximumAmountIn(u.slippageTolerance).quotient),l=$T(s.minimumAmountOut(u.slippageTolerance).quotient);return{calldata:PR(e,t,s,r,u,o,c,l),maximumAmountIn:c}}(e,t,n,l,i,a,c),p=u?wR(u,n.gasEstimate):null,h=((e,t)=>"native"===e.type?t:"0x00")(e,f);return{transaction:{data:d,to:c.length>0?s:o,value:h,from:r},gasFeeEstimate:p?cR(p):null}}function BR(e,t,n,r){const i=((e,t,n,r)=>{if(e.tradeType===mv.EXACT_OUTPUT){const t=ER(n.token)?r.unwrapAmount(e.amountIn):e.amountIn;return n.addAmount(t),r.maybeWrapAmount(n.amountWithFeesApplied())}return r.maybeWrapAmount(t)})(e,t,n,r);return{gasEstimate:e.gasEstimate,route:e.route,amountIn:i,amountOut:e.amountOut,tradeType:e.tradeType}}const DR={[kR]:{chainId:kR,rpcUrl:"https://rpc.testnet.immutable.com",contracts:{[kR]:{multicall:"0xD17c98b38bA28c7eA1080317EB9AB2b9663BEd92",coreFactory:"0x8AC26EfCbf5D700b37A27aA00E6934e6904e7B8e",quoterV2:"0x0Afe6F5f4DC34461A801420634239FFaD50A2e44",peripheryRouter:"0x57c73281f2697a632AEF1A48CD6ff600f49ee344",secondaryFee:"0x5893A5c7bc615Dfd36D7383366d00FFFca5f7178"}}[13472],commonRoutingTokens:[SR,{chainId:kR,address:"0xAf7cf5D4Af0BFAa85d384d42b8D410762Ccbce69",decimals:18,symbol:"WIMX",name:"Wrapped Immutable Testnet Token",type:"erc20"}],nativeToken:SR,wrappedNativeToken:SR}},FR={[st.SANDBOX]:DR,[st.PRODUCTION]:{}};class LR{baseConfig;chain;secondaryFees=[];constructor({chainId:e,baseConfig:t,secondaryFees:n,overrides:r}){if(this.baseConfig=t,this.secondaryFees=n||[],function(e){let t=0;for(const n of e){if(!$I(n.recipient))throw new RI(`Invalid secondary fee recipient address: ${n.recipient}`);if(n.basisPoints<=0||n.basisPoints>1e3)throw new RI(`Invalid secondary fee basis points: ${n.basisPoints}`);t+=n.basisPoints}if(t>1e3)throw new RI(`Invalid total secondary fee basis points: ${t}`)}(this.secondaryFees),r)return function(e){const t=["rpcURL","exchangeContracts","commonRoutingTokens","nativeToken"];for(const n of t)if(!e[n])throw new RI(`Missing override: ${n}`);Object.entries(e.exchangeContracts).forEach((([e,t])=>{if(!$I(t))throw new RI(`Invalid exchange contract address for ${e}`)}))}(r),this.chain={chainId:e,rpcUrl:r.rpcURL,contracts:r.exchangeContracts,commonRoutingTokens:r.commonRoutingTokens,nativeToken:r.nativeToken,wrappedNativeToken:r.wrappedNativeToken},void(this.secondaryFees=n||[]);const i=FR[t.environment][e];if(!i)throw new CI(e,t.environment);this.chain=i}}class UR{provider;router;chainId;nativeToken;wrappedNativeToken;secondaryFees;nativeTokenService;secondaryFeeContractAddress;routerContractAddress;constructor(e){const t=new LR(e);this.chainId=t.chain.chainId,this.nativeToken=t.chain.nativeToken,this.wrappedNativeToken=t.chain.wrappedNativeToken,this.nativeTokenService=new _R(this.nativeToken,this.wrappedNativeToken),this.secondaryFees=t.secondaryFees,this.routerContractAddress=t.chain.contracts.peripheryRouter,this.secondaryFeeContractAddress=t.chain.contracts.secondaryFee,this.provider=new up(t.chain.rpcUrl),this.router=new gR(this.provider,t.chain.commonRoutingTokens,{multicallAddress:t.chain.contracts.multicall,factoryAddress:t.chain.contracts.coreFactory,quoterAddress:t.chain.contracts.quoterV2})}static validate(e,t,n,r,i){lw($I(i),new SI("invalid from address")),lw(ZI(e),new SI("invalid token in address")),lw(ZI(t),new SI("invalid token out address")),lw(e.toLocaleLowerCase()!==t.toLocaleLowerCase(),new NI),lw(n<=10,new kI("max hops must be less than or equal to 10")),lw(n>=1,new kI("max hops must be greater than or equal to 1")),lw(r<=50,new OI("slippage percent must be less than or equal to 50")),lw(r>=0,new OI("slippage percent must be greater than or equal to 0"))}async getSecondaryFees(){if(0===this.secondaryFees.length)return[];const e=GI.connect(this.secondaryFeeContractAddress,this.provider);return await e.paused()?[]:this.secondaryFees}parseTokenLiteral(e,t){return"native"===e?this.nativeToken:{type:"erc20",address:e,chainId:this.chainId,decimals:t}}async getUnsignedSwapTx(e,t,n,r,i,a,o,s){UR.validate(t,n,a,i,e);const[u,c,l]=await Promise.all([QI(t,this.provider,this.nativeToken),QI(n,this.provider,this.nativeToken),this.getSecondaryFees()]),d=this.parseTokenLiteral(t,u),f=this.parseTokenLiteral(n,c),[p,h]=s===mv.EXACT_INPUT?[d,f]:[f,d],m=rR(r,p),y=new OR(l,d),g=function(e,t,n,r){return n===mv.EXACT_OUTPUT?r.maybeWrapAmount(e):(t.addAmount(e),r.maybeWrapAmount(t.amountLessFees()))}(m,y,s,this.nativeTokenService),[b,v]=await Promise.all([this.router.findOptimalRoute(g,this.nativeTokenService.maybeWrapToken(h),s,a),vR(this.provider,this.nativeToken)]),w=BR(b,m,y,this.nativeTokenService),T=MR(d,f,w,e,i,o,this.routerContractAddress,this.secondaryFeeContractAddress,v,l),{quotedAmount:A,quotedAmountWithMaxSlippage:E}=RR(this.nativeTokenService,w,i,h),_=((e,t,n,r,i)=>{const a=e===mv.EXACT_INPUT?t:n;return iR(a)?{spender:0===i.length?r.routerAddress:r.secondaryFeeAddress,amount:a}:null})(s,m,E,{routerAddress:this.routerContractAddress,secondaryFeeAddress:this.secondaryFeeContractAddress},l),I=_?await AR(this.provider,e,_,v):null,R=((e,t,n,r)=>({amount:cR(e),amountWithMaxSlippage:cR(t),slippage:n,fees:r.withAmounts().map((e=>({...e,amount:cR(e.amount)})))}))(A,E,i,y);return{quote:R,approval:I,swap:T}}async getUnsignedSwapTxFromAmountIn(e,t,n,r,i=.1,a=2,o=CR){return await this.getUnsignedSwapTx(e,t,n,tr.from(r),i,a,o,mv.EXACT_INPUT)}async getUnsignedSwapTxFromAmountOut(e,t,n,r,i=.1,a=2,o=CR){return await this.getUnsignedSwapTx(e,t,n,tr.from(r),i,a,o,mv.EXACT_OUTPUT)}}var qR=lt("object"==typeof self?self.FormData:window.FormData),jR={},GR={};const HR={erc1271:Object.freeze({__proto__:null,abi:[{type:"function",name:"isValidSignature",constant:!0,inputs:[{type:"bytes32"},{type:"bytes"}],outputs:[{type:"bytes4"}],payable:!1,stateMutability:"view"}],returns:{isValidSignatureBytes32:"0x1626ba7e"}}),factory:Object.freeze({__proto__:null,abi:[{type:"function",name:"deploy",constant:!1,inputs:[{type:"address"},{type:"bytes32"}],outputs:[],payable:!0,stateMutability:"payable"}]}),mainModule:Object.freeze({__proto__:null,abi:[{type:"function",name:"nonce",constant:!0,inputs:[],outputs:[{type:"uint256"}],payable:!1,stateMutability:"view"},{type:"function",name:"readNonce",constant:!0,inputs:[{type:"uint256"}],outputs:[{type:"uint256"}],payable:!1,stateMutability:"view"},{type:"function",name:"updateImplementation",constant:!1,inputs:[{type:"address"}],outputs:[],payable:!1,stateMutability:"nonpayable"},{type:"function",name:"selfExecute",constant:!1,inputs:[{components:[{type:"bool",name:"delegateCall"},{type:"bool",name:"revertOnError"},{type:"uint256",name:"gasLimit"},{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"data"}],type:"tuple[]"}],outputs:[],payable:!1,stateMutability:"nonpayable"},{type:"function",name:"execute",constant:!1,inputs:[{components:[{type:"bool",name:"delegateCall"},{type:"bool",name:"revertOnError"},{type:"uint256",name:"gasLimit"},{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"data"}],type:"tuple[]"},{type:"uint256"},{type:"bytes"}],outputs:[],payable:!1,stateMutability:"nonpayable"},{type:"function",name:"createContract",inputs:[{type:"bytes"}],payable:!0,stateMutability:"payable"}]}),mainModuleUpgradable:Object.freeze({__proto__:null,abi:[{type:"function",name:"updateImageHash",constant:!0,inputs:[{type:"bytes32"}],outputs:[],payable:!1,stateMutability:"view"},{type:"function",name:"imageHash",constant:!0,inputs:[],outputs:[{type:"bytes32"}],payable:!1,stateMutability:"view"}]}),sequenceUtils:Object.freeze({__proto__:null,abi:[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_mainModule",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_wallet",type:"address"},{indexed:!0,internalType:"bytes32",name:"_imageHash",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_threshold",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_signers",type:"bytes"}],name:"RequiredConfig",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_wallet",type:"address"},{indexed:!0,internalType:"address",name:"_signer",type:"address"}],name:"RequiredSigner",type:"event"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callBalanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callBlockNumber",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_i",type:"uint256"}],name:"callBlockhash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"callChainId",outputs:[{internalType:"uint256",name:"id",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callCode",outputs:[{internalType:"bytes",name:"code",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callCodeHash",outputs:[{internalType:"bytes32",name:"codeHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callCodeSize",outputs:[{internalType:"uint256",name:"size",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callCoinbase",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"callDifficulty",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callGasLeft",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callGasLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callGasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callOrigin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"callTimestamp",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"knownImageHashes",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"lastImageHashUpdate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"lastSignerUpdate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"lastWalletUpdate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bool",name:"delegateCall",type:"bool"},{internalType:"bool",name:"revertOnError",type:"bool"},{internalType:"uint256",name:"gasLimit",type:"uint256"},{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct IModuleCalls.Transaction[]",name:"_txs",type:"tuple[]"}],name:"multiCall",outputs:[{internalType:"bool[]",name:"_successes",type:"bool[]"},{internalType:"bytes[]",name:"_results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_wallet",type:"address"},{internalType:"uint256",name:"_threshold",type:"uint256"},{components:[{internalType:"uint256",name:"weight",type:"uint256"},{internalType:"address",name:"signer",type:"address"}],internalType:"struct RequireUtils.Member[]",name:"_members",type:"tuple[]"},{internalType:"bool",name:"_index",type:"bool"}],name:"publishConfig",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_wallet",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"uint256",name:"_sizeMembers",type:"uint256"},{internalType:"bytes",name:"_signature",type:"bytes"},{internalType:"bool",name:"_index",type:"bool"}],name:"publishInitialSigners",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_wallet",type:"address"},{internalType:"uint256",name:"_nonce",type:"uint256"}],name:"requireMinNonce",outputs:[],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_expiration",type:"uint256"}],name:"requireNonExpired",outputs:[],stateMutability:"view",type:"function"}]}),requireFreshSigner:Object.freeze({__proto__:null,abi:[{inputs:[{internalType:"address",name:"",type:"address"}],name:"requireFreshSigner",outputs:[],stateMutability:"nonpayable",type:"function"}]})};function zR(){return zR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},zR.apply(this,arguments)}var VR;!function(e){e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.DISABLED=5]="DISABLED"}(VR||(VR={}));function WR(e,t){return function(...n){const r=Array.prototype.slice.call(n);return new Promise((async(n,i)=>{try{r.push(((e,t)=>e?i(e):n(t))),await e.apply(t,r)}catch(e){i(e)}}))}}new class{constructor(e){this.config=e,this.logLevel=void 0,this.configure(e)}configure(e){switch(this.config=zR({},this.config,e),this.config.logLevel){case"DEBUG":this.logLevel=VR.DEBUG;break;case"INFO":default:this.logLevel=VR.INFO;break;case"WARN":this.logLevel=VR.WARN;break;case"ERROR":this.logLevel=VR.ERROR;break;case"DISABLED":this.logLevel=VR.DISABLED}void 0===this.config.silence&&(this.config.silence=!1)}debug(e,...t){!0!==this.config.silence&&this.logLevel===VR.DEBUG&&console.log(e,...t)}info(e,...t){!0!==this.config.silence&&this.logLevel<=VR.INFO&&console.log(e,...t)}warn(e,...t){!0!==this.config.silence&&this.logLevel<=VR.WARN&&(console.warn(e,...t),this.config.onwarn&&this.config.onwarn(e,t))}error(e,...t){!0!==this.config.silence&&this.logLevel<=VR.ERROR&&(console.error(e,...t),this.config.onerror&&this.config.onerror(e,t))}}({logLevel:"INFO",silence:!0});const KR=(e=0,t=Number.MAX_SAFE_INTEGER)=>(e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1))+e);function XR(){return XR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},XR.apply(this,arguments)}const JR=(e,t=!1)=>(((e,t=!1,n=!1)=>{if(!e)throw new Error("invalid network config: empty config");const r=[];if(Array.isArray(e)?r.push(...e):r.push(e),0===r.length){if(t)throw new Error("invalid network config: empty config");return!1}const i=r.map((e=>e.chainId)).sort(),a=i.filter(((e,t)=>i.indexOf(e)!==t));if(a.length>0){if(t)throw new Error(`invalid network config: duplicate chainIds ${a}`);return!1}r.forEach((e=>e.name=e.name.toLowerCase()));const o=r.map((e=>e.name)).sort(),s=o.filter(((e,t)=>o.indexOf(e)!==t));if(s.length>0){if(t)throw new Error(`invalid network config: duplicate network names ${s}`);return!1}let u=!1,c=!1;for(let e=0;e<r.length;e++){const i=r[e];if(!(i.rpcUrl&&""!==i.rpcUrl||i.provider)){if(t)throw new Error(`invalid network config for chainId ${i.chainId}: rpcUrl or provider must be provided`);return!1}if(!n&&!i.relayer){if(t)throw new Error(`invalid network config for chainId ${i.chainId}: relayer must be provided`);return!1}if(i.isDefaultChain){if(u){if(t)throw new Error(`invalid network config for chainId ${i.chainId}: DefaultChain is already set by another config`);return!1}u=!0}if(i.isAuthChain){if(c&&t)throw new Error(`invalid network config for chainId ${i.chainId}: AuthChain is already set by another config`);c=!0}}if(!u){if(t)throw new Error("invalid network config: DefaultChain must be set");return!1}if(!c){if(t)throw new Error("invalid network config: AuthChain must be set");return!1}})(e,!0,t),e),YR=e=>JR(QR(e)),QR=e=>{if(!e)return[];const t=e.sort(((e,t)=>e.chainId===t.chainId?0:e.chainId<t.chainId?-1:1)),n=t.findIndex((e=>e.isDefaultChain));n>0&&t.splice(0,0,t.splice(n,1)[0]);const r=t.findIndex((e=>e.isAuthChain&&!0!==e.isDefaultChain));return r>0&&t.splice(1,0,t.splice(r,1)[0]),t},$R=(e,t)=>"string"==typeof e?(t=t||{},e.replace(/\$\{\s*([$#@\-\d\w]+)\s*\}/gim,(function(e,n){let r=t[n];return r="function"==typeof r?r():null==r?"":"object"==typeof r||"symbol"==typeof r?r.toString():r.valueOf(),r}))):"";let ZR;!function(e){e[e.MAINNET=1]="MAINNET",e[e.ROPSTEN=3]="ROPSTEN",e[e.RINKEBY=4]="RINKEBY",e[e.GOERLI=5]="GOERLI",e[e.KOVAN=42]="KOVAN",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.POLYGON_ZKEVM=1101]="POLYGON_ZKEVM",e[e.BSC=56]="BSC",e[e.BSC_TESTNET=97]="BSC_TESTNET",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_TESTNET=69]="OPTIMISM_TESTNET",e[e.ARBITRUM=42161]="ARBITRUM",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.ARBITRUM_NOVA=42170]="ARBITRUM_NOVA",e[e.AVALANCHE=43114]="AVALANCHE",e[e.AVALANCHE_TESTNET=43113]="AVALANCHE_TESTNET",e[e.FANTOM=250]="FANTOM",e[e.FANTOM_TESTNET=4002]="FANTOM_TESTNET",e[e.GNOSIS=100]="GNOSIS",e[e.AURORA=1313161554]="AURORA",e[e.AURORA_TESTNET=1313161556]="AURORA_TESTNET",e[e.BASE_GOERLI=84531]="BASE_GOERLI"}(ZR||(ZR={}));const eC=e=>$R("https://${network}-indexer.sequence.app",{network:e}),tC=e=>$R("https://${network}-relayer.sequence.app",{network:e}),nC=e=>$R("https://nodes.sequence.app/${network}",{network:e}),rC={[ZR.MAINNET]:{chainId:ZR.MAINNET,name:"mainnet",title:"Ethereum",blockExplorer:{name:"Etherscan",rootUrl:"https://etherscan.io/"},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},[ZR.ROPSTEN]:{chainId:ZR.ROPSTEN,name:"ropsten",title:"Ropsten",testnet:!0,blockExplorer:{name:"Etherscan (Ropsten)",rootUrl:"https://ropsten.etherscan.io/"},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},[ZR.RINKEBY]:{chainId:ZR.RINKEBY,name:"rinkeby",title:"Rinkeby",testnet:!0,blockExplorer:{name:"Etherscan (Rinkeby)",rootUrl:"https://rinkeby.etherscan.io/"},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",disabled:!0},[ZR.GOERLI]:{chainId:ZR.GOERLI,name:"goerli",title:"Goerli",testnet:!0,blockExplorer:{name:"Etherscan (Goerli)",rootUrl:"https://goerli.etherscan.io/"},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},[ZR.KOVAN]:{chainId:ZR.KOVAN,name:"kovan",title:"Kovan",testnet:!0,blockExplorer:{name:"Etherscan (Kovan)",rootUrl:"https://kovan.etherscan.io/"}},[ZR.POLYGON]:{chainId:ZR.POLYGON,name:"polygon",title:"Polygon",blockExplorer:{name:"Polygonscan",rootUrl:"https://polygonscan.com/"}},[ZR.POLYGON_MUMBAI]:{chainId:ZR.POLYGON_MUMBAI,name:"mumbai",title:"Polygon Mumbai",testnet:!0,blockExplorer:{name:"Polygonscan (Mumbai)",rootUrl:"https://mumbai.polygonscan.com/"}},[ZR.POLYGON_ZKEVM]:{chainId:ZR.POLYGON_ZKEVM,name:"polygon-zkevm",title:"Polygon zkEVM",blockExplorer:{name:"Polygonscan (zkEVM)",rootUrl:"https://zkevm.polygonscan.com/"}},[ZR.BSC]:{chainId:ZR.BSC,name:"bsc",title:"BNB Smart Chain",blockExplorer:{name:"BSCScan",rootUrl:"https://bscscan.com/"}},[ZR.BSC_TESTNET]:{chainId:ZR.BSC_TESTNET,name:"bsc-testnet",title:"BNB Smart Chain Testnet",testnet:!0,blockExplorer:{name:"BSCScan (Testnet)",rootUrl:"https://testnet.bscscan.com/"}},[ZR.OPTIMISM]:{chainId:ZR.OPTIMISM,name:"optimism",title:"Optimism",blockExplorer:{name:"Etherscan (Optimism)",rootUrl:"https://optimistic.etherscan.io/"}},[ZR.OPTIMISM_TESTNET]:{chainId:ZR.OPTIMISM_TESTNET,name:"optimism-testnet",title:"Optimistic Kovan",testnet:!0,blockExplorer:{name:"Etherscan (Optimism Testnet)",rootUrl:"https://kovan-optimistic.etherscan.io/"}},[ZR.ARBITRUM]:{chainId:ZR.ARBITRUM,name:"arbitrum",title:"Arbitrum One",blockExplorer:{name:"Arbiscan",rootUrl:"https://arbiscan.io/"}},[ZR.ARBITRUM_GOERLI]:{chainId:ZR.ARBITRUM_GOERLI,name:"arbitrum-goerli",title:"Arbitrum Goerli",testnet:!0,blockExplorer:{name:"Arbiscan (Testnet)",rootUrl:"https://testnet.arbiscan.io/"}},[ZR.ARBITRUM_NOVA]:{chainId:ZR.ARBITRUM_NOVA,name:"arbitrum-nova",title:"Arbitrum Nova",blockExplorer:{name:"Nova Explorer",rootUrl:"https://nova-explorer.arbitrum.io/"}},[ZR.AVALANCHE]:{chainId:ZR.AVALANCHE,name:"avalanche",title:"Avalanche",blockExplorer:{name:"Snowtrace",rootUrl:"https://snowtrace.io/"}},[ZR.AVALANCHE_TESTNET]:{chainId:ZR.AVALANCHE_TESTNET,name:"avalanche-testnet",title:"Avalanche Testnet",testnet:!0,blockExplorer:{name:"Snowtrace (Testnet)",rootUrl:"https://testnet.snowtrace.io/"}},[ZR.FANTOM]:{chainId:ZR.FANTOM,name:"fantom",title:"Fantom",blockExplorer:{name:"FTMScan",rootUrl:"https://ftmscan.com/"}},[ZR.FANTOM_TESTNET]:{chainId:ZR.FANTOM_TESTNET,name:"fantom-testnet",title:"Fantom Testnet",testnet:!0,blockExplorer:{name:"FTMScan (Testnet)",rootUrl:"https://testnet.ftmscan.com/"}},[ZR.GNOSIS]:{chainId:ZR.GNOSIS,name:"gnosis",title:"Gnosis Chain",blockExplorer:{name:"Gnosis Chain Explorer",rootUrl:"https://blockscout.com/xdai/mainnet/"}},[ZR.AURORA]:{chainId:ZR.AURORA,name:"aurora",title:"Aurora",blockExplorer:{name:"Aurora Explorer",rootUrl:"https://aurorascan.dev/"}},[ZR.AURORA_TESTNET]:{chainId:ZR.AURORA_TESTNET,name:"aurora-testnet",title:"Aurora Testnet",blockExplorer:{name:"Aurora Explorer (Testnet)",rootUrl:"https://testnet.aurorascan.dev/"}},[ZR.BASE_GOERLI]:{chainId:ZR.BASE_GOERLI,name:"base-goerli",title:"Base Goerli",blockExplorer:{name:"Base Goerli Explorer",rootUrl:"https://goerli.basescan.org/"}}};YR([XR({},rC[ZR.MAINNET],{rpcUrl:nC("mainnet"),relayer:{url:tC("mainnet")},indexerUrl:eC("mainnet")}),XR({},rC[ZR.POLYGON],{rpcUrl:nC("polygon"),relayer:{url:tC("polygon")},indexerUrl:eC("polygon"),isDefaultChain:!0,isAuthChain:!0}),XR({},rC[ZR.BSC],{rpcUrl:nC("bsc"),indexerUrl:eC("bsc"),relayer:{url:tC("bsc")}}),XR({},rC[ZR.AVALANCHE],{rpcUrl:nC("avalanche"),indexerUrl:eC("avalanche"),relayer:{url:tC("avalanche")}}),XR({},rC[ZR.ARBITRUM],{rpcUrl:nC("arbitrum"),indexerUrl:eC("arbitrum"),relayer:{url:tC("arbitrum")}}),XR({},rC[ZR.ARBITRUM_NOVA],{rpcUrl:nC("arbitrum-nova"),indexerUrl:eC("arbitrum-nova"),relayer:{url:tC("arbitrum-nova")}}),XR({},rC[ZR.OPTIMISM],{rpcUrl:nC("optimism"),indexerUrl:eC("optimism"),relayer:{url:tC("optimism")}}),XR({},rC[ZR.POLYGON_ZKEVM],{rpcUrl:nC("polygon-zkevm"),indexerUrl:eC("polygon-zkevm"),relayer:{url:tC("polygon-zkevm")}}),XR({},rC[ZR.GNOSIS],{rpcUrl:nC("gnosis"),indexerUrl:eC("gnosis"),relayer:{url:tC("gnosis")}})]),YR([XR({},rC[ZR.RINKEBY],{rpcUrl:nC("rinkeby"),relayer:{url:tC("rinkeby")},indexerUrl:eC("rinkeby")}),XR({},rC[ZR.GOERLI],{rpcUrl:nC("goerli"),relayer:{url:tC("goerli")},indexerUrl:eC("goerli")}),XR({},rC[ZR.POLYGON_MUMBAI],{rpcUrl:nC("mumbai"),relayer:{url:tC("mumbai")},indexerUrl:eC("mumbai"),isDefaultChain:!0,isAuthChain:!0}),XR({},rC[ZR.BSC_TESTNET],{rpcUrl:nC("bsc-testnet"),relayer:{url:tC("bsc-testnet")},indexerUrl:eC("bsc-testnet")}),XR({},rC[ZR.ARBITRUM_GOERLI],{rpcUrl:nC("arbitrum-goerli"),relayer:{url:tC("arbitrum-goerli")},indexerUrl:eC("arbitrum-goerli")}),XR({},rC[ZR.BASE_GOERLI],{rpcUrl:nC("base-goerli"),relayer:{url:tC("base-goerli")},indexerUrl:eC("base-goerli")})]);const iC="2.0";function aC(){return aC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},aC.apply(this,arguments)}let oC;function sC(e,t){return e.reduce((function(e,n,r){return t(n,r)?e[0].push(n):e[1].push(n),e}),[[],[]])}!function(e){e.ethCall="eth_call",e.ethGetBalance="eth_getBalance",e.ethGetCode="eth_getCode"}(oC||(oC={}));const uC={batchSize:50,timeWindow:50,contract:"0xd130B43062D875a4B7aF3f8fc036Bc6e9D3E1B3E",verbose:!1};class cC{constructor(e){var t=this;if(this.batchableJsonRpcMethods=[oC.ethCall,oC.ethGetCode,oC.ethGetBalance],this.multicallInterface=new Lo(HR.sequenceUtils.abi),this.options=void 0,this.timeout=void 0,this.queue=[],this.scheduleExecution=()=>{this.queue.length>0&&(this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(this.run,this.options.timeWindow))},this.handle=(e,t,n)=>this.batchableJsonRpcMethods.find((e=>e===t.method))?(this.queue.push({request:t,callback:n,next:e}),this.options.verbose&&console.log("Scheduling call",t.method),void this.scheduleExecution()):(this.options.verbose&&console.log("Forwarded call",t.method),e(t,n)),this.run=async function(){t.options.verbose&&console.log("Processing multicall");const e=Math.min(t.options.batchSize,t.queue.length);if(0===e)return;if(1===e)return t.forward(t.queue[0]),t.queue=[],void(t.options.verbose&&console.log("Skip multicall, single item"));t.options.verbose&&console.log("Resolving",e);var n=t.queue.slice(0,e);t.queue=e===t.queue.length?[]:t.queue.slice(e),t.options.verbose&&console.log("Updated queue",t.queue.length),0!==t.queue.length&&t.scheduleExecution();const r=n[0].next;let i;var[n,a]=sC(n,(e=>{try{if(e.next!==r)return!1;switch(e.request.method){case oC.ethCall:if(e.request.params[0].from||e.request.params[0].gasPrice||e.request.params[0].value)return!1;case oC.ethGetBalance:case oC.ethGetCode:const r=function(e){if(void 0===e)return"latest";switch(e){case"earliest":case"latest":case"pending":return e}return tr.from(e)}(e.request.params[1]);if(void 0===i&&(i=r),(t=r)!==(n=i)&&!(tr.isBigNumber(t)?tr.isBigNumber(n)&&t.eq(n):!tr.isBigNumber(n)&&t===n))return!1}return!0}catch(e){return!1}var t,n}));if(0!==a.length&&(t.options.verbose&&console.log("Forwarding incompatible calls",a.length),t.forward(a),0===n.length))return;let o=n.map((e=>{try{switch(e.request.method){case oC.ethCall:return{delegateCall:!1,revertOnError:!1,target:e.request.params[0].to,data:e.request.params[0].data,gasLimit:e.request.params[0].gas?e.request.params[0].gas:0,value:0};case oC.ethGetCode:return{delegateCall:!1,revertOnError:!1,target:t.options.contract,gasLimit:0,value:0,data:t.multicallInterface.encodeFunctionData(t.multicallInterface.getFunction("callCode"),[e.request.params[0]])};case oC.ethGetBalance:return{delegateCall:!1,revertOnError:!1,target:t.options.contract,gasLimit:0,value:0,data:t.multicallInterface.encodeFunctionData(t.multicallInterface.getFunction("callBalanceOf"),[e.request.params[0]])};default:return null}}catch(e){return null}}));var[n,a]=sC(n,((e,t)=>void 0!==o[t]));if(o=o.filter((e=>e)),0!==a.length&&(t.options.verbose&&console.log("Forwarding calls on error",a.length),t.forward(a),0===n.length))return;let s;try{s=t.multicallInterface.encodeFunctionData(t.multicallInterface.getFunction("multiCall"),[o])}catch(e){return void t.forward(n)}const u=KR(),c=await async function(e,t){try{return await e}catch(e){return t instanceof Function?t(e):t}}(WR(r)({id:u,jsonrpc:iC,method:oC.ethCall,params:[{to:t.options.contract,value:0,data:s},tr.isBigNumber(i)?i.toNumber():i]}),(e=>({jsonrpc:iC,id:u,result:void 0,error:e})));if(c.error)return t.forward(n);let l;try{l=t.multicallInterface.decodeFunctionResult(t.multicallInterface.getFunction("multiCall"),c.result)}catch(e){return void t.forward(n)}t.options.verbose&&console.log("Got response for",n.length),n.forEach(((e,n)=>{if(l[0][n])switch(e.request.method){case oC.ethCall:e.callback(void 0,{jsonrpc:e.request.jsonrpc,id:e.request.id,result:l[1][n]});break;case oC.ethGetCode:e.callback(void 0,{jsonrpc:e.request.jsonrpc,id:e.request.id,result:Na.decode(["bytes"],l[1][n])[0]});break;case oC.ethGetBalance:e.callback(void 0,{jsonrpc:e.request.jsonrpc,id:e.request.id,result:Na.decode(["uint256"],l[1][n])[0]})}else t.forward(e)}))},this.options=e?aC({},cC.DefaultOptions,e):cC.DefaultOptions,this.options.batchSize<=0)throw new Error(`Invalid batch size of ${this.options.batchSize}`)}forward(e){Array.isArray(e)?e.forEach((e=>e.next(e.request,e.callback))):e.next(e.request,e.callback)}static isMulticall(e){return e&&void 0!==e.handle&&void 0!==e.conf&&cC.isMulticallOptions(e.options)}static isMulticallOptions(e){return void 0!==e&&void 0!==e.batchSize&&void 0!==e.timeWindow&&void 0!==e.contract}}cC.DefaultOptions=aC({},uC);const lC=["getNetwork","getBlockNumber","getGasPrice","getTransactionCount","getStorageAt","sendTransaction","estimateGas","getBlock","getTransaction","getTransactionReceipt","getLogs","emit","litenerCount","addListener","removeListener","waitForTransaction","detectNetwork","getBlockWithTransactions"];var dC=Object.freeze({__proto__:null,ProxyMethods:lC,MulticallProvider:class extends Jf{constructor(e,t){var n;super(e.getNetwork()),n=this,this.provider=e,this.multicall=void 0,this.listenerCount=this.provider.listenerCount,this.getResolver=async function(e){const t=n.provider;if(t.getResolver){const r=await t.getResolver(await e);return r?new Wf(n,r.address,r.name):null}return t.getResolver(await e)},this.next=async function(e,t){try{switch(e.method){case oC.ethCall:n.callback(e,t,await n.provider.call(e.params[0],e.params[1]));break;case oC.ethGetCode:n.callback(e,t,await n.provider.getCode(e.params[0],e.params[1]));break;case oC.ethGetBalance:n.callback(e,t,await n.provider.getBalance(e.params[0],e.params[1]))}}catch(r){n.callback(e,t,void 0,r)}},this.multicall=cC.isMulticall(t)?t:new cC(t),lC.forEach((t=>{void 0!==e[t]&&(this[t]=(...n)=>e[t](...n))}))}callback(e,t,n,r){t(r,{jsonrpc:iC,id:e.id,result:n,error:r})}async call(e,t){return this.rpcCall(oC.ethCall,e,t)}async getCode(e,t){return this.rpcCall(oC.ethGetCode,e,t)}async getBalance(e,t){return this.rpcCall(oC.ethGetBalance,e,t)}async rpcCall(e,...t){const n=KR();return(await WR(this.multicall.handle)(this.next,{jsonrpc:iC,id:n,method:e,params:t})).result}},MulticallExternalProvider:class{constructor(e,t){if(this.provider=e,this.multicall=void 0,this.multicall=cC.isMulticall(t)?t:new cC(t),e.send){const t=async function(t,n){e.send(t,n)};this.send=(e,n)=>{this.multicall.handle(t,e,n)}}if(e.sendAsync){const t=async function(t,n){e.sendAsync(t,n)};this.sendAsync=(e,n)=>{this.multicall.handle(t,e,n)}}}get isMetaMask(){return this.provider.isMetaMask}get isStatus(){return this.provider.isStatus}},multicallMiddleware:e=>t=>{const n=cC.isMulticall(e)?e:new cC(e);return(e,r)=>n.handle(t,e,r)}}),fC=dt(Object.freeze({__proto__:null,Multicall:cC,providers:dC})),pC=dt(Gh),hC={},mC=dt(ki),yC=dt(Da),gC=dt(Il),bC=dt(Xn),vC=dt(So),wC=dt(td),TC=dt(Fd),AC=dt(ci),EC=dt(Rn),_C=dt(Nl),IC=dt(sd),RC=dt(Nr),CC=dt(bi),OC=dt(Uc),kC=dt(_a),SC=dt(rl),NC=dt(Nh),xC=dt(Hd),PC=dt(uf);!function(e){var t=ct&&ct.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),n=ct&&ct.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=ct&&ct.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,"__esModule",{value:!0}),e.formatBytes32String=e.Utf8ErrorFuncs=e.toUtf8String=e.toUtf8CodePoints=e.toUtf8Bytes=e._toEscapedUtf8String=e.nameprep=e.hexDataSlice=e.hexDataLength=e.hexZeroPad=e.hexValue=e.hexStripZeros=e.hexConcat=e.isHexString=e.hexlify=e.base64=e.base58=e.TransactionDescription=e.LogDescription=e.Interface=e.SigningKey=e.HDNode=e.defaultPath=e.isBytesLike=e.isBytes=e.zeroPad=e.stripZeros=e.concat=e.arrayify=e.shallowCopy=e.resolveProperties=e.getStatic=e.defineReadOnly=e.deepCopy=e.checkProperties=e.poll=e.fetchJson=e._fetchData=e.RLP=e.Logger=e.checkResultErrors=e.FormatTypes=e.ParamType=e.FunctionFragment=e.EventFragment=e.ErrorFragment=e.ConstructorFragment=e.Fragment=e.defaultAbiCoder=e.AbiCoder=void 0,e.Indexed=e.Utf8ErrorReason=e.UnicodeNormalizationForm=e.SupportedAlgorithm=e.mnemonicToSeed=e.isValidMnemonic=e.entropyToMnemonic=e.mnemonicToEntropy=e.getAccountPath=e.verifyTypedData=e.verifyMessage=e.recoverPublicKey=e.computePublicKey=e.recoverAddress=e.computeAddress=e.getJsonWalletAddress=e.TransactionTypes=e.serializeTransaction=e.parseTransaction=e.accessListify=e.joinSignature=e.splitSignature=e.soliditySha256=e.solidityKeccak256=e.solidityPack=e.shuffled=e.randomBytes=e.sha512=e.sha256=e.ripemd160=e.keccak256=e.computeHmac=e.commify=e.parseUnits=e.formatUnits=e.parseEther=e.formatEther=e.isAddress=e.getCreate2Address=e.getContractAddress=e.getIcapAddress=e.getAddress=e._TypedDataEncoder=e.id=e.isValidName=e.namehash=e.hashMessage=e.dnsEncode=e.parseBytes32String=void 0;var i=PA;Object.defineProperty(e,"AbiCoder",{enumerable:!0,get:function(){return i.AbiCoder}}),Object.defineProperty(e,"checkResultErrors",{enumerable:!0,get:function(){return i.checkResultErrors}}),Object.defineProperty(e,"ConstructorFragment",{enumerable:!0,get:function(){return i.ConstructorFragment}}),Object.defineProperty(e,"defaultAbiCoder",{enumerable:!0,get:function(){return i.defaultAbiCoder}}),Object.defineProperty(e,"ErrorFragment",{enumerable:!0,get:function(){return i.ErrorFragment}}),Object.defineProperty(e,"EventFragment",{enumerable:!0,get:function(){return i.EventFragment}}),Object.defineProperty(e,"FormatTypes",{enumerable:!0,get:function(){return i.FormatTypes}}),Object.defineProperty(e,"Fragment",{enumerable:!0,get:function(){return i.Fragment}}),Object.defineProperty(e,"FunctionFragment",{enumerable:!0,get:function(){return i.FunctionFragment}}),Object.defineProperty(e,"Indexed",{enumerable:!0,get:function(){return i.Indexed}}),Object.defineProperty(e,"Interface",{enumerable:!0,get:function(){return i.Interface}}),Object.defineProperty(e,"LogDescription",{enumerable:!0,get:function(){return i.LogDescription}}),Object.defineProperty(e,"ParamType",{enumerable:!0,get:function(){return i.ParamType}}),Object.defineProperty(e,"TransactionDescription",{enumerable:!0,get:function(){return i.TransactionDescription}});var a=mC;Object.defineProperty(e,"getAddress",{enumerable:!0,get:function(){return a.getAddress}}),Object.defineProperty(e,"getCreate2Address",{enumerable:!0,get:function(){return a.getCreate2Address}}),Object.defineProperty(e,"getContractAddress",{enumerable:!0,get:function(){return a.getContractAddress}}),Object.defineProperty(e,"getIcapAddress",{enumerable:!0,get:function(){return a.getIcapAddress}}),Object.defineProperty(e,"isAddress",{enumerable:!0,get:function(){return a.isAddress}});var o=r(yC);e.base64=o;var s=gC;Object.defineProperty(e,"base58",{enumerable:!0,get:function(){return s.Base58}});var u=bC;Object.defineProperty(e,"arrayify",{enumerable:!0,get:function(){return u.arrayify}}),Object.defineProperty(e,"concat",{enumerable:!0,get:function(){return u.concat}}),Object.defineProperty(e,"hexConcat",{enumerable:!0,get:function(){return u.hexConcat}}),Object.defineProperty(e,"hexDataSlice",{enumerable:!0,get:function(){return u.hexDataSlice}}),Object.defineProperty(e,"hexDataLength",{enumerable:!0,get:function(){return u.hexDataLength}}),Object.defineProperty(e,"hexlify",{enumerable:!0,get:function(){return u.hexlify}}),Object.defineProperty(e,"hexStripZeros",{enumerable:!0,get:function(){return u.hexStripZeros}}),Object.defineProperty(e,"hexValue",{enumerable:!0,get:function(){return u.hexValue}}),Object.defineProperty(e,"hexZeroPad",{enumerable:!0,get:function(){return u.hexZeroPad}}),Object.defineProperty(e,"isBytes",{enumerable:!0,get:function(){return u.isBytes}}),Object.defineProperty(e,"isBytesLike",{enumerable:!0,get:function(){return u.isBytesLike}}),Object.defineProperty(e,"isHexString",{enumerable:!0,get:function(){return u.isHexString}}),Object.defineProperty(e,"joinSignature",{enumerable:!0,get:function(){return u.joinSignature}}),Object.defineProperty(e,"zeroPad",{enumerable:!0,get:function(){return u.zeroPad}}),Object.defineProperty(e,"splitSignature",{enumerable:!0,get:function(){return u.splitSignature}}),Object.defineProperty(e,"stripZeros",{enumerable:!0,get:function(){return u.stripZeros}});var c=vC;Object.defineProperty(e,"_TypedDataEncoder",{enumerable:!0,get:function(){return c._TypedDataEncoder}}),Object.defineProperty(e,"dnsEncode",{enumerable:!0,get:function(){return c.dnsEncode}}),Object.defineProperty(e,"hashMessage",{enumerable:!0,get:function(){return c.hashMessage}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return c.id}}),Object.defineProperty(e,"isValidName",{enumerable:!0,get:function(){return c.isValidName}}),Object.defineProperty(e,"namehash",{enumerable:!0,get:function(){return c.namehash}});var l=wC;Object.defineProperty(e,"defaultPath",{enumerable:!0,get:function(){return l.defaultPath}}),Object.defineProperty(e,"entropyToMnemonic",{enumerable:!0,get:function(){return l.entropyToMnemonic}}),Object.defineProperty(e,"getAccountPath",{enumerable:!0,get:function(){return l.getAccountPath}}),Object.defineProperty(e,"HDNode",{enumerable:!0,get:function(){return l.HDNode}}),Object.defineProperty(e,"isValidMnemonic",{enumerable:!0,get:function(){return l.isValidMnemonic}}),Object.defineProperty(e,"mnemonicToEntropy",{enumerable:!0,get:function(){return l.mnemonicToEntropy}}),Object.defineProperty(e,"mnemonicToSeed",{enumerable:!0,get:function(){return l.mnemonicToSeed}});var d=TC;Object.defineProperty(e,"getJsonWalletAddress",{enumerable:!0,get:function(){return d.getJsonWalletAddress}});var f=AC;Object.defineProperty(e,"keccak256",{enumerable:!0,get:function(){return f.keccak256}});var p=EC;Object.defineProperty(e,"Logger",{enumerable:!0,get:function(){return p.Logger}});var h=_C;Object.defineProperty(e,"computeHmac",{enumerable:!0,get:function(){return h.computeHmac}}),Object.defineProperty(e,"ripemd160",{enumerable:!0,get:function(){return h.ripemd160}}),Object.defineProperty(e,"sha256",{enumerable:!0,get:function(){return h.sha256}}),Object.defineProperty(e,"sha512",{enumerable:!0,get:function(){return h.sha512}});var m=AI;Object.defineProperty(e,"solidityKeccak256",{enumerable:!0,get:function(){return m.keccak256}}),Object.defineProperty(e,"solidityPack",{enumerable:!0,get:function(){return m.pack}}),Object.defineProperty(e,"soliditySha256",{enumerable:!0,get:function(){return m.sha256}});var y=IC;Object.defineProperty(e,"randomBytes",{enumerable:!0,get:function(){return y.randomBytes}}),Object.defineProperty(e,"shuffled",{enumerable:!0,get:function(){return y.shuffled}});var g=RC;Object.defineProperty(e,"checkProperties",{enumerable:!0,get:function(){return g.checkProperties}}),Object.defineProperty(e,"deepCopy",{enumerable:!0,get:function(){return g.deepCopy}}),Object.defineProperty(e,"defineReadOnly",{enumerable:!0,get:function(){return g.defineReadOnly}}),Object.defineProperty(e,"getStatic",{enumerable:!0,get:function(){return g.getStatic}}),Object.defineProperty(e,"resolveProperties",{enumerable:!0,get:function(){return g.resolveProperties}}),Object.defineProperty(e,"shallowCopy",{enumerable:!0,get:function(){return g.shallowCopy}});var b=r(CC);e.RLP=b;var v=OC;Object.defineProperty(e,"computePublicKey",{enumerable:!0,get:function(){return v.computePublicKey}}),Object.defineProperty(e,"recoverPublicKey",{enumerable:!0,get:function(){return v.recoverPublicKey}}),Object.defineProperty(e,"SigningKey",{enumerable:!0,get:function(){return v.SigningKey}});var w=kC;Object.defineProperty(e,"formatBytes32String",{enumerable:!0,get:function(){return w.formatBytes32String}}),Object.defineProperty(e,"nameprep",{enumerable:!0,get:function(){return w.nameprep}}),Object.defineProperty(e,"parseBytes32String",{enumerable:!0,get:function(){return w.parseBytes32String}}),Object.defineProperty(e,"_toEscapedUtf8String",{enumerable:!0,get:function(){return w._toEscapedUtf8String}}),Object.defineProperty(e,"toUtf8Bytes",{enumerable:!0,get:function(){return w.toUtf8Bytes}}),Object.defineProperty(e,"toUtf8CodePoints",{enumerable:!0,get:function(){return w.toUtf8CodePoints}}),Object.defineProperty(e,"toUtf8String",{enumerable:!0,get:function(){return w.toUtf8String}}),Object.defineProperty(e,"Utf8ErrorFuncs",{enumerable:!0,get:function(){return w.Utf8ErrorFuncs}});var T=SC;Object.defineProperty(e,"accessListify",{enumerable:!0,get:function(){return T.accessListify}}),Object.defineProperty(e,"computeAddress",{enumerable:!0,get:function(){return T.computeAddress}}),Object.defineProperty(e,"parseTransaction",{enumerable:!0,get:function(){return T.parse}}),Object.defineProperty(e,"recoverAddress",{enumerable:!0,get:function(){return T.recoverAddress}}),Object.defineProperty(e,"serializeTransaction",{enumerable:!0,get:function(){return T.serialize}}),Object.defineProperty(e,"TransactionTypes",{enumerable:!0,get:function(){return T.TransactionTypes}});var A=NC;Object.defineProperty(e,"commify",{enumerable:!0,get:function(){return A.commify}}),Object.defineProperty(e,"formatEther",{enumerable:!0,get:function(){return A.formatEther}}),Object.defineProperty(e,"parseEther",{enumerable:!0,get:function(){return A.parseEther}}),Object.defineProperty(e,"formatUnits",{enumerable:!0,get:function(){return A.formatUnits}}),Object.defineProperty(e,"parseUnits",{enumerable:!0,get:function(){return A.parseUnits}});var E=xC;Object.defineProperty(e,"verifyMessage",{enumerable:!0,get:function(){return E.verifyMessage}}),Object.defineProperty(e,"verifyTypedData",{enumerable:!0,get:function(){return E.verifyTypedData}});var _=PC;Object.defineProperty(e,"_fetchData",{enumerable:!0,get:function(){return _._fetchData}}),Object.defineProperty(e,"fetchJson",{enumerable:!0,get:function(){return _.fetchJson}}),Object.defineProperty(e,"poll",{enumerable:!0,get:function(){return _.poll}});var I=_C;Object.defineProperty(e,"SupportedAlgorithm",{enumerable:!0,get:function(){return I.SupportedAlgorithm}});var R=kC;Object.defineProperty(e,"UnicodeNormalizationForm",{enumerable:!0,get:function(){return R.UnicodeNormalizationForm}}),Object.defineProperty(e,"Utf8ErrorReason",{enumerable:!0,get:function(){return R.Utf8ErrorReason}})}(hC);var MC={};Object.defineProperty(MC,"__esModule",{value:!0}),MC.DomainRegistryABI=void 0;MC.DomainRegistryABI=[{inputs:[{internalType:"string",name:"domain",type:"string"}],name:"DomainAlreadyRegistered",type:"error"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"},{internalType:"uint256",name:"maxIndex",type:"uint256"},{internalType:"uint256",name:"suppliedIndex",type:"uint256"}],name:"DomainIndexOutOfRange",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"domain",type:"string"},{indexed:!1,internalType:"bytes4",name:"tag",type:"bytes4"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"DomainRegistered",type:"event"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"},{internalType:"uint256",name:"index",type:"uint256"}],name:"getDomain",outputs:[{internalType:"string",name:"domain",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],name:"getDomains",outputs:[{internalType:"string[]",name:"domains",type:"string[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],name:"getNumberOfDomains",outputs:[{internalType:"uint256",name:"totalDomains",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"domain",type:"string"}],name:"setDomain",outputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],stateMutability:"nonpayable",type:"function"}];var BC={};Object.defineProperty(BC,"__esModule",{value:!0}),BC.SeaportABIv14=void 0;BC.SeaportABIv14=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationCriteriaResolverOutOfRange",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"CriteriaNotEnabledForItem",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"EtherTransferGenericFailure",type:"error"},{inputs:[],name:"InexactFraction",type:"error"},{inputs:[],name:"InsufficientEtherSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidContractOrder",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[],name:"InvalidFulfillmentComponentData",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[{internalType:"uint256",name:"fulfillmentIndex",type:"uint256"}],name:"MismatchedFulfillmentOfferAndConsiderationComponents",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"MissingFulfillmentComponentOnAggregation",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[],name:"OfferAndConsiderationRequiredOnFulfillment",type:"error"},{inputs:[],name:"OfferCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"OrderCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"}],name:"UnresolvedConsiderationCriteria",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"offerIndex",type:"uint256"}],name:"UnresolvedOfferCriteria",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents[]",name:"orders",type:"tuple[]"}],name:"cancel",outputs:[{internalType:"bool",name:"cancelled",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder",name:"advancedOrder",type:"tuple"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"}],name:"fulfillAdvancedOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"advancedOrders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"offerFulfillments",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"considerationFulfillments",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableAdvancedOrders",outputs:[{internalType:"bool[]",name:"availableOrders",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"offerFulfillments",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"considerationFulfillments",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableOrders",outputs:[{internalType:"bool[]",name:"availableOrders",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"parameters",type:"tuple"}],name:"fulfillBasicOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order",name:"order",type:"tuple"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"}],name:"fulfillOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"contractOfferer",type:"address"}],name:"getContractOffererNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"offerer",type:"address"}],name:"getCounter",outputs:[{internalType:"uint256",name:"counter",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents",name:"order",type:"tuple"}],name:"getOrderHash",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"getOrderStatus",outputs:[{internalType:"bool",name:"isValidated",type:"bool"},{internalType:"bool",name:"isCancelled",type:"bool"},{internalType:"uint256",name:"totalFilled",type:"uint256"},{internalType:"uint256",name:"totalSize",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"incrementCounter",outputs:[{internalType:"uint256",name:"newCounter",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"information",outputs:[{internalType:"string",name:"version",type:"string"},{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"orders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"fulfillments",type:"tuple[]"},{internalType:"address",name:"recipient",type:"address"}],name:"matchAdvancedOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"fulfillments",type:"tuple[]"}],name:"matchOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"contractName",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"}],name:"validate",outputs:[{internalType:"bool",name:"validated",type:"bool"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];var DC={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.DOMAIN_REGISTRY_ADDRESS=e.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS=e.CROSS_CHAIN_SEAPORT_V1_4_ADDRESS=e.KNOWN_CONDUIT_KEYS_TO_CONDUIT=e.NO_CONDUIT=e.ONE_HUNDRED_PERCENT_BP=e.MAX_INT=e.BasicOrderRouteType=e.Side=e.ItemType=e.OrderType=e.EIP_712_BULK_ORDER_TYPE=e.EIP_712_ORDER_TYPE=e.OPENSEA_CONDUIT_ADDRESS=e.OPENSEA_CONDUIT_KEY=e.SEAPORT_CONTRACT_VERSION_V1_5=e.SEAPORT_CONTRACT_VERSION_V1_4=e.SEAPORT_CONTRACT_NAME=void 0;const t=pC;var n,r,i,a;e.SEAPORT_CONTRACT_NAME="Seaport",e.SEAPORT_CONTRACT_VERSION_V1_4="1.4",e.SEAPORT_CONTRACT_VERSION_V1_5="1.5",e.OPENSEA_CONDUIT_KEY="0x0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000",e.OPENSEA_CONDUIT_ADDRESS="0x1e0049783f008a0085193e00003d00cd54003c71",e.EIP_712_ORDER_TYPE={OrderComponents:[{name:"offerer",type:"address"},{name:"zone",type:"address"},{name:"offer",type:"OfferItem[]"},{name:"consideration",type:"ConsiderationItem[]"},{name:"orderType",type:"uint8"},{name:"startTime",type:"uint256"},{name:"endTime",type:"uint256"},{name:"zoneHash",type:"bytes32"},{name:"salt",type:"uint256"},{name:"conduitKey",type:"bytes32"},{name:"counter",type:"uint256"}],OfferItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"}],ConsiderationItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}]},e.EIP_712_BULK_ORDER_TYPE={BulkOrder:[{name:"tree",type:"OrderComponents[2][2][2][2][2][2][2]"}],OrderComponents:[{name:"offerer",type:"address"},{name:"zone",type:"address"},{name:"offer",type:"OfferItem[]"},{name:"consideration",type:"ConsiderationItem[]"},{name:"orderType",type:"uint8"},{name:"startTime",type:"uint256"},{name:"endTime",type:"uint256"},{name:"zoneHash",type:"bytes32"},{name:"salt",type:"uint256"},{name:"conduitKey",type:"bytes32"},{name:"counter",type:"uint256"}],OfferItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"}],ConsiderationItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}]},function(e){e[e.FULL_OPEN=0]="FULL_OPEN",e[e.PARTIAL_OPEN=1]="PARTIAL_OPEN",e[e.FULL_RESTRICTED=2]="FULL_RESTRICTED",e[e.PARTIAL_RESTRICTED=3]="PARTIAL_RESTRICTED"}(n||(e.OrderType=n={})),function(e){e[e.NATIVE=0]="NATIVE",e[e.ERC20=1]="ERC20",e[e.ERC721=2]="ERC721",e[e.ERC1155=3]="ERC1155",e[e.ERC721_WITH_CRITERIA=4]="ERC721_WITH_CRITERIA",e[e.ERC1155_WITH_CRITERIA=5]="ERC1155_WITH_CRITERIA"}(r||(e.ItemType=r={})),function(e){e[e.OFFER=0]="OFFER",e[e.CONSIDERATION=1]="CONSIDERATION"}(i||(e.Side=i={})),function(e){e[e.ETH_TO_ERC721=0]="ETH_TO_ERC721",e[e.ETH_TO_ERC1155=1]="ETH_TO_ERC1155",e[e.ERC20_TO_ERC721=2]="ERC20_TO_ERC721",e[e.ERC20_TO_ERC1155=3]="ERC20_TO_ERC1155",e[e.ERC721_TO_ERC20=4]="ERC721_TO_ERC20",e[e.ERC1155_TO_ERC20=5]="ERC1155_TO_ERC20"}(a||(e.BasicOrderRouteType=a={})),e.MAX_INT=t.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),e.ONE_HUNDRED_PERCENT_BP=1e4,e.NO_CONDUIT="0x0000000000000000000000000000000000000000000000000000000000000000",e.KNOWN_CONDUIT_KEYS_TO_CONDUIT={[e.OPENSEA_CONDUIT_KEY]:e.OPENSEA_CONDUIT_ADDRESS},e.CROSS_CHAIN_SEAPORT_V1_4_ADDRESS="0x00000000000001ad428e4906aE43D8F9852d0dD6",e.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS="0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",e.DOMAIN_REGISTRY_ADDRESS="0x000000000DaD0DE04D2B2D4a5A74581EBA94124A"}(DC);var FC={},LC={};Object.defineProperty(LC,"__esModule",{value:!0}),LC.ERC20ABI=void 0;LC.ERC20ABI=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"PERMIT_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];var UC={};Object.defineProperty(UC,"__esModule",{value:!0}),UC.ERC721ABI=void 0;UC.ERC721ABI=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}];var qC,jC={},GC={};function HC(){if(qC)return GC;qC=1,Object.defineProperty(GC,"__esModule",{value:!0}),GC.getItemToCriteriaMap=GC.generateCriteriaResolvers=void 0;const e=DC,t=WC();GC.generateCriteriaResolvers=({orders:n,offerCriterias:r=[[]],considerationCriterias:i=[[]]})=>{const a=n.flatMap(((n,r)=>n.parameters.offer.map(((t,n)=>({orderIndex:r,item:t,index:n,side:e.Side.OFFER}))).filter((({item:e})=>(0,t.isCriteriaItem)(e.itemType))))),o=n.flatMap(((n,r)=>n.parameters.consideration.map(((t,n)=>({orderIndex:r,item:t,index:n,side:e.Side.CONSIDERATION}))).filter((({item:e})=>(0,t.isCriteriaItem)(e.itemType))))),s=(e,t)=>e.map((({orderIndex:e,item:n,index:r,side:i})=>{const a=n.identifierOrCriteria||"0",o=t[e][r];return{orderIndex:e,index:r,side:i,identifier:o.identifier,criteriaProof:"0"===a?[]:o.proof}}));return[...s(a,r),...s(o,i)]};return GC.getItemToCriteriaMap=(e,n)=>{const r=[...n];return e.reduce(((e,n)=>((0,t.isCriteriaItem)(n.itemType)&&e.set(n,r.shift()),e)),new Map)},GC}var zC,VC={};function WC(){return zC||(zC=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getMaximumSizeForOrder=e.getSummedTokenAndIdentifierAmounts=e.getPresentItemAmount=e.isCriteriaItem=e.isErc1155Item=e.isErc721Item=e.isErc20Item=e.isNativeCurrencyItem=e.isCurrencyItem=void 0;const t=pC,n=DC,r=HC(),i=VC;e.isCurrencyItem=({itemType:e})=>[n.ItemType.NATIVE,n.ItemType.ERC20].includes(e);e.isNativeCurrencyItem=({itemType:e})=>e===n.ItemType.NATIVE;e.isErc20Item=e=>e===n.ItemType.ERC20;e.isErc721Item=e=>[n.ItemType.ERC721,n.ItemType.ERC721_WITH_CRITERIA].includes(e);e.isErc1155Item=e=>[n.ItemType.ERC1155,n.ItemType.ERC1155_WITH_CRITERIA].includes(e);e.isCriteriaItem=e=>[n.ItemType.ERC721_WITH_CRITERIA,n.ItemType.ERC1155_WITH_CRITERIA].includes(e);e.getPresentItemAmount=({startAmount:e,endAmount:n,timeBasedItemParams:r})=>{const i=t.BigNumber.from(e),a=t.BigNumber.from(n);if(!r)return i.gt(a)?i:a;const{isConsiderationItem:o,currentBlockTimestamp:s,ascendingAmountTimestampBuffer:u,startTime:c,endTime:l}=r,d=t.BigNumber.from(l).sub(c),f=a.gt(e),p=t.BigNumber.from(f?s+u:s);if(p.lt(c))return i;const h=(p.gt(l)?t.BigNumber.from(l):p).sub(c),m=d.sub(h);return i.mul(m).add(a.mul(h)).add(o?d.sub(1):0).div(d)};e.getSummedTokenAndIdentifierAmounts=({items:n,criterias:i,timeBasedItemParams:a})=>{const o=(0,r.getItemToCriteriaMap)(n,i),s=n.reduce(((n,r)=>{var i,s,u,c;const l=null!==(s=null===(i=o.get(r))||void 0===i?void 0:i.identifier)&&void 0!==s?s:r.identifierOrCriteria;return Object.assign(Object.assign({},n),{[r.token]:Object.assign(Object.assign({},n[r.token]),{[l]:(null!==(c=null===(u=n[r.token])||void 0===u?void 0:u[l])&&void 0!==c?c:t.BigNumber.from(0)).add((0,e.getPresentItemAmount)({startAmount:r.startAmount,endAmount:r.endAmount,timeBasedItemParams:a}))})})}),{});return s};e.getMaximumSizeForOrder=({parameters:{offer:e,consideration:t}})=>{const n=[...e,...t].flatMap((({startAmount:e,endAmount:t})=>[e,t]));return(0,i.findGcd)(n)}}(jC)),jC}!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.findGcd=e.gcd=void 0;const t=pC;e.gcd=(n,r)=>{const i=t.BigNumber.from(n),a=t.BigNumber.from(r);return i.eq(0)?a:(0,e.gcd)(a.mod(n),i)};e.findGcd=n=>{let r=t.BigNumber.from(n[0]);for(let t=1;t<n.length;t++)if(r=(0,e.gcd)(n[t],r),r.eq(1))return r;return r}}(VC);var KC={};!function(e){var t=ct&&ct.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.getTagFromDomain=e.getTransactionMethods=e.executeAllActions=void 0;const n=hC;e.executeAllActions=e=>t(void 0,void 0,void 0,(function*(){for(let t=0;t<e.length-1;t++){const n=e[t];if("approval"===n.type){const e=yield n.transactionMethods.transact();yield e.wait()}}const t=e[e.length-1];switch(t.type){case"create":return t.createOrder();case"createBulk":return t.createBulkOrders();default:return t.transactionMethods.transact()}}));e.getTransactionMethods=(n,r,i,a)=>{const o=i[i.length-1];let s;(e=>{const t=["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","type","accessList","customData","ccipReadEnabled","value","blockTag","CallOverrides"];return void 0===e||Object.keys(e).every((e=>t.includes(e)))})(o)&&(s=o,i.pop());const u=o=>t(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},s),o),u=yield n.populateTransaction[r](...i,t);if(a){const t=(0,e.getTagFromDomain)(a);u.data=u.data+t}return u}));return{callStatic:e=>{const t=Object.assign(Object.assign({},s),e);return n.callStatic[r](...i,t)},estimateGas:e=>{const t=Object.assign(Object.assign({},s),e);return n.estimateGas[r](...i,t)},transact:e=>t(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},s),e),r=yield u(t);return n.signer.sendTransaction(r)})),buildTransaction:u}};e.getTagFromDomain=e=>(0,n.keccak256)((0,n.toUtf8Bytes)(e)).slice(2,10)}(KC);var XC=ct&&ct.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(FC,"__esModule",{value:!0}),FC.getApprovalActions=FC.approvedItemAmount=void 0;const JC=pC,YC=LC,QC=UC,$C=DC,ZC=WC(),eO=KC;FC.approvedItemAmount=(e,t,n,r)=>XC(void 0,void 0,void 0,(function*(){if((0,ZC.isErc721Item)(t.itemType)||(0,ZC.isErc1155Item)(t.itemType)){return new JC.Contract(t.token,QC.ERC721ABI,r).isApprovedForAll(e,n).then((e=>e?$C.MAX_INT:JC.BigNumber.from(0)))}if(t.itemType===$C.ItemType.ERC20){return new JC.Contract(t.token,YC.ERC20ABI,r).allowance(e,n)}return $C.MAX_INT})),FC.getApprovalActions=function(e,t,n){return e.filter(((t,n)=>n===e.length-1||e[n+1].token!==t.token)).map((({token:e,operator:r,itemType:i,identifierOrCriteria:a,requiredApprovedAmount:o})=>{const s=(0,ZC.isErc1155Item)(i);if((0,ZC.isErc721Item)(i)||s){const o=new JC.Contract(e,QC.ERC721ABI,n);return{type:"approval",token:e,identifierOrCriteria:a,itemType:i,operator:r,transactionMethods:(0,eO.getTransactionMethods)(o.connect(n),t&&!s?"approve":"setApprovalForAll",[r,!(t&&!s)||a])}}{const s=new JC.Contract(e,YC.ERC20ABI,n);return{type:"approval",token:e,identifierOrCriteria:a,itemType:i,transactionMethods:(0,eO.getTransactionMethods)(s.connect(n),"approve",[r,t?o:$C.MAX_INT]),operator:r}}}))};var tO={},nO={},rO={};Object.defineProperty(rO,"__esModule",{value:!0}),rO.ERC1155ABI=void 0;rO.ERC1155ABI=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256[]",name:"ids",type:"uint256[]"},{indexed:!1,internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"TransferBatch",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TransferSingle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"value",type:"string"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"URI",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"owners",type:"address[]"},{internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"balanceOfBatch",outputs:[{internalType:"uint256[]",name:"balances",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeBatchTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"uri",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}];var iO=ct&&ct.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(nO,"__esModule",{value:!0}),nO.balanceOf=void 0;const aO=pC,oO=rO,sO=LC,uO=UC,cO=DC,lO=WC();nO.balanceOf=(e,t,n,r)=>iO(void 0,void 0,void 0,(function*(){if((0,lO.isErc721Item)(t.itemType)){const i=new aO.Contract(t.token,uO.ERC721ABI,n);return t.itemType===cO.ItemType.ERC721_WITH_CRITERIA?r?i.ownerOf(r.identifier).then((t=>aO.BigNumber.from(Number(t.toLowerCase()===e.toLowerCase())))):i.balanceOf(e):i.ownerOf(t.identifierOrCriteria).then((t=>aO.BigNumber.from(Number(t.toLowerCase()===e.toLowerCase()))))}if((0,lO.isErc1155Item)(t.itemType)){const i=new aO.Contract(t.token,oO.ERC1155ABI,n);if(t.itemType===cO.ItemType.ERC1155_WITH_CRITERIA){if(!r){const e=aO.BigNumber.from(t.startAmount),n=aO.BigNumber.from(t.endAmount);return e.gt(n)?e:n}return i.balanceOf(e,r.identifier)}return i.balanceOf(e,t.identifierOrCriteria)}if((0,lO.isErc20Item)(t.itemType)){return new aO.Contract(t.token,sO.ERC20ABI,n).balanceOf(e)}return n.getBalance(e)})),function(e){var t=ct&&ct.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.validateStandardFulfillBalancesAndApprovals=e.validateBasicFulfillBalancesAndApprovals=e.validateOfferBalancesAndApprovals=e.getInsufficientBalanceAndApprovalAmounts=e.getBalancesAndApprovals=void 0;const n=pC,r=DC,i=FC,a=nO,o=HC(),s=WC(),u=(e,t,n)=>{const r=e.find((({token:e,identifierOrCriteria:r})=>t.toLowerCase()===e.toLowerCase()&&r.toLowerCase()===n.toLowerCase()));if(!r)throw new Error("Balances and approvals didn't contain all tokens and identifiers");return r};e.getBalancesAndApprovals=({owner:e,items:u,criterias:c,operator:l,multicallProvider:d})=>t(void 0,void 0,void 0,(function*(){const f=(0,o.getItemToCriteriaMap)(u,c);return Promise.all(u.map((o=>t(void 0,void 0,void 0,(function*(){var t,u;let c=Promise.resolve(n.BigNumber.from(0));return c=(0,s.isErc721Item)(o.itemType)||(0,s.isErc1155Item)(o.itemType)||(0,s.isErc20Item)(o.itemType)?(0,i.approvedItemAmount)(e,o,l,d):Promise.resolve(r.MAX_INT),{token:o.token,identifierOrCriteria:null!==(u=null===(t=f.get(o))||void 0===t?void 0:t.identifier)&&void 0!==u?u:o.identifierOrCriteria,balance:yield(0,a.balanceOf)(e,o,d,f.get(o)),approvedAmount:yield c,itemType:o.itemType}})))))}));e.getInsufficientBalanceAndApprovalAmounts=({balancesAndApprovals:e,tokenAndIdentifierAmounts:t,operator:n})=>{const r=[...Object.entries(t).map((([e,t])=>Object.entries(t).map((([t,n])=>[e,t,n]))))].flat(),i=t=>r.filter((([n,r,i])=>u(e,n,r)[t].lt(i))).map((([n,r,i])=>{const a=u(e,n,r);return{token:n,identifierOrCriteria:r,requiredAmount:i,amountHave:a[t],itemType:a.itemType}})),[a,o]=[i("balance"),i("approvedAmount").map((e=>({token:e.token,identifierOrCriteria:e.identifierOrCriteria,approvedAmount:e.amountHave,requiredApprovedAmount:e.requiredAmount,itemType:e.itemType,operator:n})))];return{insufficientBalances:a,insufficientApprovals:o}};e.validateOfferBalancesAndApprovals=({offer:t,criterias:n,balancesAndApprovals:r,timeBasedItemParams:i,throwOnInsufficientBalances:a=!0,throwOnInsufficientApprovals:o,operator:u})=>{const{insufficientBalances:c,insufficientApprovals:l}=(0,e.getInsufficientBalanceAndApprovalAmounts)({balancesAndApprovals:r,tokenAndIdentifierAmounts:(0,s.getSummedTokenAndIdentifierAmounts)({items:t,criterias:n,timeBasedItemParams:i?Object.assign(Object.assign({},i),{isConsiderationItem:!1}):void 0}),operator:u});if(a&&c.length>0)throw new Error("The offerer does not have the amount needed to create or fulfill.");if(o&&l.length>0)throw new Error("The offerer does not have the sufficient approvals.");return l};e.validateBasicFulfillBalancesAndApprovals=({offer:t,consideration:n,offererBalancesAndApprovals:r,fulfillerBalancesAndApprovals:i,timeBasedItemParams:a,offererOperator:o,fulfillerOperator:u})=>{(0,e.validateOfferBalancesAndApprovals)({offer:t,criterias:[],balancesAndApprovals:r,timeBasedItemParams:a,throwOnInsufficientApprovals:!0,operator:o});const c=n.filter((e=>e.itemType!==t[0].itemType)),{insufficientBalances:l,insufficientApprovals:d}=(0,e.getInsufficientBalanceAndApprovalAmounts)({balancesAndApprovals:i,tokenAndIdentifierAmounts:(0,s.getSummedTokenAndIdentifierAmounts)({items:c,criterias:[],timeBasedItemParams:Object.assign(Object.assign({},a),{isConsiderationItem:!0})}),operator:u});if(l.length>0)throw new Error("The fulfiller does not have the balances needed to fulfill.");return d};e.validateStandardFulfillBalancesAndApprovals=({offer:t,consideration:n,offerCriteria:r,considerationCriteria:i,offererBalancesAndApprovals:a,fulfillerBalancesAndApprovals:o,timeBasedItemParams:u,offererOperator:l,fulfillerOperator:d})=>{(0,e.validateOfferBalancesAndApprovals)({offer:t,criterias:r,balancesAndApprovals:a,timeBasedItemParams:u,throwOnInsufficientApprovals:!0,operator:l});const f=c({items:t,criterias:r,balancesAndApprovals:o,timeBasedItemParams:u}),{insufficientBalances:p,insufficientApprovals:h}=(0,e.getInsufficientBalanceAndApprovalAmounts)({balancesAndApprovals:f,tokenAndIdentifierAmounts:(0,s.getSummedTokenAndIdentifierAmounts)({items:n,criterias:i,timeBasedItemParams:Object.assign(Object.assign({},u),{isConsiderationItem:!0})}),operator:d});if(p.length>0)throw new Error("The fulfiller does not have the balances needed to fulfill.");return h};const c=({items:e,criterias:t,timeBasedItemParams:n,balancesAndApprovals:r})=>{const i=(0,s.getSummedTokenAndIdentifierAmounts)({items:e,criterias:t,timeBasedItemParams:Object.assign(Object.assign({},n),{isConsiderationItem:!1})}),a=r.map((e=>Object.assign({},e)));return Object.entries(i).forEach((([e,t])=>Object.entries(t).forEach((([t,n])=>{const r=u(a,e,t),i=a.indexOf(r);a[i].balance=a[i].balance.add(n)})))),a}}(tO);var dO,fO={},pO={},hO={},mO={},yO={exports:{}},gO={exports:{}};function bO(){return dO||(dO=1,function(e,t){var n;e.exports=(n=n||function(e,t){var n=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),r={},i=r.lib={},a=i.Base={extend:function(e){var t=n(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},o=i.WordArray=a.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||u).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var a=0;a<i;a++){var o=n[a>>>2]>>>24-a%4*8&255;t[r+a>>>2]|=o<<24-(r+a)%4*8}else for(a=0;a<i;a+=4)t[r+a>>>2]=n[a>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=a.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n,r=[],i=function(t){var n=987654321,r=4294967295;return function(){var i=((n=36969*(65535&n)+(n>>16)&r)<<16)+(t=18e3*(65535&t)+(t>>16)&r)&r;return i/=4294967296,(i+=.5)*(e.random()>.5?1:-1)}},a=0;a<t;a+=4){var s=i(4294967296*(n||e.random()));n=987654071*s(),r.push(4294967296*s()|0)}return new o.init(r,t)}}),s=r.enc={},u=s.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var a=t[i>>>2]>>>24-i%4*8&255;r.push((a>>>4).toString(16)),r.push((15&a).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new o.init(n,t/2)}},c=s.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var a=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(a))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new o.init(n,t)}},l=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(c.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return c.parse(unescape(encodeURIComponent(e)))}},d=i.BufferedBlockAlgorithm=a.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=l.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,r=n.words,i=n.sigBytes,a=this.blockSize,s=i/(4*a),u=(s=t?e.ceil(s):e.max((0|s)-this._minBufferSize,0))*a,c=e.min(4*u,i);if(u){for(var l=0;l<u;l+=a)this._doProcessBlock(r,l);var d=r.splice(0,u);n.sigBytes-=c}return new o.init(d,c)},clone:function(){var e=a.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});i.Hasher=d.extend({cfg:a.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){d.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new f.HMAC.init(e,n).finalize(t)}}});var f=r.algo={};return r}(Math),n)}(gO)),gO.exports}!function(e,t){var n;e.exports=(n=bO(),function(e){var t=n,r=t.lib,i=r.WordArray,a=r.Hasher,o=t.algo,s=[],u=[];!function(){function t(t){for(var n=e.sqrt(t),r=2;r<=n;r++)if(!(t%r))return!1;return!0}function n(e){return 4294967296*(e-(0|e))|0}for(var r=2,i=0;i<64;)t(r)&&(i<8&&(s[i]=n(e.pow(r,.5))),u[i]=n(e.pow(r,1/3)),i++),r++}();var c=[],l=o.SHA256=a.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],l=n[5],d=n[6],f=n[7],p=0;p<64;p++){if(p<16)c[p]=0|e[t+p];else{var h=c[p-15],m=(h<<25|h>>>7)^(h<<14|h>>>18)^h>>>3,y=c[p-2],g=(y<<15|y>>>17)^(y<<13|y>>>19)^y>>>10;c[p]=m+c[p-7]+g+c[p-16]}var b=r&i^r&a^i&a,v=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),w=f+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&l^~s&d)+u[p]+c[p];f=d,d=l,l=s,s=o+w|0,o=a,a=i,i=r,r=w+(v+b)|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+s|0,n[5]=n[5]+l|0,n[6]=n[6]+d|0,n[7]=n[7]+f|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return n[i>>>5]|=128<<24-i%32,n[14+(i+64>>>9<<4)]=e.floor(r/4294967296),n[15+(i+64>>>9<<4)]=r,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=a._createHelper(l),t.HmacSHA256=a._createHmacHelper(l)}(Math),n.SHA256)}(yO);var vO=yO.exports,wO={exports:{}};!function(e,t){e.exports=function(){function e(e,t){var n=t?"└":"├";return n+=e?"─ ":"──┐"}function t(e,t){var n=[];for(var r in e)e.hasOwnProperty(r)&&(t&&"function"==typeof e[r]||n.push(r));return n}function n(r,i,a,o,s,u,c){var l,d,f="",p=0,h=o.slice(0);if(h.push([i,a])&&o.length>0&&(o.forEach((function(e,t){t>0&&(f+=(e[1]?" ":"│")+" "),d||e[0]!==i||(d=!0)})),f+=e(r,a)+r,s&&("object"!=typeof i||i instanceof Date)&&(f+=": "+i),d&&(f+=" (circular ref.)"),c(f)),!d&&"object"==typeof i){var m=t(i,u);m.forEach((function(e){l=++p===m.length,n(e,i[e],l,h,s,u,c)}))}}var r={asLines:function(e,t,r,i){n(".",e,!1,[],t,"function"!=typeof r&&r,i||r)},asTree:function(e,t,r){var i="";return n(".",e,!1,[],t,r,(function(e){i+=e+"\n"})),i}};return r}()}(wO);var TO,AO=wO.exports,EO={},_O={exports:{}},IO={exports:{}};function RO(){return TO||(TO=1,function(e,t){var n;e.exports=(n=bO(),function(e){var t=n,r=t.lib,i=r.Base,a=r.WordArray,o=t.x64={};o.Word=i.extend({init:function(e,t){this.high=e,this.low=t}}),o.WordArray=i.extend({init:function(t,n){t=this.words=t||[],this.sigBytes=n!=e?n:8*t.length},toX32:function(){for(var e=this.words,t=e.length,n=[],r=0;r<t;r++){var i=e[r];n.push(i.high),n.push(i.low)}return a.create(n,this.sigBytes)},clone:function(){for(var e=i.clone.call(this),t=e.words=this.words.slice(0),n=t.length,r=0;r<n;r++)t[r]=t[r].clone();return e}})}(),n)}(IO)),IO.exports}var CO,OO={exports:{}};function kO(){return CO||(CO=1,function(e,t){var n;e.exports=(n=bO(),function(){if("function"==typeof ArrayBuffer){var e=n.lib.WordArray,t=e.init,r=e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var n=e.byteLength,r=[],i=0;i<n;i++)r[i>>>2]|=e[i]<<24-i%4*8;t.call(this,r,n)}else t.apply(this,arguments)};r.prototype=e}}(),n.lib.WordArray)}(OO)),OO.exports}var SO,NO={exports:{}};function xO(){return SO||(SO=1,function(e,t){var n;e.exports=(n=bO(),function(){var e=n,t=e.lib.WordArray,r=e.enc;function i(e){return e<<8&4278255360|e>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i+=2){var a=t[i>>>2]>>>16-i%4*8&65535;r.push(String.fromCharCode(a))}return r.join("")},parse:function(e){for(var n=e.length,r=[],i=0;i<n;i++)r[i>>>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(r,2*n)}},r.Utf16LE={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],a=0;a<n;a+=2){var o=i(t[a>>>2]>>>16-a%4*8&65535);r.push(String.fromCharCode(o))}return r.join("")},parse:function(e){for(var n=e.length,r=[],a=0;a<n;a++)r[a>>>1]|=i(e.charCodeAt(a)<<16-a%2*16);return t.create(r,2*n)}}}(),n.enc.Utf16)}(NO)),NO.exports}var PO,MO={exports:{}};function BO(){return PO||(PO=1,function(e,t){var n;e.exports=(n=bO(),function(){var e=n,t=e.lib.WordArray;function r(e,n,r){for(var i=[],a=0,o=0;o<n;o++)if(o%4){var s=r[e.charCodeAt(o-1)]<<o%4*2,u=r[e.charCodeAt(o)]>>>6-o%4*2;i[a>>>2]|=(s|u)<<24-a%4*8,a++}return t.create(i,a)}e.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var i=[],a=0;a<n;a+=3)for(var o=(t[a>>>2]>>>24-a%4*8&255)<<16|(t[a+1>>>2]>>>24-(a+1)%4*8&255)<<8|t[a+2>>>2]>>>24-(a+2)%4*8&255,s=0;s<4&&a+.75*s<n;s++)i.push(r.charAt(o>>>6*(3-s)&63));var u=r.charAt(64);if(u)for(;i.length%4;)i.push(u);return i.join("")},parse:function(e){var t=e.length,n=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var a=0;a<n.length;a++)i[n.charCodeAt(a)]=a}var o=n.charAt(64);if(o){var s=e.indexOf(o);-1!==s&&(t=s)}return r(e,t,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),n.enc.Base64)}(MO)),MO.exports}var DO,FO={exports:{}};function LO(){return DO||(DO=1,function(e,t){var n;e.exports=(n=bO(),function(e){var t=n,r=t.lib,i=r.WordArray,a=r.Hasher,o=t.algo,s=[];!function(){for(var t=0;t<64;t++)s[t]=4294967296*e.abs(e.sin(t+1))|0}();var u=o.MD5=a.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=t+n,i=e[r];e[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var a=this._hash.words,o=e[t+0],u=e[t+1],p=e[t+2],h=e[t+3],m=e[t+4],y=e[t+5],g=e[t+6],b=e[t+7],v=e[t+8],w=e[t+9],T=e[t+10],A=e[t+11],E=e[t+12],_=e[t+13],I=e[t+14],R=e[t+15],C=a[0],O=a[1],k=a[2],S=a[3];C=c(C,O,k,S,o,7,s[0]),S=c(S,C,O,k,u,12,s[1]),k=c(k,S,C,O,p,17,s[2]),O=c(O,k,S,C,h,22,s[3]),C=c(C,O,k,S,m,7,s[4]),S=c(S,C,O,k,y,12,s[5]),k=c(k,S,C,O,g,17,s[6]),O=c(O,k,S,C,b,22,s[7]),C=c(C,O,k,S,v,7,s[8]),S=c(S,C,O,k,w,12,s[9]),k=c(k,S,C,O,T,17,s[10]),O=c(O,k,S,C,A,22,s[11]),C=c(C,O,k,S,E,7,s[12]),S=c(S,C,O,k,_,12,s[13]),k=c(k,S,C,O,I,17,s[14]),C=l(C,O=c(O,k,S,C,R,22,s[15]),k,S,u,5,s[16]),S=l(S,C,O,k,g,9,s[17]),k=l(k,S,C,O,A,14,s[18]),O=l(O,k,S,C,o,20,s[19]),C=l(C,O,k,S,y,5,s[20]),S=l(S,C,O,k,T,9,s[21]),k=l(k,S,C,O,R,14,s[22]),O=l(O,k,S,C,m,20,s[23]),C=l(C,O,k,S,w,5,s[24]),S=l(S,C,O,k,I,9,s[25]),k=l(k,S,C,O,h,14,s[26]),O=l(O,k,S,C,v,20,s[27]),C=l(C,O,k,S,_,5,s[28]),S=l(S,C,O,k,p,9,s[29]),k=l(k,S,C,O,b,14,s[30]),C=d(C,O=l(O,k,S,C,E,20,s[31]),k,S,y,4,s[32]),S=d(S,C,O,k,v,11,s[33]),k=d(k,S,C,O,A,16,s[34]),O=d(O,k,S,C,I,23,s[35]),C=d(C,O,k,S,u,4,s[36]),S=d(S,C,O,k,m,11,s[37]),k=d(k,S,C,O,b,16,s[38]),O=d(O,k,S,C,T,23,s[39]),C=d(C,O,k,S,_,4,s[40]),S=d(S,C,O,k,o,11,s[41]),k=d(k,S,C,O,h,16,s[42]),O=d(O,k,S,C,g,23,s[43]),C=d(C,O,k,S,w,4,s[44]),S=d(S,C,O,k,E,11,s[45]),k=d(k,S,C,O,R,16,s[46]),C=f(C,O=d(O,k,S,C,p,23,s[47]),k,S,o,6,s[48]),S=f(S,C,O,k,b,10,s[49]),k=f(k,S,C,O,I,15,s[50]),O=f(O,k,S,C,y,21,s[51]),C=f(C,O,k,S,E,6,s[52]),S=f(S,C,O,k,h,10,s[53]),k=f(k,S,C,O,T,15,s[54]),O=f(O,k,S,C,u,21,s[55]),C=f(C,O,k,S,v,6,s[56]),S=f(S,C,O,k,R,10,s[57]),k=f(k,S,C,O,g,15,s[58]),O=f(O,k,S,C,_,21,s[59]),C=f(C,O,k,S,m,6,s[60]),S=f(S,C,O,k,A,10,s[61]),k=f(k,S,C,O,p,15,s[62]),O=f(O,k,S,C,w,21,s[63]),a[0]=a[0]+C|0,a[1]=a[1]+O|0,a[2]=a[2]+k|0,a[3]=a[3]+S|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;n[i>>>5]|=128<<24-i%32;var a=e.floor(r/4294967296),o=r;n[15+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),n[14+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t.sigBytes=4*(n.length+1),this._process();for(var s=this._hash,u=s.words,c=0;c<4;c++){var l=u[c];u[c]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return s},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}});function c(e,t,n,r,i,a,o){var s=e+(t&n|~t&r)+i+o;return(s<<a|s>>>32-a)+t}function l(e,t,n,r,i,a,o){var s=e+(t&r|n&~r)+i+o;return(s<<a|s>>>32-a)+t}function d(e,t,n,r,i,a,o){var s=e+(t^n^r)+i+o;return(s<<a|s>>>32-a)+t}function f(e,t,n,r,i,a,o){var s=e+(n^(t|~r))+i+o;return(s<<a|s>>>32-a)+t}t.MD5=a._createHelper(u),t.HmacMD5=a._createHmacHelper(u)}(Math),n.MD5)}(FO)),FO.exports}var UO,qO={exports:{}};function jO(){return UO||(UO=1,function(e,t){var n;e.exports=(n=bO(),function(){var e=n,t=e.lib,r=t.WordArray,i=t.Hasher,a=e.algo,o=[],s=a.SHA1=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],a=n[2],s=n[3],u=n[4],c=0;c<80;c++){if(c<16)o[c]=0|e[t+c];else{var l=o[c-3]^o[c-8]^o[c-14]^o[c-16];o[c]=l<<1|l>>>31}var d=(r<<5|r>>>27)+u+o[c];d+=c<20?1518500249+(i&a|~i&s):c<40?1859775393+(i^a^s):c<60?(i&a|i&s|a&s)-1894007588:(i^a^s)-899497514,u=s,s=a,a=i<<30|i>>>2,i=r,r=d}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+s|0,n[4]=n[4]+u|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(r+64>>>9<<4)]=Math.floor(n/4294967296),t[15+(r+64>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA1=i._createHelper(s),e.HmacSHA1=i._createHmacHelper(s)}(),n.SHA1)}(qO)),qO.exports}var GO,HO={exports:{}};var zO,VO={exports:{}};function WO(){return zO||(zO=1,function(e,t){var n;e.exports=(n=bO(),RO(),function(){var e=n,t=e.lib.Hasher,r=e.x64,i=r.Word,a=r.WordArray,o=e.algo;function s(){return i.create.apply(i,arguments)}var u=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],c=[];!function(){for(var e=0;e<80;e++)c[e]=s()}();var l=o.SHA512=t.extend({_doReset:function(){this._hash=new a.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],l=n[5],d=n[6],f=n[7],p=r.high,h=r.low,m=i.high,y=i.low,g=a.high,b=a.low,v=o.high,w=o.low,T=s.high,A=s.low,E=l.high,_=l.low,I=d.high,R=d.low,C=f.high,O=f.low,k=p,S=h,N=m,x=y,P=g,M=b,B=v,D=w,F=T,L=A,U=E,q=_,j=I,G=R,H=C,z=O,V=0;V<80;V++){var W=c[V];if(V<16)var K=W.high=0|e[t+2*V],X=W.low=0|e[t+2*V+1];else{var J=c[V-15],Y=J.high,Q=J.low,$=(Y>>>1|Q<<31)^(Y>>>8|Q<<24)^Y>>>7,Z=(Q>>>1|Y<<31)^(Q>>>8|Y<<24)^(Q>>>7|Y<<25),ee=c[V-2],te=ee.high,ne=ee.low,re=(te>>>19|ne<<13)^(te<<3|ne>>>29)^te>>>6,ie=(ne>>>19|te<<13)^(ne<<3|te>>>29)^(ne>>>6|te<<26),ae=c[V-7],oe=ae.high,se=ae.low,ue=c[V-16],ce=ue.high,le=ue.low;K=(K=(K=$+oe+((X=Z+se)>>>0<Z>>>0?1:0))+re+((X+=ie)>>>0<ie>>>0?1:0))+ce+((X+=le)>>>0<le>>>0?1:0),W.high=K,W.low=X}var de,fe=F&U^~F&j,pe=L&q^~L&G,he=k&N^k&P^N&P,me=S&x^S&M^x&M,ye=(k>>>28|S<<4)^(k<<30|S>>>2)^(k<<25|S>>>7),ge=(S>>>28|k<<4)^(S<<30|k>>>2)^(S<<25|k>>>7),be=(F>>>14|L<<18)^(F>>>18|L<<14)^(F<<23|L>>>9),ve=(L>>>14|F<<18)^(L>>>18|F<<14)^(L<<23|F>>>9),we=u[V],Te=we.high,Ae=we.low,Ee=H+be+((de=z+ve)>>>0<z>>>0?1:0),_e=ge+me;H=j,z=G,j=U,G=q,U=F,q=L,F=B+(Ee=(Ee=(Ee=Ee+fe+((de+=pe)>>>0<pe>>>0?1:0))+Te+((de+=Ae)>>>0<Ae>>>0?1:0))+K+((de+=X)>>>0<X>>>0?1:0))+((L=D+de|0)>>>0<D>>>0?1:0)|0,B=P,D=M,P=N,M=x,N=k,x=S,k=Ee+(ye+he+(_e>>>0<ge>>>0?1:0))+((S=de+_e|0)>>>0<de>>>0?1:0)|0}h=r.low=h+S,r.high=p+k+(h>>>0<S>>>0?1:0),y=i.low=y+x,i.high=m+N+(y>>>0<x>>>0?1:0),b=a.low=b+M,a.high=g+P+(b>>>0<M>>>0?1:0),w=o.low=w+D,o.high=v+B+(w>>>0<D>>>0?1:0),A=s.low=A+L,s.high=T+F+(A>>>0<L>>>0?1:0),_=l.low=_+q,l.high=E+U+(_>>>0<q>>>0?1:0),R=d.low=R+G,d.high=I+j+(R>>>0<G>>>0?1:0),O=f.low=O+z,f.high=C+H+(O>>>0<z>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[30+(r+128>>>10<<5)]=Math.floor(n/4294967296),t[31+(r+128>>>10<<5)]=n,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=t._createHelper(l),e.HmacSHA512=t._createHmacHelper(l)}(),n.SHA512)}(VO)),VO.exports}var KO,XO={exports:{}};var JO,YO={exports:{}};function QO(){return JO||(JO=1,function(e,t){var n;e.exports=(n=bO(),RO(),function(e){var t=n,r=t.lib,i=r.WordArray,a=r.Hasher,o=t.x64.Word,s=t.algo,u=[],c=[],l=[];!function(){for(var e=1,t=0,n=0;n<24;n++){u[e+5*t]=(n+1)*(n+2)/2%64;var r=(2*e+3*t)%5;e=t%5,t=r}for(e=0;e<5;e++)for(t=0;t<5;t++)c[e+5*t]=t+(2*e+3*t)%5*5;for(var i=1,a=0;a<24;a++){for(var s=0,d=0,f=0;f<7;f++){if(1&i){var p=(1<<f)-1;p<32?d^=1<<p:s^=1<<p-32}128&i?i=i<<1^113:i<<=1}l[a]=o.create(s,d)}}();var d=[];!function(){for(var e=0;e<25;e++)d[e]=o.create()}();var f=s.SHA3=a.extend({cfg:a.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],t=0;t<25;t++)e[t]=new o.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,t){for(var n=this._state,r=this.blockSize/2,i=0;i<r;i++){var a=e[t+2*i],o=e[t+2*i+1];a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),(O=n[i]).high^=o,O.low^=a}for(var s=0;s<24;s++){for(var f=0;f<5;f++){for(var p=0,h=0,m=0;m<5;m++)p^=(O=n[f+5*m]).high,h^=O.low;var y=d[f];y.high=p,y.low=h}for(f=0;f<5;f++){var g=d[(f+4)%5],b=d[(f+1)%5],v=b.high,w=b.low;for(p=g.high^(v<<1|w>>>31),h=g.low^(w<<1|v>>>31),m=0;m<5;m++)(O=n[f+5*m]).high^=p,O.low^=h}for(var T=1;T<25;T++){var A=(O=n[T]).high,E=O.low,_=u[T];_<32?(p=A<<_|E>>>32-_,h=E<<_|A>>>32-_):(p=E<<_-32|A>>>64-_,h=A<<_-32|E>>>64-_);var I=d[c[T]];I.high=p,I.low=h}var R=d[0],C=n[0];for(R.high=C.high,R.low=C.low,f=0;f<5;f++)for(m=0;m<5;m++){var O=n[T=f+5*m],k=d[T],S=d[(f+1)%5+5*m],N=d[(f+2)%5+5*m];O.high=k.high^~S.high&N.high,O.low=k.low^~S.low&N.low}O=n[0];var x=l[s];O.high^=x.high,O.low^=x.low}},_doFinalize:function(){var t=this._data,n=t.words;this._nDataBytes;var r=8*t.sigBytes,a=32*this.blockSize;n[r>>>5]|=1<<24-r%32,n[(e.ceil((r+1)/a)*a>>>5)-1]|=128,t.sigBytes=4*n.length,this._process();for(var o=this._state,s=this.cfg.outputLength/8,u=s/8,c=[],l=0;l<u;l++){var d=o[l],f=d.high,p=d.low;f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8),p=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8),c.push(p),c.push(f)}return new i.init(c,s)},clone:function(){for(var e=a.clone.call(this),t=e._state=this._state.slice(0),n=0;n<25;n++)t[n]=t[n].clone();return e}});t.SHA3=a._createHelper(f),t.HmacSHA3=a._createHmacHelper(f)}(Math),n.SHA3)}(YO)),YO.exports}var $O,ZO={exports:{}};var ek,tk={exports:{}};function nk(){return ek||(ek=1,function(e,t){var n;e.exports=(n=bO(),void function(){var e=n,t=e.lib.Base,r=e.enc.Utf8;e.algo.HMAC=t.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=r.parse(t));var n=e.blockSize,i=4*n;t.sigBytes>i&&(t=e.finalize(t)),t.clamp();for(var a=this._oKey=t.clone(),o=this._iKey=t.clone(),s=a.words,u=o.words,c=0;c<n;c++)s[c]^=1549556828,u[c]^=909522486;a.sigBytes=o.sigBytes=i,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,n=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(n))}})}())}(tk)),tk.exports}var rk,ik={exports:{}};var ak,ok={exports:{}};function sk(){return ak||(ak=1,function(e,t){var n;e.exports=(n=bO(),jO(),nk(),function(){var e=n,t=e.lib,r=t.Base,i=t.WordArray,a=e.algo,o=a.MD5,s=a.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:o,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=this.cfg,r=n.hasher.create(),a=i.create(),o=a.words,s=n.keySize,u=n.iterations;o.length<s;){c&&r.update(c);var c=r.update(e).finalize(t);r.reset();for(var l=1;l<u;l++)c=r.finalize(c),r.reset();a.concat(c)}return a.sigBytes=4*s,a}});e.EvpKDF=function(e,t,n){return s.create(n).compute(e,t)}}(),n.EvpKDF)}(ok)),ok.exports}var uk,ck={exports:{}};function lk(){return uk||(uk=1,function(e,t){var n;e.exports=(n=bO(),sk(),void(n.lib.Cipher||function(e){var t=n,r=t.lib,i=r.Base,a=r.WordArray,o=r.BufferedBlockAlgorithm,s=t.enc;s.Utf8;var u=s.Base64,c=t.algo.EvpKDF,l=r.Cipher=o.extend({cfg:i.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?v:g}return function(t){return{encrypt:function(n,r,i){return e(r).encrypt(t,n,r,i)},decrypt:function(n,r,i){return e(r).decrypt(t,n,r,i)}}}}()});r.StreamCipher=l.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var d=t.mode={},f=r.BlockCipherMode=i.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),p=d.CBC=function(){var t=f.extend();function n(t,n,r){var i=this._iv;if(i){var a=i;this._iv=e}else a=this._prevBlock;for(var o=0;o<r;o++)t[n+o]^=a[o]}return t.Encryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize;n.call(this,e,t,i),r.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),t.Decryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,a=e.slice(t,t+i);r.decryptBlock(e,t),n.call(this,e,t,i),this._prevBlock=a}}),t}(),h=(t.pad={}).Pkcs7={pad:function(e,t){for(var n=4*t,r=n-e.sigBytes%n,i=r<<24|r<<16|r<<8|r,o=[],s=0;s<r;s+=4)o.push(i);var u=a.create(o,r);e.concat(u)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}};r.BlockCipher=l.extend({cfg:l.cfg.extend({mode:p,padding:h}),reset:function(){l.reset.call(this);var e=this.cfg,t=e.iv,n=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var r=n.createEncryptor;else r=n.createDecryptor,this._minBufferSize=1;this._mode&&this._mode.__creator==r?this._mode.init(this,t&&t.words):(this._mode=r.call(n,this,t&&t.words),this._mode.__creator=r)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var m=r.CipherParams=i.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),y=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,n=e.salt;if(n)var r=a.create([1398893684,1701076831]).concat(n).concat(t);else r=t;return r.toString(u)},parse:function(e){var t=u.parse(e),n=t.words;if(1398893684==n[0]&&1701076831==n[1]){var r=a.create(n.slice(2,4));n.splice(0,4),t.sigBytes-=16}return m.create({ciphertext:t,salt:r})}},g=r.SerializableCipher=i.extend({cfg:i.extend({format:y}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r),a=i.finalize(t),o=i.cfg;return m.create({ciphertext:a,key:n,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),b=(t.kdf={}).OpenSSL={execute:function(e,t,n,r){r||(r=a.random(8));var i=c.create({keySize:t+n}).compute(e,r),o=a.create(i.words.slice(t),4*n);return i.sigBytes=4*t,m.create({key:i,iv:o,salt:r})}},v=r.PasswordBasedCipher=g.extend({cfg:g.cfg.extend({kdf:b}),encrypt:function(e,t,n,r){var i=(r=this.cfg.extend(r)).kdf.execute(n,e.keySize,e.ivSize);r.iv=i.iv;var a=g.encrypt.call(this,e,t,i.key,r);return a.mixIn(i),a},decrypt:function(e,t,n,r){r=this.cfg.extend(r),t=this._parse(t,r.format);var i=r.kdf.execute(n,e.keySize,e.ivSize,t.salt);return r.iv=i.iv,g.decrypt.call(this,e,t,i.key,r)}})}()))}(ck)),ck.exports}var dk,fk={exports:{}};function pk(){return dk||(dk=1,function(e,t){var n;e.exports=(n=bO(),lk(),n.mode.CFB=function(){var e=n.lib.BlockCipherMode.extend();function t(e,t,n,r){var i=this._iv;if(i){var a=i.slice(0);this._iv=void 0}else a=this._prevBlock;r.encryptBlock(a,0);for(var o=0;o<n;o++)e[t+o]^=a[o]}return e.Encryptor=e.extend({processBlock:function(e,n){var r=this._cipher,i=r.blockSize;t.call(this,e,n,i,r),this._prevBlock=e.slice(n,n+i)}}),e.Decryptor=e.extend({processBlock:function(e,n){var r=this._cipher,i=r.blockSize,a=e.slice(n,n+i);t.call(this,e,n,i,r),this._prevBlock=a}}),e}(),n.mode.CFB)}(fk)),fk.exports}var hk,mk={exports:{}};function yk(){return hk||(hk=1,function(e,t){var n,r,i;e.exports=(i=bO(),lk(),i.mode.CTR=(n=i.lib.BlockCipherMode.extend(),r=n.Encryptor=n.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize,i=this._iv,a=this._counter;i&&(a=this._counter=i.slice(0),this._iv=void 0);var o=a.slice(0);n.encryptBlock(o,0),a[r-1]=a[r-1]+1|0;for(var s=0;s<r;s++)e[t+s]^=o[s]}}),n.Decryptor=r,n),i.mode.CTR)}(mk)),mk.exports}var gk,bk={exports:{}};function vk(){return gk||(gk=1,function(e,t){var n;e.exports=(n=bO(),lk(),
|
|
19
|
-
/** @preserve
|
|
20
|
-
* Counter block mode compatible with Dr Brian Gladman fileenc.c
|
|
21
|
-
* derived from CryptoJS.mode.CTR
|
|
22
|
-
* Jan Hruby jhruby.web@gmail.com
|
|
23
|
-
*/
|
|
24
|
-
n.mode.CTRGladman=function(){var e=n.lib.BlockCipherMode.extend();function t(e){if(255==(e>>24&255)){var t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}function r(e){return 0===(e[0]=t(e[0]))&&(e[1]=t(e[1])),e}var i=e.Encryptor=e.extend({processBlock:function(e,t){var n=this._cipher,i=n.blockSize,a=this._iv,o=this._counter;a&&(o=this._counter=a.slice(0),this._iv=void 0),r(o);var s=o.slice(0);n.encryptBlock(s,0);for(var u=0;u<i;u++)e[t+u]^=s[u]}});return e.Decryptor=i,e}(),n.mode.CTRGladman)}(bk)),bk.exports}var wk,Tk={exports:{}};function Ak(){return wk||(wk=1,function(e,t){var n,r,i;e.exports=(i=bO(),lk(),i.mode.OFB=(n=i.lib.BlockCipherMode.extend(),r=n.Encryptor=n.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize,i=this._iv,a=this._keystream;i&&(a=this._keystream=i.slice(0),this._iv=void 0),n.encryptBlock(a,0);for(var o=0;o<r;o++)e[t+o]^=a[o]}}),n.Decryptor=r,n),i.mode.OFB)}(Tk)),Tk.exports}var Ek,_k={exports:{}};var Ik,Rk={exports:{}};var Ck,Ok={exports:{}};var kk,Sk={exports:{}};var Nk,xk={exports:{}};var Pk,Mk={exports:{}};var Bk,Dk={exports:{}};var Fk,Lk={exports:{}};var Uk,qk={exports:{}};var jk,Gk={exports:{}};var Hk,zk={exports:{}};var Vk,Wk={exports:{}};!function(e,t){var n;e.exports=(n=bO(),RO(),kO(),xO(),BO(),LO(),jO(),GO||(GO=1,function(e,t){var n;e.exports=(n=bO(),function(){var e=n,t=e.lib.WordArray,r=e.algo,i=r.SHA256,a=r.SHA224=i.extend({_doReset:function(){this._hash=new t.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=i._doFinalize.call(this);return e.sigBytes-=4,e}});e.SHA224=i._createHelper(a),e.HmacSHA224=i._createHmacHelper(a)}(),n.SHA224)}(HO)),WO(),KO||(KO=1,function(e,t){var n;e.exports=(n=bO(),RO(),WO(),function(){var e=n,t=e.x64,r=t.Word,i=t.WordArray,a=e.algo,o=a.SHA512,s=a.SHA384=o.extend({_doReset:function(){this._hash=new i.init([new r.init(3418070365,3238371032),new r.init(1654270250,914150663),new r.init(2438529370,812702999),new r.init(355462360,4144912697),new r.init(1731405415,4290775857),new r.init(2394180231,1750603025),new r.init(3675008525,1694076839),new r.init(1203062813,3204075428)])},_doFinalize:function(){var e=o._doFinalize.call(this);return e.sigBytes-=16,e}});e.SHA384=o._createHelper(s),e.HmacSHA384=o._createHmacHelper(s)}(),n.SHA384)}(XO)),QO(),$O||($O=1,function(e,t){var n;e.exports=(n=bO(),
|
|
25
|
-
/** @preserve
|
|
26
|
-
(c) 2012 by Cédric Mesnil. All rights reserved.
|
|
27
|
-
|
|
28
|
-
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
29
|
-
|
|
30
|
-
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
31
|
-
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
32
|
-
|
|
33
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
34
|
-
*/
|
|
35
|
-
function(e){var t=n,r=t.lib,i=r.WordArray,a=r.Hasher,o=t.algo,s=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),u=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),c=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),l=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),d=i.create([0,1518500249,1859775393,2400959708,2840853838]),f=i.create([1352829926,1548603684,1836072691,2053994217,0]),p=o.RIPEMD160=a.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=t+n,i=e[r];e[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var a,o,p,w,T,A,E,_,I,R,C,O=this._hash.words,k=d.words,S=f.words,N=s.words,x=u.words,P=c.words,M=l.words;for(A=a=O[0],E=o=O[1],_=p=O[2],I=w=O[3],R=T=O[4],n=0;n<80;n+=1)C=a+e[t+N[n]]|0,C+=n<16?h(o,p,w)+k[0]:n<32?m(o,p,w)+k[1]:n<48?y(o,p,w)+k[2]:n<64?g(o,p,w)+k[3]:b(o,p,w)+k[4],C=(C=v(C|=0,P[n]))+T|0,a=T,T=w,w=v(p,10),p=o,o=C,C=A+e[t+x[n]]|0,C+=n<16?b(E,_,I)+S[0]:n<32?g(E,_,I)+S[1]:n<48?y(E,_,I)+S[2]:n<64?m(E,_,I)+S[3]:h(E,_,I)+S[4],C=(C=v(C|=0,M[n]))+R|0,A=R,R=I,I=v(_,10),_=E,E=C;C=O[1]+p+I|0,O[1]=O[2]+w+R|0,O[2]=O[3]+T+A|0,O[3]=O[4]+a+E|0,O[4]=O[0]+o+_|0,O[0]=C},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;t[r>>>5]|=128<<24-r%32,t[14+(r+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e.sigBytes=4*(t.length+1),this._process();for(var i=this._hash,a=i.words,o=0;o<5;o++){var s=a[o];a[o]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return i},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}});function h(e,t,n){return e^t^n}function m(e,t,n){return e&t|~e&n}function y(e,t,n){return(e|~t)^n}function g(e,t,n){return e&n|t&~n}function b(e,t,n){return e^(t|~n)}function v(e,t){return e<<t|e>>>32-t}t.RIPEMD160=a._createHelper(p),t.HmacRIPEMD160=a._createHmacHelper(p)}(),n.RIPEMD160)}(ZO)),nk(),rk||(rk=1,function(e,t){var n;e.exports=(n=bO(),jO(),nk(),function(){var e=n,t=e.lib,r=t.Base,i=t.WordArray,a=e.algo,o=a.SHA1,s=a.HMAC,u=a.PBKDF2=r.extend({cfg:r.extend({keySize:4,hasher:o,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=this.cfg,r=s.create(n.hasher,e),a=i.create(),o=i.create([1]),u=a.words,c=o.words,l=n.keySize,d=n.iterations;u.length<l;){var f=r.update(t).finalize(o);r.reset();for(var p=f.words,h=p.length,m=f,y=1;y<d;y++){m=r.finalize(m),r.reset();for(var g=m.words,b=0;b<h;b++)p[b]^=g[b]}a.concat(f),c[0]++}return a.sigBytes=4*l,a}});e.PBKDF2=function(e,t,n){return u.create(n).compute(e,t)}}(),n.PBKDF2)}(ik)),sk(),lk(),pk(),yk(),vk(),Ak(),Ek||(Ek=1,function(e,t){var n,r;e.exports=(r=bO(),lk(),r.mode.ECB=((n=r.lib.BlockCipherMode.extend()).Encryptor=n.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),n.Decryptor=n.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),n),r.mode.ECB)}(_k)),Ik||(Ik=1,function(e,t){var n;e.exports=(n=bO(),lk(),n.pad.AnsiX923={pad:function(e,t){var n=e.sigBytes,r=4*t,i=r-n%r,a=n+i-1;e.clamp(),e.words[a>>>2]|=i<<24-a%4*8,e.sigBytes+=i},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Ansix923)}(Rk)),Ck||(Ck=1,function(e,t){var n;e.exports=(n=bO(),lk(),n.pad.Iso10126={pad:function(e,t){var r=4*t,i=r-e.sigBytes%r;e.concat(n.lib.WordArray.random(i-1)).concat(n.lib.WordArray.create([i<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Iso10126)}(Ok)),kk||(kk=1,function(e,t){var n;e.exports=(n=bO(),lk(),n.pad.Iso97971={pad:function(e,t){e.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(e,t)},unpad:function(e){n.pad.ZeroPadding.unpad(e),e.sigBytes--}},n.pad.Iso97971)}(Sk)),Nk||(Nk=1,function(e,t){var n;e.exports=(n=bO(),lk(),n.pad.ZeroPadding={pad:function(e,t){var n=4*t;e.clamp(),e.sigBytes+=n-(e.sigBytes%n||n)},unpad:function(e){for(var t=e.words,n=e.sigBytes-1;!(t[n>>>2]>>>24-n%4*8&255);)n--;e.sigBytes=n+1}},n.pad.ZeroPadding)}(xk)),Pk||(Pk=1,function(e,t){var n;e.exports=(n=bO(),lk(),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)}(Mk)),Bk||(Bk=1,function(e,t){var n,r,i,a;e.exports=(a=bO(),lk(),r=(n=a).lib.CipherParams,i=n.enc.Hex,n.format.Hex={stringify:function(e){return e.ciphertext.toString(i)},parse:function(e){var t=i.parse(e);return r.create({ciphertext:t})}},a.format.Hex)}(Dk)),Fk||(Fk=1,function(e,t){var n;e.exports=(n=bO(),BO(),LO(),sk(),lk(),function(){var e=n,t=e.lib.BlockCipher,r=e.algo,i=[],a=[],o=[],s=[],u=[],c=[],l=[],d=[],f=[],p=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var n=0,r=0;for(t=0;t<256;t++){var h=r^r<<1^r<<2^r<<3^r<<4;h=h>>>8^255&h^99,i[n]=h,a[h]=n;var m=e[n],y=e[m],g=e[y],b=257*e[h]^16843008*h;o[n]=b<<24|b>>>8,s[n]=b<<16|b>>>16,u[n]=b<<8|b>>>24,c[n]=b,b=16843009*g^65537*y^257*m^16843008*n,l[h]=b<<24|b>>>8,d[h]=b<<16|b>>>16,f[h]=b<<8|b>>>24,p[h]=b,n?(n=m^e[e[e[g^m]]],r^=e[e[r]]):n=r=1}}();var h=[0,1,2,4,8,16,32,64,128,27,54],m=r.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,n=e.sigBytes/4,r=4*((this._nRounds=n+6)+1),a=this._keySchedule=[],o=0;o<r;o++)if(o<n)a[o]=t[o];else{var s=a[o-1];o%n?n>6&&o%n==4&&(s=i[s>>>24]<<24|i[s>>>16&255]<<16|i[s>>>8&255]<<8|i[255&s]):(s=i[(s=s<<8|s>>>24)>>>24]<<24|i[s>>>16&255]<<16|i[s>>>8&255]<<8|i[255&s],s^=h[o/n|0]<<24),a[o]=a[o-n]^s}for(var u=this._invKeySchedule=[],c=0;c<r;c++)o=r-c,s=c%4?a[o]:a[o-4],u[c]=c<4||o<=4?s:l[i[s>>>24]]^d[i[s>>>16&255]]^f[i[s>>>8&255]]^p[i[255&s]]}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,s,u,c,i)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,l,d,f,p,a),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,a,o,s){for(var u=this._nRounds,c=e[t]^n[0],l=e[t+1]^n[1],d=e[t+2]^n[2],f=e[t+3]^n[3],p=4,h=1;h<u;h++){var m=r[c>>>24]^i[l>>>16&255]^a[d>>>8&255]^o[255&f]^n[p++],y=r[l>>>24]^i[d>>>16&255]^a[f>>>8&255]^o[255&c]^n[p++],g=r[d>>>24]^i[f>>>16&255]^a[c>>>8&255]^o[255&l]^n[p++],b=r[f>>>24]^i[c>>>16&255]^a[l>>>8&255]^o[255&d]^n[p++];c=m,l=y,d=g,f=b}m=(s[c>>>24]<<24|s[l>>>16&255]<<16|s[d>>>8&255]<<8|s[255&f])^n[p++],y=(s[l>>>24]<<24|s[d>>>16&255]<<16|s[f>>>8&255]<<8|s[255&c])^n[p++],g=(s[d>>>24]<<24|s[f>>>16&255]<<16|s[c>>>8&255]<<8|s[255&l])^n[p++],b=(s[f>>>24]<<24|s[c>>>16&255]<<16|s[l>>>8&255]<<8|s[255&d])^n[p++],e[t]=m,e[t+1]=y,e[t+2]=g,e[t+3]=b},keySize:8});e.AES=t._createHelper(m)}(),n.AES)}(Lk)),Uk||(Uk=1,function(e,t){var n;e.exports=(n=bO(),BO(),LO(),sk(),lk(),function(){var e=n,t=e.lib,r=t.WordArray,i=t.BlockCipher,a=e.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],u=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],c=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],l=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],d=a.DES=i.extend({_doReset:function(){for(var e=this._key.words,t=[],n=0;n<56;n++){var r=o[n]-1;t[n]=e[r>>>5]>>>31-r%32&1}for(var i=this._subKeys=[],a=0;a<16;a++){var c=i[a]=[],l=u[a];for(n=0;n<24;n++)c[n/6|0]|=t[(s[n]-1+l)%28]<<31-n%6,c[4+(n/6|0)]|=t[28+(s[n+24]-1+l)%28]<<31-n%6;for(c[0]=c[0]<<1|c[0]>>>31,n=1;n<7;n++)c[n]=c[n]>>>4*(n-1)+3;c[7]=c[7]<<5|c[7]>>>27}var d=this._invSubKeys=[];for(n=0;n<16;n++)d[n]=i[15-n]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,n){this._lBlock=e[t],this._rBlock=e[t+1],f.call(this,4,252645135),f.call(this,16,65535),p.call(this,2,858993459),p.call(this,8,16711935),f.call(this,1,1431655765);for(var r=0;r<16;r++){for(var i=n[r],a=this._lBlock,o=this._rBlock,s=0,u=0;u<8;u++)s|=c[u][((o^i[u])&l[u])>>>0];this._lBlock=o,this._rBlock=a^s}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,f.call(this,1,1431655765),p.call(this,8,16711935),p.call(this,2,858993459),f.call(this,16,65535),f.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function f(e,t){var n=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=n,this._lBlock^=n<<e}function p(e,t){var n=(this._rBlock>>>e^this._lBlock)&t;this._lBlock^=n,this._rBlock^=n<<e}e.DES=i._createHelper(d);var h=a.TripleDES=i.extend({_doReset:function(){var e=this._key.words;this._des1=d.createEncryptor(r.create(e.slice(0,2))),this._des2=d.createEncryptor(r.create(e.slice(2,4))),this._des3=d.createEncryptor(r.create(e.slice(4,6)))},encryptBlock:function(e,t){this._des1.encryptBlock(e,t),this._des2.decryptBlock(e,t),this._des3.encryptBlock(e,t)},decryptBlock:function(e,t){this._des3.decryptBlock(e,t),this._des2.encryptBlock(e,t),this._des1.decryptBlock(e,t)},keySize:6,ivSize:2,blockSize:2});e.TripleDES=i._createHelper(h)}(),n.TripleDES)}(qk)),jk||(jk=1,function(e,t){var n;e.exports=(n=bO(),BO(),LO(),sk(),lk(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=r.RC4=t.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes,r=this._S=[],i=0;i<256;i++)r[i]=i;i=0;for(var a=0;i<256;i++){var o=i%n,s=t[o>>>2]>>>24-o%4*8&255;a=(a+r[i]+s)%256;var u=r[i];r[i]=r[a],r[a]=u}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=a.call(this)},keySize:8,ivSize:0});function a(){for(var e=this._S,t=this._i,n=this._j,r=0,i=0;i<4;i++){n=(n+e[t=(t+1)%256])%256;var a=e[t];e[t]=e[n],e[n]=a,r|=e[(e[t]+e[n])%256]<<24-8*i}return this._i=t,this._j=n,r}e.RC4=t._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)a.call(this)}});e.RC4Drop=t._createHelper(o)}(),n.RC4)}(Gk)),Hk||(Hk=1,function(e,t){var n;e.exports=(n=bO(),BO(),LO(),sk(),lk(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],a=[],o=[],s=r.Rabbit=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,n=0;n<4;n++)e[n]=16711935&(e[n]<<8|e[n]>>>24)|4278255360&(e[n]<<24|e[n]>>>8);var r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],i=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,n=0;n<4;n++)u.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(t){var a=t.words,o=a[0],s=a[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=c>>>16|4294901760&l,f=l<<16|65535&c;for(i[0]^=c,i[1]^=d,i[2]^=l,i[3]^=f,i[4]^=c,i[5]^=d,i[6]^=l,i[7]^=f,n=0;n<4;n++)u.call(this)}},_doProcessBlock:function(e,t){var n=this._X;u.call(this),i[0]=n[0]^n[5]>>>16^n[3]<<16,i[1]=n[2]^n[7]>>>16^n[5]<<16,i[2]=n[4]^n[1]>>>16^n[7]<<16,i[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)i[r]=16711935&(i[r]<<8|i[r]>>>24)|4278255360&(i[r]<<24|i[r]>>>8),e[t+r]^=i[r]},blockSize:4,ivSize:2});function u(){for(var e=this._X,t=this._C,n=0;n<8;n++)a[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<a[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<a[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<a[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<a[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<a[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<a[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<a[6]>>>0?1:0)|0,this._b=t[7]>>>0<a[7]>>>0?1:0,n=0;n<8;n++){var r=e[n]+t[n],i=65535&r,s=r>>>16,u=((i*i>>>17)+i*s>>>15)+s*s,c=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=u^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.Rabbit=t._createHelper(s)}(),n.Rabbit)}(zk)),Vk||(Vk=1,function(e,t){var n;e.exports=(n=bO(),BO(),LO(),sk(),lk(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],a=[],o=[],s=r.RabbitLegacy=t.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],r=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var i=0;i<4;i++)u.call(this);for(i=0;i<8;i++)r[i]^=n[i+4&7];if(t){var a=t.words,o=a[0],s=a[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=c>>>16|4294901760&l,f=l<<16|65535&c;for(r[0]^=c,r[1]^=d,r[2]^=l,r[3]^=f,r[4]^=c,r[5]^=d,r[6]^=l,r[7]^=f,i=0;i<4;i++)u.call(this)}},_doProcessBlock:function(e,t){var n=this._X;u.call(this),i[0]=n[0]^n[5]>>>16^n[3]<<16,i[1]=n[2]^n[7]>>>16^n[5]<<16,i[2]=n[4]^n[1]>>>16^n[7]<<16,i[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)i[r]=16711935&(i[r]<<8|i[r]>>>24)|4278255360&(i[r]<<24|i[r]>>>8),e[t+r]^=i[r]},blockSize:4,ivSize:2});function u(){for(var e=this._X,t=this._C,n=0;n<8;n++)a[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<a[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<a[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<a[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<a[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<a[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<a[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<a[6]>>>0?1:0)|0,this._b=t[7]>>>0<a[7]>>>0?1:0,n=0;n<8;n++){var r=e[n]+t[n],i=65535&r,s=r>>>16,u=((i*i>>>17)+i*s>>>15)+s*s,c=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=u^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.RabbitLegacy=t._createHelper(s)}(),n.RabbitLegacy)}(Wk)),n)}(_O);var Kk=_O.exports,Xk=ct&&ct.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(EO,"__esModule",{value:!0}),EO.Base=void 0;const Jk=hn,Yk=Xk(Kk);class Qk{print(){Qk.print(this)}bufferIndexOf(e,t,n=!1){if(n)return this.binarySearch(e,t,Jk.Buffer.compare);return this.linearSearch(e,t,((e,t)=>e.equals(t)))}static binarySearch(e,t,n){let r=0,i=e.length-1;for(;r<=i;){const a=Math.floor((r+i)/2),o=n(e[a],t);if(0===o){for(let r=a-1;r>=0;r--)if(0!==n(e[r],t))return r+1;return 0}o<0?r=a+1:i=a-1}return-1}binarySearch(e,t,n){return Qk.binarySearch(e,t,n)}static linearSearch(e,t,n){for(let r=0;r<e.length;r++)if(n(e[r],t))return r;return-1}linearSearch(e,t,n){return Qk.linearSearch(e,t,n)}static bufferify(e){if(!Jk.Buffer.isBuffer(e)){if("object"==typeof e&&e.words)return Jk.Buffer.from(e.toString(Yk.default.enc.Hex),"hex");if(Qk.isHexString(e))return Jk.Buffer.from(e.replace(/^0x/,""),"hex");if("string"==typeof e)return Jk.Buffer.from(e);if("bigint"==typeof e)return Jk.Buffer.from(e.toString(16),"hex");if(e instanceof Uint8Array)return Jk.Buffer.from(e.buffer);if("number"==typeof e){let t=e.toString();return t.length%2&&(t=`0${t}`),Jk.Buffer.from(t,"hex")}if(ArrayBuffer.isView(e))return Jk.Buffer.from(e.buffer,e.byteOffset,e.byteLength)}return e}bigNumberify(e){return Qk.bigNumberify(e)}static bigNumberify(e){if("bigint"==typeof e)return e;if("string"==typeof e)return e.startsWith("0x")&&Qk.isHexString(e)?BigInt("0x"+e.replace("0x","").toString()):BigInt(e);if(Jk.Buffer.isBuffer(e))return BigInt("0x"+e.toString("hex"));if(e instanceof Uint8Array)return BigInt(e);if("number"==typeof e)return BigInt(e);throw new Error("cannot bigNumberify")}static isHexString(e){return"string"==typeof e&&/^(0x)?[0-9A-Fa-f]*$/.test(e)}static print(e){console.log(e.toString())}bufferToHex(e,t=!0){return Qk.bufferToHex(e,t)}static bufferToHex(e,t=!0){return`${t?"0x":""}${(e||Jk.Buffer.alloc(0)).toString("hex")}`}bufferify(e){return Qk.bufferify(e)}bufferifyFn(e){return t=>{const n=e(t);return Jk.Buffer.isBuffer(n)?n:this.isHexString(n)?Jk.Buffer.from(n.replace("0x",""),"hex"):"string"==typeof n?Jk.Buffer.from(n):"bigint"==typeof n?Jk.Buffer.from(t.toString(16),"hex"):ArrayBuffer.isView(n)?Jk.Buffer.from(n.buffer,n.byteOffset,n.byteLength):Jk.Buffer.from(e(Yk.default.enc.Hex.parse(t.toString("hex"))).toString(Yk.default.enc.Hex),"hex")}}isHexString(e){return Qk.isHexString(e)}log2(e){return 1===e?0:1+this.log2(e/2|0)}zip(e,t){return e.map(((e,n)=>[e,t[n]]))}static hexZeroPad(e,t){return"0x"+e.replace("0x","").padStart(t,"0")}}EO.Base=Qk,EO.default=Qk;var $k=ct&&ct.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(mO,"__esModule",{value:!0}),mO.MerkleTree=void 0;const Zk=hn,eS=$k((function(e){for(var t=new Buffer(e.length),n=0,r=e.length-1;n<=r;++n,--r)t[n]=e[r],t[r]=e[n];return t})),tS=$k(vO),nS=$k(AO),rS=$k(EO);let iS=class e extends rS.default{constructor(e,t=tS.default,n={}){if(super(),this.duplicateOdd=!1,this.concatenator=Zk.Buffer.concat,this.hashLeaves=!1,this.isBitcoinTree=!1,this.leaves=[],this.layers=[],this.sortLeaves=!1,this.sortPairs=!1,this.sort=!1,this.fillDefaultHash=null,this.complete=!1,n.complete){if(n.isBitcoinTree)throw new Error('option "complete" is incompatible with "isBitcoinTree"');if(n.duplicateOdd)throw new Error('option "complete" is incompatible with "duplicateOdd"')}if(this.isBitcoinTree=!!n.isBitcoinTree,this.hashLeaves=!!n.hashLeaves,this.sortLeaves=!!n.sortLeaves,this.sortPairs=!!n.sortPairs,this.complete=!!n.complete,n.fillDefaultHash)if("function"==typeof n.fillDefaultHash)this.fillDefaultHash=n.fillDefaultHash;else{if(!Zk.Buffer.isBuffer(n.fillDefaultHash)&&"string"!=typeof n.fillDefaultHash)throw new Error('method "fillDefaultHash" must be a function, Buffer, or string');this.fillDefaultHash=(e,t)=>n.fillDefaultHash}this.sort=!!n.sort,this.sort&&(this.sortLeaves=!0,this.sortPairs=!0),this.duplicateOdd=!!n.duplicateOdd,n.concatenator&&(this.concatenator=n.concatenator),this.hashFn=this.bufferifyFn(t),this.processLeaves(e)}getOptions(){var e,t;return{complete:this.complete,isBitcoinTree:this.isBitcoinTree,hashLeaves:this.hashLeaves,sortLeaves:this.sortLeaves,sortPairs:this.sortPairs,sort:this.sort,fillDefaultHash:null!==(t=null===(e=this.fillDefaultHash)||void 0===e?void 0:e.toString())&&void 0!==t?t:null,duplicateOdd:this.duplicateOdd}}processLeaves(e){if(this.hashLeaves&&(e=e.map(this.hashFn)),this.leaves=e.map(this.bufferify),this.sortLeaves&&(this.leaves=this.leaves.sort(Zk.Buffer.compare)),this.fillDefaultHash)for(let e=this.leaves.length;e<Math.pow(2,Math.ceil(Math.log2(this.leaves.length)));e++)this.leaves.push(this.bufferify(this.fillDefaultHash(e,this.hashFn)));this.createHashes(this.leaves)}createHashes(e){for(this.layers=[e];e.length>1;){const t=this.layers.length;this.layers.push([]);const n=this.complete&&1===t&&!Number.isInteger(Math.log2(e.length))?2*e.length-Math.pow(2,Math.ceil(Math.log2(e.length))):e.length;for(let r=0;r<e.length;r+=2){if(r>=n){this.layers[t].push(...e.slice(n));break}if(r+1===e.length&&e.length%2==1){const n=e[e.length-1];let i=n;if(this.isBitcoinTree){i=this.hashFn(this.concatenator([eS.default(n),eS.default(n)])),i=eS.default(this.hashFn(i)),this.layers[t].push(i);continue}if(!this.duplicateOdd){this.layers[t].push(e[r]);continue}}const i=e[r],a=r+1===e.length?i:e[r+1];let o=null;o=this.isBitcoinTree?[eS.default(i),eS.default(a)]:[i,a],this.sortPairs&&o.sort(Zk.Buffer.compare);let s=this.hashFn(this.concatenator(o));this.isBitcoinTree&&(s=eS.default(this.hashFn(s))),this.layers[t].push(s)}e=this.layers[t]}}addLeaf(e,t=!1){t&&(e=this.hashFn(e)),this.processLeaves(this.leaves.concat(e))}addLeaves(e,t=!1){t&&(e=e.map(this.hashFn)),this.processLeaves(this.leaves.concat(e))}getLeaves(e){return Array.isArray(e)?(this.hashLeaves&&(e=e.map(this.hashFn),this.sortLeaves&&(e=e.sort(Zk.Buffer.compare))),this.leaves.filter((t=>-1!==this.bufferIndexOf(e,t,this.sortLeaves)))):this.leaves}getLeaf(e){return e<0||e>this.leaves.length-1?Zk.Buffer.from([]):this.leaves[e]}getLeafIndex(e){e=this.bufferify(e);const t=this.getLeaves();for(let n=0;n<t.length;n++){if(t[n].equals(e))return n}return-1}getLeafCount(){return this.leaves.length}getHexLeaves(){return this.leaves.map((e=>this.bufferToHex(e)))}static marshalLeaves(t){return JSON.stringify(t.map((t=>e.bufferToHex(t))),null,2)}static unmarshalLeaves(t){let n=null;if("string"==typeof t)n=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");n=t}if(!n)return[];if(!Array.isArray(n))throw new Error("Expected JSON string to be array");return n.map(e.bufferify)}getLayers(){return this.layers}getHexLayers(){return this.layers.reduce(((e,t)=>(Array.isArray(t)?e.push(t.map((e=>this.bufferToHex(e)))):e.push(t),e)),[])}getLayersFlat(){const e=this.layers.reduce(((e,t)=>(Array.isArray(t)?e.unshift(...t):e.unshift(t),e)),[]);return e.unshift(Zk.Buffer.from([0])),e}getHexLayersFlat(){return this.getLayersFlat().map((e=>this.bufferToHex(e)))}getLayerCount(){return this.getLayers().length}getRoot(){return 0===this.layers.length?Zk.Buffer.from([]):this.layers[this.layers.length-1][0]||Zk.Buffer.from([])}getHexRoot(){return this.bufferToHex(this.getRoot())}getProof(e,t){if(void 0===e)throw new Error("leaf is required");e=this.bufferify(e);const n=[];if(!Number.isInteger(t)){t=-1;for(let n=0;n<this.leaves.length;n++)0===Zk.Buffer.compare(e,this.leaves[n])&&(t=n)}if(t<=-1)return[];for(let e=0;e<this.layers.length;e++){const r=this.layers[e],i=t%2,a=i?t-1:this.isBitcoinTree&&t===r.length-1&&e<this.layers.length-1?t:t+1;a<r.length&&n.push({position:i?"left":"right",data:r[a]}),t=t/2|0}return n}getHexProof(e,t){return this.getProof(e,t).map((e=>this.bufferToHex(e.data)))}getProofs(){const e=[];return this.getProofsDFS(this.layers.length-1,0,[],e),e}getProofsDFS(e,t,n,r){const i=t%2;if(-1===e)return void(i||r.push([...n].reverse()));if(t>=this.layers[e].length)return;const a=this.layers[e],o=i?t-1:t+1;let s=!1;o<a.length&&(s=!0,n.push({position:i?"left":"right",data:a[o]}));const u=2*t,c=2*t+1;this.getProofsDFS(e-1,u,n,r),this.getProofsDFS(e-1,c,n,r),s&&n.splice(n.length-1,1)}getHexProofs(){return this.getProofs().map((e=>this.bufferToHex(e.data)))}getPositionalHexProof(e,t){return this.getProof(e,t).map((e=>["left"===e.position?0:1,this.bufferToHex(e.data)]))}static marshalProof(t){const n=t.map((t=>"string"==typeof t?t:Zk.Buffer.isBuffer(t)?e.bufferToHex(t):{position:t.position,data:e.bufferToHex(t.data)}));return JSON.stringify(n,null,2)}static unmarshalProof(t){let n=null;if("string"==typeof t)n=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");n=t}if(!n)return[];if(!Array.isArray(n))throw new Error("Expected JSON string to be array");return n.map((t=>{if("string"==typeof t)return e.bufferify(t);if(t instanceof Object)return{position:t.position,data:e.bufferify(t.data)};throw new Error("Expected item to be of type string or object")}))}static marshalTree(t){const n=t.getHexRoot(),r=t.leaves.map((t=>e.bufferToHex(t))),i=t.getHexLayers(),a=t.getOptions();return JSON.stringify({options:a,root:n,layers:i,leaves:r},null,2)}static unmarshalTree(t,n=tS.default,r={}){let i=null;if("string"==typeof t)i=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");i=t}if(!i)throw new Error("could not parse json");return r=Object.assign({},i.options||{},r),new e(i.leaves,n,r)}getProofIndices(e,t){const n=Math.pow(2,t);let r=new Set;for(const t of e){let e=n+t;for(;e>1;)r.add(1^e),e=e/2|0}const i=e.map((e=>n+e)),a=Array.from(r).sort(((e,t)=>e-t)).reverse();r=i.concat(a);const o=new Set,s=[];for(let e of r)if(!o.has(e))for(s.push(e);e>1&&(o.add(e),o.has(1^e));)e=e/2|0;return s.filter((t=>!e.includes(t-n)))}getProofIndicesForUnevenTree(e,t){const n=Math.ceil(Math.log2(t)),r=[];for(let e=0;e<n;e++){t%2!=0&&r.push({index:e,leavesCount:t}),t=Math.ceil(t/2)}const i=[];let a=e;for(let e=0;e<n;e++){const t=a.map((e=>e%2==0?e+1:e-1));let n=t.filter((e=>!a.includes(e)));const o=r.find((({index:t})=>t===e));o&&a.includes(o.leavesCount-1)&&(n=n.slice(0,-1)),i.push(n),a=[...new Set(a.map((e=>e%2==0?e/2:e%2==0?(e+1)/2:(e-1)/2)))]}return i}getMultiProof(e,t){this.complete||console.warn("Warning: For correct multiProofs it's strongly recommended to set complete: true"),t||(t=e,e=this.getLayersFlat());if(this.isUnevenTree()&&t.every(Number.isInteger))return this.getMultiProofForUnevenTree(t);if(!t.every(Number.isInteger)){let e=t;this.sortPairs&&(e=e.sort(Zk.Buffer.compare));let n=e.map((e=>this.bufferIndexOf(this.leaves,e,this.sortLeaves))).sort(((e,t)=>e===t?0:e>t?1:-1));if(!n.every((e=>-1!==e)))throw new Error("Element does not exist in Merkle tree");const r=[],i=[];let a=[];for(let e=0;e<this.layers.length;e++){const t=this.layers[e];for(let e=0;e<n.length;e++){const o=n[e],s=this.getPairNode(t,o);r.push(t[o]),s&&i.push(s),a.push(o/2|0)}n=a.filter(((e,t,n)=>n.indexOf(e)===t)),a=[]}return i.filter((e=>!r.includes(e)))}return this.getProofIndices(t,Math.log2(e.length/2|0)).map((t=>e[t]))}getMultiProofForUnevenTree(e,t){t||(t=e,e=this.getLayers());let n=[],r=t;for(const t of e){const e=[];for(const n of r){if(n%2==0){const i=n+1;if(!r.includes(i)&&t[i]){e.push(t[i]);continue}}const i=n-1;r.includes(i)||!t[i]||e.push(t[i])}n=n.concat(e);const i=new Set;for(const e of r)e%2!=0?e%2!=0?i.add((e-1)/2):i.add((e+1)/2):i.add(e/2);r=Array.from(i)}return n}getHexMultiProof(e,t){return this.getMultiProof(e,t).map((e=>this.bufferToHex(e)))}getProofFlags(e,t){if(!Array.isArray(e)||e.length<=0)throw new Error("Invalid Inputs!");let n;if(n=e.every(Number.isInteger)?[...e].sort(((e,t)=>e===t?0:e>t?1:-1)):e.map((e=>this.bufferIndexOf(this.leaves,e,this.sortLeaves))).sort(((e,t)=>e===t?0:e>t?1:-1)),!n.every((e=>-1!==e)))throw new Error("Element does not exist in Merkle tree");const r=t.map((e=>this.bufferify(e))),i=[],a=[];for(let e=0;e<this.layers.length;e++){const t=this.layers[e];n=n.reduce(((e,n)=>{if(!i.includes(t[n])){const e=this.getPairNode(t,n),o=r.includes(t[n])||r.includes(e);e&&a.push(!o),i.push(t[n]),i.push(e)}return e.push(n/2|0),e}),[])}return a}verify(e,t,n){let r=this.bufferify(t);if(n=this.bufferify(n),!Array.isArray(e)||!t||!n)return!1;for(let t=0;t<e.length;t++){const n=e[t];let i=null,a=null;if("string"==typeof n)i=this.bufferify(n),a=!0;else if(Array.isArray(n))a=0===n[0],i=this.bufferify(n[1]);else if(Zk.Buffer.isBuffer(n))i=n,a=!0;else{if(!(n instanceof Object))throw new Error("Expected node to be of type string or object");i=this.bufferify(n.data),a="left"===n.position}const o=[];this.isBitcoinTree?(o.push(eS.default(r)),o[a?"unshift":"push"](eS.default(i)),r=this.hashFn(this.concatenator(o)),r=eS.default(this.hashFn(r))):this.sortPairs?-1===Zk.Buffer.compare(r,i)?(o.push(r,i),r=this.hashFn(this.concatenator(o))):(o.push(i,r),r=this.hashFn(this.concatenator(o))):(o.push(r),o[a?"unshift":"push"](i),r=this.hashFn(this.concatenator(o)))}return 0===Zk.Buffer.compare(r,n)}verifyMultiProof(e,t,n,r,i){if(this.isUnevenTree())return this.verifyMultiProofForUnevenTree(e,t,n,r,i);const a=Math.ceil(Math.log2(r));e=this.bufferify(e),n=n.map((e=>this.bufferify(e))),i=i.map((e=>this.bufferify(e)));const o={};for(const[e,r]of this.zip(t,n))o[Math.pow(2,a)+e]=r;for(const[e,n]of this.zip(this.getProofIndices(t,a),i))o[e]=n;let s=Object.keys(o).map((e=>+e)).sort(((e,t)=>e-t));s=s.slice(0,s.length-1);let u=0;for(;u<s.length;){const e=s[u];if(e>=2&&{}.hasOwnProperty.call(o,1^e)){let t=[o[e-e%2],o[e-e%2+1]];this.sortPairs&&(t=t.sort(Zk.Buffer.compare));const n=t[1]?this.hashFn(this.concatenator(t)):t[0];o[e/2|0]=n,s.push(e/2|0)}u+=1}return!t.length||{}.hasOwnProperty.call(o,1)&&o[1].equals(e)}verifyMultiProofWithFlags(e,t,n,r){e=this.bufferify(e),t=t.map(this.bufferify),n=n.map(this.bufferify);const i=t.length,a=r.length,o=[];let s=0,u=0,c=0;for(let e=0;e<a;e++){const a=[r[e]?s<i?t[s++]:o[u++]:n[c++],s<i?t[s++]:o[u++]].sort(Zk.Buffer.compare);o[e]=this.hashFn(this.concatenator(a))}return 0===Zk.Buffer.compare(o[a-1],e)}verifyMultiProofForUnevenTree(e,t,n,r,i){e=this.bufferify(e),n=n.map((e=>this.bufferify(e))),i=i.map((e=>this.bufferify(e)));const a=this.calculateRootForUnevenTree(t,n,r,i);return e.equals(a)}getDepth(){return this.getLayers().length-1}getLayersAsObject(){const e=this.getLayers().map((e=>e.map((e=>this.bufferToHex(e,!1))))),t=[];for(let n=0;n<e.length;n++){const r=[];for(let i=0;i<e[n].length;i++){const a={[e[n][i]]:null};if(t.length){a[e[n][i]]={};const r=t.shift(),o=Object.keys(r)[0];if(a[e[n][i]][o]=r[o],t.length){const r=t.shift(),o=Object.keys(r)[0];a[e[n][i]][o]=r[o]}}r.push(a)}t.push(...r)}return t[0]}static verify(t,n,r,i=tS.default,a={}){return new e([],i,a).verify(t,n,r)}static getMultiProof(t,n){return new e([]).getMultiProof(t,n)}resetTree(){this.leaves=[],this.layers=[]}getPairNode(e,t){const n=t%2==0?t+1:t-1;return n<e.length?e[n]:null}toTreeString(){const e=this.getLayersAsObject();return nS.default.asTree(e,!0)}toString(){return this.toTreeString()}isUnevenTree(e){const t=(null==e?void 0:e.length)||this.getDepth();return!this.isPowOf2(t)}isPowOf2(e){return e&&!(e&e-1)}calculateRootForUnevenTree(e,t,n,r){const i=this.zip(e,t).sort((([e],[t])=>e-t)),a=i.map((([e])=>e)),o=this.getProofIndicesForUnevenTree(a,n);let s=0;const u=[];for(let e=0;e<o.length;e++){const t=o[e],n=s;s+=t.length,u[e]=this.zip(t,r.slice(n,s))}const c=[i];for(let e=0;e<u.length;e++){const t=u[e].concat(c[e]).sort((([e],[t])=>e-t)).map((([,e])=>e)),n=c[e].map((([e])=>e)),r=[...new Set(n.map((e=>e%2==0?e/2:e%2==0?(e+1)/2:(e-1)/2)))],i=[];for(let e=0;e<r.length;e++){const n=r[e],a=t[2*e],o=t[2*e+1],s=o?this.hashFn(this.concatenator([a,o])):a;i.push([n,s])}c.push(i)}return c[c.length-1][0][1]}};mO.MerkleTree=iS,"undefined"!=typeof window&&(window.MerkleTree=iS),mO.default=iS;var aS={},oS=ct&&ct.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(aS,"__esModule",{value:!0}),aS.MerkleMountainRange=void 0;const sS=hn,uS=oS(vO),cS=oS(EO);class lS extends cS.default{constructor(e=uS.default,t=[],n,r,i){super(),this.root=sS.Buffer.alloc(0),this.size=0,this.width=0,this.hashes={},this.data={},t=t.map(this.bufferify),this.hashFn=this.bufferifyFn(e),this.hashLeafFn=n,this.peakBaggingFn=r,this.hashBranchFn=i;for(const e of t)this.append(e)}append(e){e=this.bufferify(e);const t=this.hashFn(e),n=this.bufferToHex(t);this.data[n]&&this.bufferToHex(this.hashFn(this.data[n]))===n||(this.data[n]=e);const r=this.hashLeaf(this.size+1,t);this.hashes[this.size+1]=r,this.width+=1;const i=this.getPeakIndexes(this.width);this.size=this.getSize(this.width);const a=[];for(let e=0;e<i.length;e++)a[e]=this._getOrCreateNode(i[e]);this.root=this.peakBagging(this.width,a)}hashLeaf(e,t){return t=this.bufferify(t),this.hashLeafFn?this.bufferify(this.hashLeafFn(e,t)):this.hashFn(sS.Buffer.concat([this.bufferify(e),t]))}hashBranch(e,t,n){return this.hashBranchFn?this.bufferify(this.hashBranchFn(e,t,n)):this.hashFn(sS.Buffer.concat([this.bufferify(e),this.bufferify(t),this.bufferify(n)]))}getPeaks(){const e=this.getPeakIndexes(this.width),t=[];for(let n=0;n<e.length;n++)t[n]=this.hashes[e[n]];return t}getLeafIndex(e){return e%2==1?this.getSize(e):this.getSize(e-1)+1}getPeakIndexes(e){const t=this.numOfPeaks(e),n=[];let r=0,i=0;for(let a=255;a>0&&!(0!=(e&1<<a-1)&&(i=i+(1<<a)-1,n[r++]=i,n.length>=t));a--);if(r!==n.length)throw new Error("invalid bit calculation");return n}numOfPeaks(e){let t=e,n=0;for(;t>0;)t%2==1&&n++,t>>=1;return n}peakBagging(e,t){const n=this.getSize(e);if(this.numOfPeaks(e)!==t.length)throw new Error("received invalid number of peaks");return 0!==e||t.length?this.peakBaggingFn?this.bufferify(this.peakBaggingFn(n,t)):this.hashFn(sS.Buffer.concat([this.bufferify(n),...t.map(this.bufferify)])):sS.Buffer.alloc(0)}getSize(e){return(e<<1)-this.numOfPeaks(e)}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.getRoot())}getNode(e){return this.hashes[e]}mountainHeight(e){let t=1;for(;1<<t<=e+t;)t++;return t-1}heightAt(e){let t=e,n=0,r=0;for(;t>n;)t-=(1<<r)-1,r=this.mountainHeight(t),n=(1<<r)-1;return r-(n-t)}isLeaf(e){return 1===this.heightAt(e)}getChildren(e){const t=e-(1<<this.heightAt(e)-1),n=e-1;if(t===n)throw new Error("not a parent");return[t,n]}getMerkleProof(e){if(e>this.size)throw new Error("out of range");if(!this.isLeaf(e))throw new Error("not a leaf");const t=this.root,n=this.width,r=this.getPeakIndexes(this.width),i=[];let a=0;for(let t=0;t<r.length;t++)i[t]=this.hashes[r[t]],r[t]>=e&&0===a&&(a=r[t]);let o=0,s=0,u=this.heightAt(a);const c=[];for(;a!==e;)u--,[o,s]=this.getChildren(a),a=e<=o?o:s,c[u-1]=this.hashes[e<=o?s:o];return{root:t,width:n,peakBagging:i,siblings:c}}verify(e,t,n,r,i,a){r=this.bufferify(r);if(this.getSize(t)<n)throw new Error("index is out of range");if(!e.equals(this.peakBagging(t,i)))throw new Error("invalid root hash from the peaks");let o,s=0;const u=this.getPeakIndexes(t);for(let e=0;e<u.length;e++)if(u[e]>=n){o=i[e],s=u[e];break}if(!o)throw new Error("target not found");let c=a.length+1;const l=new Array(c);let d,f=0,p=0;for(;c>0&&(l[--c]=s,s!==n);)[f,p]=this.getChildren(s),s=n>f?p:f;for(;c<l.length;)s=l[c],d=0===c?this.hashLeaf(s,this.hashFn(r)):s-1===l[c-1]?this.hashBranch(s,a[c-1],d):this.hashBranch(s,d,a[c-1]),c++;if(!d.equals(o))throw new Error("hashed peak is invalid");return!0}peaksToPeakMap(e,t){const n={};let r=0,i=0,a=t.length;for(let o=1;o<=32;o++)r=32-o,i=1<<o-1,n[r]=0!=(e&i)?t[--a]:0;if(0!==a)throw new Error("invalid number of peaks");return n}peakMapToPeaks(e,t){const n=this.numOfPeaks(e),r=new Array(n);let i=0;for(let e=0;e<32;e++)0!==t[e]&&(r[i++]=t[e]);if(i!==n)throw new Error("invalid number of peaks");return r}peakUpdate(e,t,n){const r={},i=e+1;let a=this.getLeafIndex(i),o=this.hashLeaf(a,n),s=0,u=0,c=!1,l=!1,d=!1;for(let n=1;n<=32;n++)s=32-n,d?r[s]=t[s]:(u=1<<n-1,c=0!=(e&u),l=0!=(i&u),a++,c&&(o=this.hashBranch(a,t[s],o)),l?(r[s]=c?t[s]:o,d=!0):r[s]=0);return r}rollUp(e,t,n,r){if(!e.equals(this.peakBagging(t,n)))throw new Error("invalid root hash from the peaks");let i=t,a=this.peaksToPeakMap(t,n);for(let e=0;e<r.length;e++)a=this.peakUpdate(i,a,r[e]),i++;return this.peakBagging(i,this.peakMapToPeaks(i,a))}_getOrCreateNode(e){if(e>this.size)throw new Error("out of range");if(!this.hashes[e]){const[t,n]=this.getChildren(e),r=this._getOrCreateNode(t),i=this._getOrCreateNode(n);this.hashes[e]=this.hashBranch(e,r,i)}return this.hashes[e]}}aS.MerkleMountainRange=lS,"undefined"!=typeof window&&(window.MerkleMountainRange=lS),aS.default=lS;var dS={},fS=ct&&ct.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(dS,"__esModule",{value:!0}),dS.IncrementalMerkleTree=void 0;const pS=fS(EO),hS=fS(AO);class mS extends pS.default{constructor(e,t){if(super(),this.hashFn=e,t.depth&&(this.depth=t.depth),t.arity&&(this.arity=t.arity),this.depth<1)throw new Error("depth must be greater than 0");if(this.arity<1)throw new Error("arity must be greater than 0");const n=[];let r=t.zeroValue;if(this.zeroValue=r,this.zeroes=[],this.depth)for(let e=0;e<this.depth;e++)this.zeroes.push(r),n[e]=[],r=this.hashFn(Array(this.arity).fill(r));this.nodes=n,this.root=r}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.bufferify(this.getRoot()))}insert(e){if(this.depth&&this.arity&&this.nodes[0].length>=this.getMaxLeaves())throw new Error("tree is full");let t=e,n=this.nodes[0].length;for(let e=0;e<this.depth;e+=1){const r=n-n%this.arity,i=r+this.arity,a=[];this.nodes[e][n]=t;for(let t=r;t<i;t+=1)t<this.nodes[e].length?a.push(this.nodes[e][t]):a.push(this.zeroes[e]);t=this.hashFn(a),n=Math.floor(n/this.arity)}this.root=t}delete(e){this.update(e,this.zeroValue)}update(e,t){if(e<0||e>=this.nodes[0].length)throw new Error("out of bounds");let n=t;for(let t=0;t<this.depth;t+=1){const r=e-e%this.arity,i=r+this.arity,a=[];this.nodes[t][e]=n;for(let e=r;e<i;e+=1)e<this.nodes[t].length?a.push(this.nodes[t][e]):a.push(this.zeroes[t]);n=this.hashFn(a),e=Math.floor(e/this.arity)}this.root=n}getDepth(){return this.depth}getArity(){return this.arity}getMaxLeaves(){return Math.pow(this.depth,this.arity)}indexOf(e){return this.nodes[0].indexOf(e)}getLeaves(){const e=this.copyList(this.nodes[0]);for(let t=this.nodes[0].length;t<this.getMaxLeaves();t++)e[t]=this.zeroValue;return e}copyList(e){return e.map((e=>BigInt(e)))}getLayers(){const e=[];for(const t of this.nodes)e.push(this.copyList(t));if(e[0].length<this.getMaxLeaves()){let t=e[0].length;for(let n=t;n<this.getMaxLeaves();n++)e[0][n]=this.zeroValue;for(let n=0;n<this.depth;n++){const r=t-t%this.arity,i=r+this.arity;for(let t=r;t<i;t++)t>=e[n].length&&(e[n][t]=this.zeroes[n]);t=Math.floor(t/this.arity)}}return e.push([this.root]),e}getHexLayers(){return this.getLayers().reduce(((e,t)=>(Array.isArray(t)?e.push(t.map((e=>this.bufferToHex(this.bufferify(e))))):e.push(t),e)),[])}getLayersAsObject(){const e=this.getLayers().map((e=>e.map((e=>this.bufferToHex(this.bufferify(e),!1))))),t=[];for(let n=0;n<e.length;n++){const r=[];for(let i=0;i<e[n].length;i++){const a={[e[n][i]]:null};if(t.length){a[e[n][i]]={};const r=t.shift(),o=Object.keys(r)[0];if(a[e[n][i]][o]=r[o],t.length){const r=t.shift(),o=Object.keys(r)[0];a[e[n][i]][o]=r[o]}}r.push(a)}t.push(...r)}return t[0]}computeRoot(){let e,t=this.nodes[0].length;for(let n=0;n<this.depth;n+=1){const r=t-t%this.arity,i=r+this.arity,a=[];for(let e=r;e<i;e+=1)e<this.nodes[n].length?a.push(this.nodes[n][e]):a.push(this.zeroes[n]);e=this.hashFn(a),t=Math.floor(t/this.arity)}return e}getProof(e){if(e<0||e>=this.nodes[0].length)throw new Error("The leaf does not exist in this tree");const t=[],n=[],r=e;for(let r=0;r<this.depth;r+=1){const i=e%this.arity,a=e-i,o=a+this.arity;n[r]=i,t[r]=[];for(let n=a;n<o;n+=1)n!==e&&(n<this.nodes[r].length?t[r].push(this.nodes[r][n]):t[r].push(this.zeroes[r]));e=Math.floor(e/this.arity)}return{root:this.root,leaf:this.nodes[0][r],pathIndices:n,siblings:t}}verify(e){let t=e.leaf;for(let n=0;n<e.siblings.length;n+=1){const r=e.siblings[n].slice();r.splice(e.pathIndices[n],0,t),t=this.hashFn(r)}return e.root===t}toString(){return this.toTreeString()}toTreeString(){const e=this.getLayersAsObject();return hS.default.asTree(e,!0)}}dS.IncrementalMerkleTree=mS,"undefined"!=typeof window&&(window.IncrementalMerkleTree=mS),dS.default=mS;var yS={};Object.defineProperty(yS,"__esModule",{value:!0}),yS.MerkleSumTree=yS.ProofStep=yS.Leaf=yS.Bucket=void 0;const gS=EO;class bS{constructor(e,t){this.size=BigInt(e),this.hashed=t,this.parent=null,this.left=null,this.right=null}}yS.Bucket=bS;yS.Leaf=class{constructor(e,t,n){this.hashFn=e,this.rng=t.map((e=>BigInt(e))),this.data=n}getBucket(){let e;return e=this.data?this.hashFn(this.data):Buffer.alloc(32),new bS(BigInt(this.rng[1])-BigInt(this.rng[0]),e)}};class vS{constructor(e,t){this.bucket=e,this.right=t}}yS.ProofStep=vS;class wS extends gS.Base{constructor(e,t){super(),this.leaves=e,this.hashFn=t,wS.checkConsecutive(e),this.buckets=[];for(const t of e)this.buckets.push(t.getBucket());let n=[];for(const e of this.buckets)n.push(e);for(;1!==n.length;){const e=[];for(;n.length;)if(n.length>=2){const t=n.shift(),r=n.shift(),i=t.size+r.size,a=this.hashFn(Buffer.concat([this.sizeToBuffer(t.size),this.bufferify(t.hashed),this.sizeToBuffer(r.size),this.bufferify(r.hashed)])),o=new bS(i,a);r.parent=o,t.parent=r.parent,t.right=r,r.left=t,e.push(o)}else e.push(n.shift());n=e}this.root=n[0]}sizeToBuffer(e){const t=Buffer.alloc(8);return new DataView(t.buffer).setBigInt64(0,BigInt(e),!1),t}static checkConsecutive(e){let t=BigInt(0);for(const n of e){if(n.rng[0]!==t)throw new Error("leaf ranges are invalid");t=BigInt(n.rng[1])}}getProof(e){let t=this.buckets[Number(e)];const n=[];for(;t&&t.parent;){const e=!!t.right,r=t.right?t.right:t.left;t=t.parent,n.push(new vS(r,e))}return n}sum(e){let t=BigInt(0);for(const n of e)t+=BigInt(n);return t}verifyProof(e,t,n){const r=[this.sum(n.filter((e=>!e.right)).map((e=>e.bucket.size))),BigInt(e.size)-this.sum(n.filter((e=>e.right)).map((e=>e.bucket.size)))];if(r[0]!==t.rng[0]||r[1]!==t.rng[1])return!1;let i,a=t.getBucket();for(const e of n)i=e.right?this.hashFn(Buffer.concat([this.sizeToBuffer(a.size),this.bufferify(a.hashed),this.sizeToBuffer(e.bucket.size),this.bufferify(e.bucket.hashed)])):this.hashFn(Buffer.concat([this.sizeToBuffer(e.bucket.size),this.bufferify(e.bucket.hashed),this.sizeToBuffer(a.size),this.bufferify(a.hashed)])),a=new bS(BigInt(a.size)+BigInt(e.bucket.size),i);return a.size===e.size&&a.hashed.toString("hex")===e.hashed.toString("hex")}}yS.MerkleSumTree=wS,"undefined"!=typeof window&&(window.MerkleSumTree=wS),yS.default=wS,function(e){var t=ct&&ct.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.MerkleTree=void 0;const n=t(mO);e.MerkleTree=n.default;var r=aS;Object.defineProperty(e,"MerkleMountainRange",{enumerable:!0,get:function(){return r.MerkleMountainRange}});var i=dS;Object.defineProperty(e,"IncrementalMerkleTree",{enumerable:!0,get:function(){return i.IncrementalMerkleTree}});var a=yS;Object.defineProperty(e,"MerkleSumTree",{enumerable:!0,get:function(){return a.MerkleSumTree}}),e.default=n.default}(hO);var TS={};Object.defineProperty(TS,"__esModule",{value:!0}),TS.DefaultGetter=void 0;const AS=hC,ES=new EC.Logger("defaults"),_S={integer:0,address:(0,AS.hexZeroPad)("0x",20),bool:!1,bytes:"0x",string:""},IS=e=>void 0!==e&&(null!=e&&(["string","number"].includes(typeof e)&&BigInt(e)===BigInt(0)||Array.isArray(e)&&e.every(IS)||"object"==typeof e&&Object.values(e).every(IS)||"boolean"==typeof e&&!1===e));class RS{constructor(e){this.types=e,this.defaultValues={};for(const t in e){const e=this.getDefaultValue(t);this.defaultValues[t]=e,IS(e)||ES.throwError(`Got non-empty value for type ${t} in default generator: ${e}`)}}static from(e,t){const{defaultValues:n}=new RS(e);return t?n[t]:n}getDefaultValue(e){if(this.defaultValues[e])return this.defaultValues[e];const t=function(e){var t;const[,n]=null!==(t=e.match(/^bytes(\d+)$/))&&void 0!==t?t:[];return n?(0,AS.hexZeroPad)("0x",parseInt(n)):(e.match(/^(u?)int(\d*)$/)&&(e="integer"),_S[e])}(e);if(void 0!==t)return t;const n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const e=n[1],t=parseInt(n[3]);if(t>0){const n=this.getDefaultValue(e);return Array(t).fill(n)}return[]}const r=this.types[e];return r?r.reduce(((e,{name:t,type:n})=>Object.assign(Object.assign({},e),{[t]:this.getDefaultValue(n)})),{}):ES.throwArgumentError(`unknown type: ${e}`,"type",e)}}TS.DefaultGetter=RS;var CS={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getNextLayer=e.getRoot=e.fillArray=e.hashConcat=e.bufferKeccak=e.hexToBuffer=e.bufferToHex=e.chunk=e.makeArray=void 0;const t=hC;e.makeArray=(e,t)=>Array(e).fill(0).map(((e,n)=>t(n)));e.chunk=(t,n)=>(0,e.makeArray)(Math.ceil(t.length/n),(e=>t.slice(e*n,(e+1)*n)));e.bufferToHex=e=>(0,t.hexlify)(e);e.hexToBuffer=e=>Buffer.from(e.slice(2),"hex");e.bufferKeccak=n=>(0,e.hexToBuffer)((0,t.keccak256)(n));e.hashConcat=n=>(0,e.bufferKeccak)((0,t.hexConcat)(n));e.fillArray=(e,t,n)=>(t>e.length&&e.push(...Array(t-e.length).fill(n)),e);e.getRoot=(t,n=!0)=>{if(0===t.length)throw new Error("empty tree");const r=[t.map((t=>{const r=Buffer.isBuffer(t)?t:(0,e.hexToBuffer)(t);return n?(0,e.bufferKeccak)(r):r}))];for(;r[r.length-1].length>1;)r.push((0,e.getNextLayer)(r[r.length-1]));return r[r.length-1][0]};e.getNextLayer=t=>(0,e.chunk)(t,2).map(e.hashConcat)}(CS),Object.defineProperty(pO,"__esModule",{value:!0}),pO.Eip712MerkleTree=void 0;const OS=vC,kS=hC,SS=hO,NS=TS,xS=CS;pO.Eip712MerkleTree=class{get completedSize(){return Math.pow(2,this.depth)}getCompleteElements(){const e=this.elements;return(0,xS.fillArray)([...e],this.completedSize,this.defaultNode)}getCompleteLeaves(){const e=this.elements.map(this.leafHasher);return(0,xS.fillArray)([...e],this.completedSize,this.defaultLeaf)}get root(){return this.tree.getHexRoot()}getProof(e){const t=this.getCompleteLeaves()[e];return{leaf:t,proof:this.tree.getHexProof(t,e),root:this.tree.getHexRoot()}}getEncodedProofAndSignature(e,t){const{proof:n}=this.getProof(e);return((e,t,n=`0x${"ff".repeat(64)}`)=>(0,kS.hexConcat)([n,`0x${e.toString(16).padStart(6,"0")}`,kS.defaultAbiCoder.encode([`uint256[${t.length}]`],[t])]))(e,n,t)}getDataToSign(){let e=this.getCompleteElements();for(;e.length>2;)e=(0,xS.chunk)(e,2);return e}add(e){this.elements.push(e)}getBulkOrderHash(){const e=this.encoder.hashStruct("BulkOrder",{tree:this.getDataToSign()}),t=this.getCompleteLeaves().map(xS.hexToBuffer),n=(0,xS.bufferToHex)((0,xS.getRoot)(t,!1)),r=(0,kS.keccak256)((0,kS.toUtf8Bytes)(this.encoder._types.BulkOrder));if((0,kS.keccak256)((0,kS.hexConcat)([r,n]))!==e)throw new Error("expected derived bulk order hash to match");return e}constructor(e,t,n,r,i){this.types=e,this.rootType=t,this.leafType=n,this.elements=r,this.depth=i;const a=OS._TypedDataEncoder.from(e);var o,s;this.encoder=a,this.leafHasher=e=>a.hashStruct(n,e),this.defaultNode=NS.DefaultGetter.from(e,n),this.defaultLeaf=this.leafHasher(this.defaultNode),this.tree=(o=this.getCompleteLeaves(),s=this.defaultLeaf,new SS.MerkleTree(o.map(xS.hexToBuffer),xS.bufferKeccak,{complete:!0,sort:!1,hashLeaves:!1,fillDefaultHash:(0,xS.hexToBuffer)(s)}))}},Object.defineProperty(fO,"__esModule",{value:!0}),fO.getBulkOrderTypeHashes=fO.getBulkOrderTypeHash=fO.getBulkOrderTree=fO.getBulkOrderTreeHeight=void 0;const PS=hC,MS=pO,BS=TS,DS=CS,FS=DC;function LS(e){const t=Object.assign({},FS.EIP_712_BULK_ORDER_TYPE);return t.BulkOrder=[{name:"tree",type:`OrderComponents${"[2]".repeat(e)}`}],t}function US(e){return Math.max(Math.ceil(Math.log2(e)),1)}function qS(e){const t=LS(e),n=PS._TypedDataEncoder.from(t),r=(0,PS.toUtf8Bytes)(n._types.BulkOrder);return(0,PS.keccak256)(r)}fO.getBulkOrderTreeHeight=US,fO.getBulkOrderTree=function(e,t=0,n=US(e.length+t)){const r=LS(n),i=BS.DefaultGetter.from(r,"OrderComponents");let a=[...e];return t>0&&(a=[...(0,DS.fillArray)([],t,i),...e]),new MS.Eip712MerkleTree(r,"BulkOrder","OrderComponents",a,n)},fO.getBulkOrderTypeHash=qS,fO.getBulkOrderTypeHashes=function(e){const t=[];for(let n=0;n<e;n++)t.push(qS(n+1));return t};var jS={},GS={},HS={};Object.defineProperty(HS,"__esModule",{value:!0}),HS.MerkleTree=void 0;const zS=pC,VS=hC,WS=hO,KS=e=>(0,VS.keccak256)(Buffer.from(zS.BigNumber.from(e).toHexString().slice(2).padStart(64,"0"),"hex"));HS.MerkleTree=class{constructor(e){this.tree=new WS.default(e.map(KS),VS.keccak256,{sort:!0})}getProof(e){return this.tree.getHexProof(KS(e))}getRoot(){return this.tree.getRoot().toString("hex")?this.tree.getHexRoot():"0"}},Object.defineProperty(GS,"__esModule",{value:!0}),GS.shouldUseMatchForFulfill=GS.generateRandomSalt=GS.mapOrderAmountsFromUnitsToFill=GS.mapOrderAmountsFromFilledStatus=GS.totalItemsAmount=GS.areAllCurrenciesSame=GS.mapInputItemToOfferItem=GS.deductFees=GS.feeToConsiderationItem=void 0;const XS=pC,JS=hC,YS=DC,QS=WC(),$S=HS,ZS=(e,t)=>XS.BigNumber.from(e).mul(XS.BigNumber.from(t)).div(YS.ONE_HUNDRED_PERCENT_BP);GS.feeToConsiderationItem=({fee:e,token:t,baseAmount:n,baseEndAmount:r=n})=>({itemType:t===XS.ethers.constants.AddressZero?YS.ItemType.NATIVE:YS.ItemType.ERC20,token:t,identifierOrCriteria:"0",startAmount:ZS(n,e.basisPoints).toString(),endAmount:ZS(r,e.basisPoints).toString(),recipient:e.recipient});GS.deductFees=(e,t)=>{if(!t)return e;const n=t.reduce(((e,t)=>e+t.basisPoints),0);return e.map((e=>Object.assign(Object.assign({},e),{startAmount:(0,QS.isCurrencyItem)(e)?XS.BigNumber.from(e.startAmount).sub(ZS(e.startAmount,n)).toString():e.startAmount,endAmount:(0,QS.isCurrencyItem)(e)?XS.BigNumber.from(e.endAmount).sub(ZS(e.endAmount,n)).toString():e.endAmount})))};GS.mapInputItemToOfferItem=e=>{var t,n,r,i,a,o,s,u;if("itemType"in e){if("identifiers"in e||"criteria"in e){const i="criteria"in e?e.criteria:new $S.MerkleTree(e.identifiers).getRoot();return{itemType:e.itemType===YS.ItemType.ERC721?YS.ItemType.ERC721_WITH_CRITERIA:YS.ItemType.ERC1155_WITH_CRITERIA,token:e.token,identifierOrCriteria:i,startAmount:null!==(t=e.amount)&&void 0!==t?t:"1",endAmount:null!==(r=null!==(n=e.endAmount)&&void 0!==n?n:e.amount)&&void 0!==r?r:"1"}}return"amount"in e||"endAmount"in e?{itemType:e.itemType,token:e.token,identifierOrCriteria:null!==(i=e.identifier)&&void 0!==i?i:"0",startAmount:e.amount,endAmount:null!==(o=null!==(a=e.endAmount)&&void 0!==a?a:e.amount)&&void 0!==o?o:"1"}:{itemType:e.itemType,token:e.token,identifierOrCriteria:e.identifier,startAmount:"1",endAmount:"1"}}return{itemType:e.token&&e.token!==XS.ethers.constants.AddressZero?YS.ItemType.ERC20:YS.ItemType.NATIVE,token:null!==(s=e.token)&&void 0!==s?s:XS.ethers.constants.AddressZero,identifierOrCriteria:"0",startAmount:e.amount,endAmount:null!==(u=e.endAmount)&&void 0!==u?u:e.amount}};GS.areAllCurrenciesSame=({offer:e,consideration:t})=>{const n=[...e,...t].filter(QS.isCurrencyItem);return n.every((({itemType:e,token:t})=>e===n[0].itemType&&t.toLowerCase()===n[0].token.toLowerCase()))};GS.totalItemsAmount=e=>(XS.BigNumber.from(0),XS.BigNumber.from(0),e.map((({startAmount:e,endAmount:t})=>({startAmount:e,endAmount:t}))).reduce((({startAmount:e,endAmount:t},{startAmount:n,endAmount:r})=>({startAmount:e.add(n),endAmount:t.add(r)})),{startAmount:XS.BigNumber.from(0),endAmount:XS.BigNumber.from(0)}));GS.mapOrderAmountsFromFilledStatus=(e,{totalFilled:t,totalSize:n})=>{if(t.eq(0)||n.eq(0))return e;const r=n.sub(t).mul(YS.ONE_HUNDRED_PERCENT_BP).div(n);return{parameters:Object.assign(Object.assign({},e.parameters),{offer:e.parameters.offer.map((e=>Object.assign(Object.assign({},e),{startAmount:ZS(e.startAmount,r).toString(),endAmount:ZS(e.endAmount,r).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:ZS(e.startAmount,r).toString(),endAmount:ZS(e.endAmount,r).toString()})))}),signature:e.signature}};const eN=(e,t,n)=>XS.BigNumber.from(e).mul(XS.BigNumber.from(t)).div(n);GS.mapOrderAmountsFromUnitsToFill=(e,{unitsToFill:t,totalSize:n})=>{const r=XS.BigNumber.from(t);if(r.lte(0))throw new Error("Units to fill must be greater than 1");const i=(0,QS.getMaximumSizeForOrder)(e);return n.eq(0)&&(n=i),{parameters:Object.assign(Object.assign({},e.parameters),{offer:e.parameters.offer.map((e=>Object.assign(Object.assign({},e),{startAmount:eN(e.startAmount,r,n).toString(),endAmount:eN(e.endAmount,r,n).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:eN(e.startAmount,r,n).toString(),endAmount:eN(e.endAmount,r,n).toString()})))}),signature:e.signature}};GS.generateRandomSalt=e=>e?`0x${Buffer.from((0,JS.concat)([(0,JS.keccak256)((0,JS.toUtf8Bytes)(e)).slice(0,10),Uint8Array.from(Array(20).fill(0)),(0,JS.randomBytes)(8)])).toString("hex")}`:`0x${Buffer.from((0,JS.randomBytes)(8)).toString("hex").padStart(64,"0")}`;GS.shouldUseMatchForFulfill=()=>!0,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getAdvancedOrderNumeratorDenominator=e.generateFulfillOrdersFulfillments=e.fulfillAvailableOrders=e.validateAndSanitizeFromOrderStatus=e.fulfillStandardOrder=e.fulfillBasicOrder=e.shouldUseBasicFulfill=void 0;const t=pC,n=DC,r=FC,i=tO,a=HC(),o=VC,s=WC(),u=GS,c=KC;e.shouldUseBasicFulfill=({offer:e,consideration:r,offerer:i},a)=>{if(!a.eq(0))return!1;if(e.length>1||0===r.length)return!1;const o=[...e,...r],c=o.filter((({itemType:e})=>[n.ItemType.ERC721,n.ItemType.ERC1155].includes(e))),l=o.filter((({itemType:e})=>(0,s.isCriteriaItem)(e)));if((0,s.isNativeCurrencyItem)(e[0]))return!1;if(1!==c.length||0!==l.length)return!1;if(!(0,u.areAllCurrenciesSame)({offer:e,consideration:r}))return!1;if(o.some((({startAmount:e,endAmount:t})=>e!==t)))return!1;const[d,...f]=r;if(d.recipient.toLowerCase()!==i.toLowerCase())return!1;if(r.length>1&&f.every((t=>t.itemType===e[0].itemType))&&(0,u.totalItemsAmount)(f).endAmount.gt(e[0].endAmount))return!1;const p=o.filter(s.isCurrencyItem),h=p.filter((({itemType:e})=>e===n.ItemType.NATIVE)).every((({token:e})=>e===t.ethers.constants.AddressZero)),m=p.every((({identifierOrCriteria:e})=>t.BigNumber.from(e).eq(0))),y=c.filter((({itemType:e})=>e===n.ItemType.ERC721)).every((({endAmount:e})=>"1"===e));return h&&m&&y};const l={[n.ItemType.ERC20]:{[n.ItemType.ERC721]:n.BasicOrderRouteType.ERC721_TO_ERC20,[n.ItemType.ERC1155]:n.BasicOrderRouteType.ERC1155_TO_ERC20},[n.ItemType.ERC721]:{[n.ItemType.NATIVE]:n.BasicOrderRouteType.ETH_TO_ERC721,[n.ItemType.ERC20]:n.BasicOrderRouteType.ERC20_TO_ERC721},[n.ItemType.ERC1155]:{[n.ItemType.NATIVE]:n.BasicOrderRouteType.ETH_TO_ERC1155,[n.ItemType.ERC20]:n.BasicOrderRouteType.ERC20_TO_ERC1155}};function d(e,t){const{isValidated:n,isCancelled:r,totalFilled:i,totalSize:a}=t;if(a.gt(0)&&i.div(a).eq(1))throw new Error("The order you are trying to fulfill is already filled");if(r)throw new Error("The order you are trying to fulfill is cancelled");return n?{parameters:Object.assign({},e.parameters),signature:"0x"}:e}function f(e){const t=({sourceOrDestination:e,operator:t="",token:n,identifier:r})=>`${e}-${t}-${n}-${r}`,n={},r={};return e.forEach((({order:e,offererOperator:r,offerCriteria:i},o)=>{const u=(0,a.getItemToCriteriaMap)(e.parameters.offer,i);return e.parameters.offer.forEach(((i,a)=>{var c,l,d;const f=`${t({sourceOrDestination:e.parameters.offerer,operator:r,token:i.token,identifier:null!==(l=null===(c=u.get(i))||void 0===c?void 0:c.identifier)&&void 0!==l?l:i.identifierOrCriteria})}${(0,s.isErc721Item)(i.itemType)?a:""}`;n[f]=[...null!==(d=n[f])&&void 0!==d?d:[],{orderIndex:o,itemIndex:a}]}))})),e.forEach((({order:e,considerationCriteria:n,tips:i},o)=>{const u=(0,a.getItemToCriteriaMap)(e.parameters.consideration,n);return[...e.parameters.consideration,...i].forEach(((e,n)=>{var i,a,c;const l=`${t({sourceOrDestination:e.recipient,token:e.token,identifier:null!==(a=null===(i=u.get(e))||void 0===i?void 0:i.identifier)&&void 0!==a?a:e.identifierOrCriteria})}${(0,s.isErc721Item)(e.itemType)?n:""}`;r[l]=[...null!==(c=r[l])&&void 0!==c?c:[],{orderIndex:o,itemIndex:n}]}))})),{offerFulfillments:Object.values(n),considerationFulfillments:Object.values(r)}}e.fulfillBasicOrder=function({order:e,seaportContract:a,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:u,timeBasedItemParams:d,offererOperator:f,fulfillerOperator:p,signer:h,tips:m=[],conduitKey:y=n.NO_CONDUIT,domain:g},b){var v,w;const{offer:T,consideration:A}=e.parameters,E=[...A,...m],_=T[0],[I,...R]=E,C=null===(v=l[_.itemType])||void 0===v?void 0:v[I.itemType];if(void 0===C)throw new Error("Order parameters did not result in a valid basic fulfillment");const O=R.map((({startAmount:e,recipient:t})=>({amount:e,recipient:t}))),k=E.filter((e=>e.itemType!==T[0].itemType)),S=null===(w=(0,s.getSummedTokenAndIdentifierAmounts)({items:k,criterias:[],timeBasedItemParams:Object.assign(Object.assign({},d),{isConsiderationItem:!0})})[t.ethers.constants.AddressZero])||void 0===w?void 0:w[0],N=(0,i.validateBasicFulfillBalancesAndApprovals)({offer:T,consideration:E,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:u,timeBasedItemParams:d,offererOperator:f,fulfillerOperator:p}),x={offerer:e.parameters.offerer,offererConduitKey:e.parameters.conduitKey,zone:e.parameters.zone,basicOrderType:e.parameters.orderType+4*C,offerToken:_.token,offerIdentifier:_.identifierOrCriteria,offerAmount:_.endAmount,considerationToken:I.token,considerationIdentifier:I.identifierOrCriteria,considerationAmount:I.endAmount,startTime:e.parameters.startTime,endTime:e.parameters.endTime,salt:e.parameters.salt,totalOriginalAdditionalRecipients:e.parameters.consideration.length-1,signature:e.signature,fulfillerConduitKey:y,additionalRecipients:O,zoneHash:e.parameters.zoneHash},P={value:S},M=[...(0,r.getApprovalActions)(N,b,h),{type:"exchange",transactionMethods:(0,c.getTransactionMethods)(a.connect(h),"fulfillBasicOrder",[x,P],g)}];return{actions:M,executeAllActions:()=>(0,c.executeAllActions)(M)}},e.fulfillStandardOrder=function({order:n,unitsToFill:o=0,totalSize:l,totalFilled:d,offerCriteria:f,considerationCriteria:p,tips:h=[],extraData:m,seaportContract:y,offererBalancesAndApprovals:g,fulfillerBalancesAndApprovals:b,offererOperator:v,fulfillerOperator:w,timeBasedItemParams:T,conduitKey:A,recipientAddress:E,signer:_,domain:I},R){var C;const O=o?(0,u.mapOrderAmountsFromUnitsToFill)(n,{unitsToFill:o,totalSize:l}):(0,u.mapOrderAmountsFromFilledStatus)(n,{totalFilled:d,totalSize:l}),{parameters:{offer:k,consideration:S}}=O,N=[...S,...h],x=k.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),P=N.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),M=x.length>0||P.length>0;if(x.length!==f.length||P.length!==p.length)throw new Error("You must supply the appropriate criterias for criteria based items");const B=null===(C=(0,s.getSummedTokenAndIdentifierAmounts)({items:N,criterias:p,timeBasedItemParams:Object.assign(Object.assign({},T),{isConsiderationItem:!0})})[t.ethers.constants.AddressZero])||void 0===C?void 0:C[0],D=(0,i.validateStandardFulfillBalancesAndApprovals)({offer:k,consideration:N,offerCriteria:f,considerationCriteria:p,offererBalancesAndApprovals:g,fulfillerBalancesAndApprovals:b,timeBasedItemParams:T,offererOperator:v,fulfillerOperator:w}),F={value:B},L=(0,r.getApprovalActions)(D,R,_),U=E!==t.ethers.constants.AddressZero,q=Boolean(o)||M||U,j=Object.assign(Object.assign({},n),{parameters:Object.assign(Object.assign({},n.parameters),{consideration:[...n.parameters.consideration,...h],totalOriginalConsiderationItems:S.length})}),{numerator:G,denominator:H}=(0,e.getAdvancedOrderNumeratorDenominator)(n,o),z=[...L,{type:"exchange",transactionMethods:q?(0,c.getTransactionMethods)(y.connect(_),"fulfillAdvancedOrder",[Object.assign(Object.assign({},j),{numerator:G,denominator:H,extraData:null!=m?m:"0x"}),M?(0,a.generateCriteriaResolvers)({orders:[n],offerCriterias:[f],considerationCriterias:[p]}):[],A,E,F],I):(0,c.getTransactionMethods)(y.connect(_),"fulfillOrder",[j,A,F],I)}];return{actions:z,executeAllActions:()=>(0,c.executeAllActions)(z)}},e.validateAndSanitizeFromOrderStatus=d,e.fulfillAvailableOrders=function({ordersMetadata:n,seaportContract:o,fulfillerBalancesAndApprovals:l,fulfillerOperator:p,currentBlockTimestamp:h,ascendingAmountTimestampBuffer:m,conduitKey:y,signer:g,recipientAddress:b,exactApproval:v,domain:w}){const T=n.map((e=>Object.assign(Object.assign({},e),{order:d(e.order,e.orderStatus)}))),A=T.map((e=>Object.assign(Object.assign({},e),{order:e.unitsToFill?(0,u.mapOrderAmountsFromUnitsToFill)(e.order,{unitsToFill:e.unitsToFill,totalSize:e.orderStatus.totalSize}):(0,u.mapOrderAmountsFromFilledStatus)(e.order,{totalFilled:e.orderStatus.totalFilled,totalSize:e.orderStatus.totalSize})})));let E=t.BigNumber.from(0);const _=[],I=T.flatMap((e=>[e.order.parameters.offer,e.order.parameters.consideration])).flat().filter((({itemType:e})=>(0,s.isCriteriaItem)(e))).length>0;A.forEach((({order:e,tips:n,offerCriteria:r,considerationCriteria:a,offererBalancesAndApprovals:o,offererOperator:u})=>{var c,d;const f=[...e.parameters.consideration,...n],y={startTime:e.parameters.startTime,endTime:e.parameters.endTime,currentBlockTimestamp:h,ascendingAmountTimestampBuffer:m,isConsiderationItem:!0};E=E.add(null!==(d=null===(c=(0,s.getSummedTokenAndIdentifierAmounts)({items:f,criterias:a,timeBasedItemParams:y})[t.ethers.constants.AddressZero])||void 0===c?void 0:c[0])&&void 0!==d?d:t.BigNumber.from(0));const g=(0,i.validateStandardFulfillBalancesAndApprovals)({offer:e.parameters.offer,consideration:f,offerCriteria:r,considerationCriteria:a,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:l,timeBasedItemParams:y,offererOperator:u,fulfillerOperator:p}),b=e.parameters.offer.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),v=f.filter((({itemType:e})=>(0,s.isCriteriaItem)(e)));if(b.length!==r.length||v.length!==a.length)throw new Error("You must supply the appropriate criterias for criteria based items");g.forEach((e=>{_.find((t=>t.token===e.token))||_.push(e)}))}));const R={value:E},C=(0,r.getApprovalActions)(_,v,g),O=T.map((({order:t,unitsToFill:n=0,tips:r,extraData:i})=>{const{numerator:a,denominator:o}=(0,e.getAdvancedOrderNumeratorDenominator)(t,n),s=[...t.parameters.consideration,...r];return Object.assign(Object.assign({},t),{parameters:Object.assign(Object.assign({},t.parameters),{consideration:s,totalOriginalConsiderationItems:t.parameters.consideration.length}),numerator:a,denominator:o,extraData:i})})),{offerFulfillments:k,considerationFulfillments:S}=f(n),N={type:"exchange",transactionMethods:(0,c.getTransactionMethods)(o.connect(g),"fulfillAvailableAdvancedOrders",[O,I?(0,a.generateCriteriaResolvers)({orders:n.map((({order:e})=>e)),offerCriterias:n.map((({offerCriteria:e})=>e)),considerationCriterias:n.map((({considerationCriteria:e})=>e))}):[],k,S,y,b,O.length,R],w)},x=[...C,N];return{actions:x,executeAllActions:()=>(0,c.executeAllActions)(x)}},e.generateFulfillOrdersFulfillments=f;e.getAdvancedOrderNumeratorDenominator=(e,n)=>{const r=(0,s.getMaximumSizeForOrder)(e),i=t.BigNumber.from(n),a=(0,o.gcd)(i,r);return{numerator:n?i.div(a):t.BigNumber.from(1),denominator:n?r.div(a):t.BigNumber.from(1)}}}(jS);var tN=ct&&ct.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(GR,"__esModule",{value:!0}),GR.Seaport=void 0;const nN=fC,rN=pC,iN=hC,aN=MC,oN=BC,sN=DC,uN=FC,cN=tO,lN=fO,dN=jS,fN=WC(),pN=GS,hN=KC;GR.Seaport=class{constructor(e,{overrides:t,ascendingAmountFulfillmentBuffer:n=300,balanceAndApprovalChecksOnOrderCreation:r=!0,conduitKeyToConduit:i,seaportVersion:a="1.5"}={}){var o,s,u;this.OPENSEA_CONDUIT_KEY=sN.OPENSEA_CONDUIT_KEY,this.getOrderHash=e=>{const t="OfferItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount)",n="ConsiderationItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount,address recipient)",r=`OrderComponents(address offerer,address zone,OfferItem[] offer,ConsiderationItem[] consideration,uint8 orderType,uint256 startTime,uint256 endTime,bytes32 zoneHash,uint256 salt,bytes32 conduitKey,uint256 counter)${n}${t}`,i=rN.ethers.utils.keccak256(rN.ethers.utils.toUtf8Bytes(t)),a=rN.ethers.utils.keccak256(rN.ethers.utils.toUtf8Bytes(n)),o=rN.ethers.utils.keccak256(rN.ethers.utils.toUtf8Bytes(r)),s=rN.ethers.utils.keccak256("0x"+e.offer.map((e=>rN.ethers.utils.keccak256("0x"+[i.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),rN.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),rN.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),rN.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0")].join("")).slice(2))).join("")),u=rN.ethers.utils.keccak256("0x"+e.consideration.map((e=>rN.ethers.utils.keccak256("0x"+[a.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),rN.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),rN.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),rN.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0"),e.recipient.slice(2).padStart(64,"0")].join("")).slice(2))).join(""));return rN.ethers.utils.keccak256("0x"+[o.slice(2),e.offerer.slice(2).padStart(64,"0"),e.zone.slice(2).padStart(64,"0"),s.slice(2),u.slice(2),e.orderType.toString().padStart(64,"0"),rN.ethers.BigNumber.from(e.startTime).toHexString().slice(2).padStart(64,"0"),rN.ethers.BigNumber.from(e.endTime).toHexString().slice(2).padStart(64,"0"),e.zoneHash.slice(2),rN.BigNumber.from(e.salt).toHexString().slice(2).padStart(64,"0"),e.conduitKey.slice(2).padStart(64,"0"),rN.ethers.BigNumber.from(e.counter).toHexString().slice(2).padStart(64,"0")].join(""))};const c=e instanceof rN.providers.Provider?e:e.provider;if(this.signer=e._isSigner?e:void 0,!c)throw new Error("Either a provider or custom signer with provider must be provided");this.provider=c,this.multicallProvider=new nN.providers.MulticallProvider(this.provider),this.contract=new rN.Contract(null!==(o=null==t?void 0:t.contractAddress)&&void 0!==o?o:"1.5"===a?sN.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS:sN.CROSS_CHAIN_SEAPORT_V1_4_ADDRESS,oN.SeaportABIv14,this.multicallProvider),this.domainRegistry=new rN.Contract(null!==(s=null==t?void 0:t.domainRegistryAddress)&&void 0!==s?s:sN.DOMAIN_REGISTRY_ADDRESS,aN.DomainRegistryABI,this.multicallProvider),this.config={ascendingAmountFulfillmentBuffer:n,balanceAndApprovalChecksOnOrderCreation:r,conduitKeyToConduit:Object.assign(Object.assign(Object.assign({},sN.KNOWN_CONDUIT_KEYS_TO_CONDUIT),{[sN.NO_CONDUIT]:this.contract.address}),i),seaportVersion:a},this.defaultConduitKey=null!==(u=null==t?void 0:t.defaultConduitKey)&&void 0!==u?u:sN.NO_CONDUIT}createOrder(e,t,n){return tN(this,void 0,void 0,(function*(){const r=this._getSigner(t),i=null!=t?t:yield r.getAddress(),{orderComponents:a,approvalActions:o}=yield this._formatOrder(r,i,Boolean(n),e),s={type:"create",getMessageToSign:()=>this._getMessageToSign(a),createOrder:()=>tN(this,void 0,void 0,(function*(){const e=yield this.signOrder(a,i);return{parameters:a,signature:e}}))},u=[...o,s];return{actions:u,executeAllActions:()=>(0,hN.executeAllActions)(u)}}))}createBulkOrders(e,t,n){var r;return tN(this,void 0,void 0,(function*(){const i=this._getSigner(t),a=yield i.getAddress(),o=yield this.getCounter(a),s=[],u=[];for(const t of e){null!==(r=t.counter)&&void 0!==r||(t.counter=o);const{orderComponents:e,approvalActions:c}=yield this._formatOrder(i,a,Boolean(n),t);u.push(e);for(const e of c)void 0===s.find((t=>t.token===e.token))&&s.push(e)}const c={type:"createBulk",getMessageToSign:()=>this._getBulkMessageToSign(u),createBulkOrders:()=>tN(this,void 0,void 0,(function*(){return yield this.signBulkOrder(u,a)}))},l=[...s,c];return{actions:l,executeAllActions:()=>(0,hN.executeAllActions)(l)}}))}_formatOrder(e,t,n,{conduitKey:r=this.defaultConduitKey,zone:i=rN.ethers.constants.AddressZero,zoneHash:a=rN.ethers.constants.HashZero,startTime:o=Math.floor(Date.now()/1e3).toString(),endTime:s=sN.MAX_INT.toString(),offer:u,consideration:c,counter:l,allowPartialFills:d,restrictedByZone:f,fees:p,domain:h,salt:m}){var y;return tN(this,void 0,void 0,(function*(){const g=u.map(pN.mapInputItemToOfferItem),b=[...c.map((e=>{var n;return Object.assign(Object.assign({},(0,pN.mapInputItemToOfferItem)(e)),{recipient:null!==(n=e.recipient)&&void 0!==n?n:t})}))];if((null==p?void 0:p.length)&&!(0,pN.areAllCurrenciesSame)({offer:g,consideration:b}))throw new Error("All currency tokens in the order must be the same token when applying fees");const v=[...g,...b].filter(fN.isCurrencyItem),w=(0,pN.totalItemsAmount)(v),T=this.config.conduitKeyToConduit[r],A=this._getOrderTypeFromOrderOptions({allowPartialFills:d,restrictedByZone:f}),E=[...(0,pN.deductFees)(b,p),...v.length&&null!==(y=null==p?void 0:p.map((e=>(0,pN.feeToConsiderationItem)({fee:e,token:v[0].token,baseAmount:w.startAmount,baseEndAmount:w.endAmount}))))&&void 0!==y?y:[]],_=void 0!==m?`0x${rN.BigNumber.from(m).toHexString().slice(2).padStart(64,"0")}`:(0,pN.generateRandomSalt)(h),I={offerer:t,zone:i,zoneHash:a,startTime:o,endTime:s,orderType:A,offer:g,consideration:E,totalOriginalConsiderationItems:E.length,salt:_,conduitKey:r,counter:(null!=l?l:yield this.getCounter(t)).toString()},R=[];if(this.config.balanceAndApprovalChecksOnOrderCreation){const r=yield(0,cN.getBalancesAndApprovals)({owner:t,items:g,criterias:[],multicallProvider:this.multicallProvider,operator:T}),i=(0,cN.validateOfferBalancesAndApprovals)({offer:g,criterias:[],balancesAndApprovals:r,throwOnInsufficientBalances:!0,operator:T}),a=(0,uN.getApprovalActions)(i,n,e);R.push(...a)}return{orderComponents:I,approvalActions:R}}))}_getSigner(e){if(this.signer)return this.signer;if(!(this.provider instanceof rN.providers.JsonRpcProvider))throw new Error("Either signer or a JsonRpcProvider must be provided");return this.provider.getSigner(e)}_getOrderTypeFromOrderOptions({allowPartialFills:e,restrictedByZone:t}){return e?t?sN.OrderType.PARTIAL_RESTRICTED:sN.OrderType.PARTIAL_OPEN:t?sN.OrderType.FULL_RESTRICTED:sN.OrderType.FULL_OPEN}_getDomainData(){return tN(this,void 0,void 0,(function*(){const{chainId:e}=yield this.provider.getNetwork();return{name:sN.SEAPORT_CONTRACT_NAME,version:"1.5"===this.config.seaportVersion?sN.SEAPORT_CONTRACT_VERSION_V1_5:sN.SEAPORT_CONTRACT_VERSION_V1_4,chainId:e,verifyingContract:this.contract.address}}))}_getMessageToSign(e){return tN(this,void 0,void 0,(function*(){const t=yield this._getDomainData();return JSON.stringify(iN._TypedDataEncoder.getPayload(t,sN.EIP_712_ORDER_TYPE,e))}))}_getBulkMessageToSign(e){return tN(this,void 0,void 0,(function*(){const t=yield this._getDomainData(),n=(0,lN.getBulkOrderTree)(e),r=n.types,i=n.getDataToSign();return JSON.stringify(iN._TypedDataEncoder.getPayload(t,r,{tree:i}))}))}signOrder(e,t){return tN(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData();let i=yield n._signTypedData(r,sN.EIP_712_ORDER_TYPE,e);return 132===i.length&&(i=rN.ethers.utils.splitSignature(i).compact),i}))}signBulkOrder(e,t){return tN(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData(),i=(0,lN.getBulkOrderTree)(e),a=i.types,o={tree:i.getDataToSign()};let s=yield n._signTypedData(r,a,o);132===s.length&&(s=rN.ethers.utils.splitSignature(s).compact);return e.map(((e,t)=>({parameters:e,signature:i.getEncodedProofAndSignature(t,s)})))}))}cancelOrders(e,t,n){const r=this._getSigner(t);return(0,hN.getTransactionMethods)(this.contract.connect(r),"cancel",[e],n)}bulkCancelOrders(e,t){const n=this._getSigner(e);return(0,hN.getTransactionMethods)(this.contract.connect(n),"incrementCounter",[],t)}validate(e,t,n){const r=this._getSigner(t);return(0,hN.getTransactionMethods)(this.contract.connect(r),"validate",[e],n)}getOrderStatus(e){return this.contract.getOrderStatus(e)}getCounter(e){return this.contract.getCounter(e)}fulfillOrder({order:e,unitsToFill:t,offerCriteria:n=[],considerationCriteria:r=[],tips:i=[],extraData:a="0x",accountAddress:o,conduitKey:s=this.defaultConduitKey,recipientAddress:u=rN.ethers.constants.AddressZero,domain:c,exactApproval:l=!1}){return tN(this,void 0,void 0,(function*(){if(!e.signature)throw new Error("Order is missing signature");const{parameters:d}=e,{offerer:f,offer:p,consideration:h}=d,m=this._getSigner(o),y=yield m.getAddress(),g=this.config.conduitKeyToConduit[d.conduitKey],b=this.config.conduitKeyToConduit[s],[v,w,T,A]=yield Promise.all([(0,cN.getBalancesAndApprovals)({owner:f,items:p,criterias:n,multicallProvider:this.multicallProvider,operator:g}),(0,cN.getBalancesAndApprovals)({owner:y,items:[...p,...h],criterias:[...n,...r],multicallProvider:this.multicallProvider,operator:b}),this.multicallProvider.getBlock("latest"),this.getOrderStatus(this.getOrderHash(d))]),E=T.timestamp,{totalFilled:_,totalSize:I}=A,R=(0,dN.validateAndSanitizeFromOrderStatus)(e,A),C={startTime:R.parameters.startTime,endTime:R.parameters.endTime,currentBlockTimestamp:E,ascendingAmountTimestampBuffer:this.config.ascendingAmountFulfillmentBuffer},O=i.map((e=>Object.assign(Object.assign({},(0,pN.mapInputItemToOfferItem)(e)),{recipient:e.recipient}))),k=u===rN.ethers.constants.AddressZero;return!t&&k&&(0,dN.shouldUseBasicFulfill)(R.parameters,_)?(0,dN.fulfillBasicOrder)({order:R,seaportContract:this.contract,offererBalancesAndApprovals:v,fulfillerBalancesAndApprovals:w,timeBasedItemParams:C,conduitKey:s,offererOperator:g,fulfillerOperator:b,signer:m,tips:O,domain:c},l):(0,dN.fulfillStandardOrder)({order:R,unitsToFill:t,totalFilled:_,totalSize:I.eq(0)?(0,fN.getMaximumSizeForOrder)(R):I,offerCriteria:n,considerationCriteria:r,tips:O,extraData:a,seaportContract:this.contract,offererBalancesAndApprovals:v,fulfillerBalancesAndApprovals:w,timeBasedItemParams:C,conduitKey:s,signer:m,offererOperator:g,fulfillerOperator:b,recipientAddress:u,domain:c},l)}))}fulfillOrders({fulfillOrderDetails:e,accountAddress:t,conduitKey:n=this.defaultConduitKey,recipientAddress:r=rN.ethers.constants.AddressZero,domain:i,exactApproval:a=!1}){return tN(this,void 0,void 0,(function*(){if(e.some((e=>!e.order.signature)))throw new Error("All orders must include signatures");const o=this._getSigner(t),s=yield o.getAddress(),u=e.map((({order:e})=>this.config.conduitKeyToConduit[e.parameters.conduitKey])),c=this.config.conduitKeyToConduit[n],l=e.flatMap((({order:e})=>e.parameters.offer)),d=e.flatMap((({order:e})=>e.parameters.consideration)),f=e.flatMap((({offerCriteria:e=[]})=>e)),p=e.flatMap((({considerationCriteria:e=[]})=>e)),[h,m,y,g]=yield Promise.all([Promise.all(e.map((({order:e,offerCriteria:t=[]},n)=>(0,cN.getBalancesAndApprovals)({owner:e.parameters.offerer,items:e.parameters.offer,criterias:t,operator:u[n],multicallProvider:this.multicallProvider})))),(0,cN.getBalancesAndApprovals)({owner:s,items:[...l,...d],criterias:[...f,...p],operator:c,multicallProvider:this.multicallProvider}),this.multicallProvider.getBlock("latest"),Promise.all(e.map((({order:e})=>this.getOrderStatus(this.getOrderHash(e.parameters)))))]),b=e.map(((e,t)=>{var n,r,i,a,o;return{order:e.order,unitsToFill:e.unitsToFill,orderStatus:g[t],offerCriteria:null!==(n=e.offerCriteria)&&void 0!==n?n:[],considerationCriteria:null!==(r=e.considerationCriteria)&&void 0!==r?r:[],tips:null!==(a=null===(i=e.tips)||void 0===i?void 0:i.map((e=>Object.assign(Object.assign({},(0,pN.mapInputItemToOfferItem)(e)),{recipient:e.recipient}))))&&void 0!==a?a:[],extraData:null!==(o=e.extraData)&&void 0!==o?o:"0x",offererBalancesAndApprovals:h[t],offererOperator:u[t]}}));return(0,dN.fulfillAvailableOrders)({ordersMetadata:b,seaportContract:this.contract,fulfillerBalancesAndApprovals:m,currentBlockTimestamp:y.timestamp,ascendingAmountTimestampBuffer:this.config.ascendingAmountFulfillmentBuffer,fulfillerOperator:c,signer:o,conduitKey:n,recipientAddress:r,domain:i,exactApproval:a})}))}matchOrders({orders:e,fulfillments:t,overrides:n,accountAddress:r,domain:i}){const a=this._getSigner(r);return(0,hN.getTransactionMethods)(this.contract.connect(a),"matchOrders",[e,t,n],i)}setDomain(e,t){const n=this._getSigner(t);return(0,hN.getTransactionMethods)(this.domainRegistry.connect(n),"setDomain",[e])}getNumberOfDomains(e){return tN(this,void 0,void 0,(function*(){return this.domainRegistry.getNumberOfDomains(e)}))}getDomain(e,t){return this.domainRegistry.getDomain(e,t)}getDomains(e,t){return tN(this,void 0,void 0,(function*(){try{if(t)throw Error;return this.domainRegistry.getDomains(e)}catch(t){const n=(yield this.domainRegistry.getNumberOfDomains(e)).toNumber();return Promise.all([...Array(n).keys()].map((t=>this.domainRegistry.getDomain(e,t))))}}))}},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Seaport=void 0;const t=GR;Object.defineProperty(e,"Seaport",{enumerable:!0,get:function(){return t.Seaport}})}(jR);class mN{config;constructor(e){this.config=e}}class yN extends Error{url;status;statusText;body;request;constructor(e,t,n){super(n),this.name="ApiError",this.url=t.url,this.status=t.status,this.statusText=t.statusText,this.body=t.body,this.request=e}}class gN extends Error{constructor(e){super(e),this.name="CancelError"}get isCancelled(){return!0}}class bN{[Symbol.toStringTag];_isResolved;_isRejected;_isCancelled;_cancelHandlers;_promise;_resolve;_reject;constructor(e){this._isResolved=!1,this._isRejected=!1,this._isCancelled=!1,this._cancelHandlers=[],this._promise=new Promise(((t,n)=>{this._resolve=t,this._reject=n;const r=e=>{this._isResolved||this._isRejected||this._isCancelled||this._cancelHandlers.push(e)};return Object.defineProperty(r,"isResolved",{get:()=>this._isResolved}),Object.defineProperty(r,"isRejected",{get:()=>this._isRejected}),Object.defineProperty(r,"isCancelled",{get:()=>this._isCancelled}),e((e=>{this._isResolved||this._isRejected||this._isCancelled||(this._isResolved=!0,this._resolve?.(e))}),(e=>{this._isResolved||this._isRejected||this._isCancelled||(this._isRejected=!0,this._reject?.(e))}),r)}))}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(){if(!(this._isResolved||this._isRejected||this._isCancelled)){if(this._isCancelled=!0,this._cancelHandlers.length)try{for(const e of this._cancelHandlers)e()}catch(e){return void console.warn("Cancellation threw an error",e)}this._cancelHandlers.length=0,this._reject?.(new gN("Request aborted"))}}get isCancelled(){return this._isCancelled}}const vN=e=>null!=e,wN=e=>"string"==typeof e,TN=e=>wN(e)&&""!==e,AN=e=>"object"==typeof e&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.arrayBuffer&&"function"==typeof e.constructor&&"string"==typeof e.constructor.name&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag]),EN=e=>{const t=[],n=(e,r)=>{vN(r)&&(Array.isArray(r)?r.forEach((t=>{n(e,t)})):"object"==typeof r?Object.entries(r).forEach((([t,r])=>{n(`${e}[${t}]`,r)})):((e,n)=>{t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`)})(e,r))};return Object.entries(e).forEach((([e,t])=>{n(e,t)})),t.length>0?`?${t.join("&")}`:""},_N=async(e,t)=>"function"==typeof t?t(e):t,IN=async(e,t,n)=>{const r=await _N(t,e.TOKEN),i=await _N(t,e.USERNAME),a=await _N(t,e.PASSWORD),o=await _N(t,e.HEADERS),s="function"==typeof n?.getHeaders&&n?.getHeaders()||{},u=Object.entries({Accept:"application/json",...o,...t.headers,...s}).filter((([e,t])=>vN(t))).reduce(((e,[t,n])=>({...e,[t]:String(n)})),{});if(TN(r)&&(u.Authorization=`Bearer ${r}`),TN(i)&&TN(a)){const e=(e=>{try{return btoa(e)}catch(t){return Buffer.from(e).toString("base64")}})(`${i}:${a}`);u.Authorization=`Basic ${e}`}return t.body&&(t.mediaType?u["Content-Type"]=t.mediaType:AN(t.body)?u["Content-Type"]=t.body.type||"application/octet-stream":wN(t.body)?u["Content-Type"]="text/plain":t.body instanceof qR||(u["Content-Type"]="application/json")),u},RN=(e,t)=>new bN((async(n,r,i)=>{try{const r=((e,t)=>{const n=e.ENCODE_PATH||encodeURI,r=t.url.replace("{api-version}",e.VERSION).replace(/{(.*?)}/g,((e,r)=>t.path?.hasOwnProperty(r)?n(String(t.path[r])):e)),i=`${e.BASE}${r}`;return t.query?`${i}${EN(t.query)}`:i})(e,t),o=(e=>{if(e.formData){const t=new qR,n=(e,n)=>{wN(n)||AN(n)?t.append(e,n):t.append(e,JSON.stringify(n))};return Object.entries(e.formData).filter((([e,t])=>vN(t))).forEach((([e,t])=>{Array.isArray(t)?t.forEach((t=>n(e,t))):n(e,t)})),t}})(t),s=(e=>{if(e.body)return e.body})(t),u=await IN(e,t,o);if(!i.isCancelled){const c=await(async(e,t,n,r,i,a,o)=>{const s=Ve.CancelToken.source(),u={url:n,headers:a,data:r??i,method:t.method,withCredentials:e.WITH_CREDENTIALS,cancelToken:s.token};o((()=>s.cancel("The user aborted a request.")));try{return await Ve.request(u)}catch(e){const t=e;if(t.response)return t.response;throw e}})(e,t,r,s,o,u,i),l=(e=>{if(204!==e.status)return e.data})(c),d=((e,t)=>{if(t){const n=e.headers[t];if(wN(n))return n}})(c,t.responseHeader),f={url:r,ok:(a=c.status,a>=200&&a<300),status:c.status,statusText:c.statusText,body:d??l};((e,t)=>{const n={400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error",502:"Bad Gateway",503:"Service Unavailable",...e.errors}[t.status];if(n)throw new yN(e,t,n);if(!t.ok)throw new yN(e,t,"Generic Error")})(t,f),n(f.body)}}catch(e){r(e)}var a}));class CN extends mN{constructor(e){super(e)}request(e){return RN(this.config,e)}}class ON{httpRequest;constructor(e){this.httpRequest=e}cancelOrders({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/cancel",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",401:"Unauthorised Request (401)",404:"The specified resource was not found (404)",429:"Too Many Requests (429)",500:"Internal Server Error (500)",501:"Not Implemented Error (501)"}})}listListings({chainName:e,status:t,sellItemContractAddress:n,buyItemContractAddress:r,sellItemTokenId:i,fromUpdatedAt:a,pageSize:o,sortBy:s,sortDirection:u,pageCursor:c}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/listings",path:{chain_name:e},query:{status:t,sell_item_contract_address:n,buy_item_contract_address:r,sell_item_token_id:i,from_updated_at:a,page_size:o,sort_by:s,sort_direction:u,page_cursor:c},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}createListing({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/listings",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}getListing({chainName:e,listingId:t}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/listings/{listing_id}",path:{chain_name:e,listing_id:t},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}fulfillmentData({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/fulfillment-data",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}listTrades({chainName:e,accountAddress:t,fromIndexedAt:n,pageSize:r,sortBy:i,sortDirection:a,pageCursor:o}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/trades",path:{chain_name:e},query:{account_address:t,from_indexed_at:n,page_size:r,sort_by:i,sort_direction:a,page_cursor:o},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}getTrade({chainName:e,tradeId:t}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/trades/{trade_id}",path:{chain_name:e,trade_id:t},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}}class kN{orders;request;constructor(e,t=CN){this.request=new t({BASE:e?.BASE??"https://api.sandbox.immutable.com",VERSION:e?.VERSION??"1.0.0",WITH_CREDENTIALS:e?.WITH_CREDENTIALS??!1,CREDENTIALS:e?.CREDENTIALS??"include",TOKEN:e?.TOKEN,USERNAME:e?.USERNAME,PASSWORD:e?.PASSWORD,HEADERS:e?.HEADERS,ENCODE_PATH:e?.ENCODE_PATH}),this.orders=new ON(this.request)}}var SN,NN,xN,PN,MN,BN,DN,FN,LN;function UN(e){const t=e.buy.map((e=>{if("ERC20"===e.item_type)return{type:"ERC20",contractAddress:e.contract_address,amount:e.start_amount};if("NATIVE"===e.item_type)return{type:"NATIVE",amount:e.start_amount};throw new Error("Buy items must be either ERC20 or NATIVE")})),n=e.sell.map((e=>{if("ERC721"===e.item_type)return{type:"ERC721",contractAddress:e.contract_address,tokenId:e.token_id};throw new Error("Sell items must ERC721")}));return{id:e.id,accountAddress:e.account_address,buy:t,sell:n,fees:e.fees.map((e=>({amount:e.amount,recipient:e.recipient,type:e.fee_type}))),chain:e.chain,createdAt:e.created_at,endAt:e.end_at,protocolData:{counter:e.protocol_data.counter,orderType:e.protocol_data.order_type,seaportAddress:e.protocol_data.seaport_address,seaportVersion:e.protocol_data.seaport_version,zoneAddress:e.protocol_data.zone_address},salt:e.salt,signature:e.signature,startAt:e.start_at,status:e.status,updatedAt:e.updated_at}}function qN(e){const t=e.buy.map((e=>{if("ERC20"===e.item_type)return{type:"ERC20",contractAddress:e.contract_address,amount:e.start_amount};if("NATIVE"===e.item_type)return{type:"NATIVE",amount:e.start_amount};throw new Error("Buy items must be either ERC20 or NATIVE")})),n=e.sell.map((e=>{if("ERC721"===e.item_type)return{type:"ERC721",contractAddress:e.contract_address,tokenId:e.token_id};throw new Error("Sell items must ERC721")}));return{id:e.id,orderId:e.order_id,buy:t,sell:n,buyerFees:e.buyer_fees.map((e=>({amount:e.amount,recipient:e.recipient,type:e.fee_type}))),chain:e.chain,indexedAt:e.indexed_at,blockchainMetadata:{blockNumber:e.blockchain_metadata.block_number,logIndex:e.blockchain_metadata.log_index,transactionHash:e.blockchain_metadata.transaction_hash,transactionIndex:e.blockchain_metadata.transaction_index},buyerAddress:e.buyer_address,makerAddress:e.maker_address,sellerAddress:e.seller_address,takerAddress:e.taker_address}}function jN(e){return{nextCursor:e.next_cursor,previousCursor:e.previous_cursor}}!function(e){var t;(t=e.cancellation_type||(e.cancellation_type={})).ON_CHAIN="ON_CHAIN",t.OFF_CHAIN="OFF_CHAIN"}(SN||(SN={})),function(e){(e.reason_code||(e.reason_code={})).FILLED="FILLED"}(NN||(NN={})),function(e){var t;(t=e.fee_type||(e.fee_type={})).ROYALTY="ROYALTY",t.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",t.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",t.PROTOCOL="PROTOCOL"}(xN||(xN={})),function(e){e.PENDING="PENDING",e.ACTIVE="ACTIVE",e.INACTIVE="INACTIVE",e.FILLED="FILLED",e.EXPIRED="EXPIRED",e.CANCELLED="CANCELLED"}(PN||(PN={})),function(e){(e.order_type||(e.order_type={})).FULL_RESTRICTED="FULL_RESTRICTED"}(MN||(MN={})),function(e){e.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",e.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",e.PROTOCOL="PROTOCOL",e.ROYALTY="ROYALTY"}(BN||(BN={})),function(e){e.APPROVAL="APPROVAL",e.FULFILL_ORDER="FULFILL_ORDER",e.CANCEL="CANCEL"}(DN||(DN={})),function(e){e.CREATE_LISTING="CREATE_LISTING",e.OFF_CHAIN_CANCELLATION="OFF_CHAIN_CANCELLATION"}(FN||(FN={})),function(e){e.TRANSACTION="TRANSACTION",e.SIGNABLE="SIGNABLE"}(LN||(LN={}));const GN="1.5",HN={OrderComponents:[{name:"offerer",type:"address"},{name:"zone",type:"address"},{name:"offer",type:"OfferItem[]"},{name:"consideration",type:"ConsiderationItem[]"},{name:"orderType",type:"uint8"},{name:"startTime",type:"uint256"},{name:"endTime",type:"uint256"},{name:"zoneHash",type:"bytes32"},{name:"salt",type:"uint256"},{name:"conduitKey",type:"bytes32"},{name:"counter",type:"uint256"}],OfferItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"}],ConsiderationItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}]};var zN,VN,WN,KN;function XN(e){return async()=>{const t=await e.buildTransaction();return t.gasLimit=await e.estimateGas(),t.gasLimit=t.gasLimit.add(t.gasLimit.div(5)),t}}!function(e){e[e.FULL_OPEN=0]="FULL_OPEN",e[e.PARTIAL_OPEN=1]="PARTIAL_OPEN",e[e.FULL_RESTRICTED=2]="FULL_RESTRICTED",e[e.PARTIAL_RESTRICTED=3]="PARTIAL_RESTRICTED"}(zN||(zN={})),function(e){e[e.NATIVE=0]="NATIVE",e[e.ERC20=1]="ERC20",e[e.ERC721=2]="ERC721",e[e.ERC1155=3]="ERC1155",e[e.ERC721_WITH_CRITERIA=4]="ERC721_WITH_CRITERIA",e[e.ERC1155_WITH_CRITERIA=5]="ERC1155_WITH_CRITERIA"}(VN||(VN={})),function(e){e[e.OFFER=0]="OFFER",e[e.CONSIDERATION=1]="CONSIDERATION"}(WN||(WN={})),function(e){e[e.ETH_TO_ERC721=0]="ETH_TO_ERC721",e[e.ETH_TO_ERC1155=1]="ETH_TO_ERC1155",e[e.ERC20_TO_ERC721=2]="ERC20_TO_ERC721",e[e.ERC20_TO_ERC1155=3]="ERC20_TO_ERC1155",e[e.ERC721_TO_ERC20=4]="ERC721_TO_ERC20",e[e.ERC1155_TO_ERC20=5]="ERC1155_TO_ERC20"}(KN||(KN={}));class JN{seaportLibFactory;provider;seaportContractAddress;zoneContractAddress;constructor(e,t,n,r){this.seaportLibFactory=e,this.provider=t,this.seaportContractAddress=n,this.zoneContractAddress=r}async prepareSeaportOrder(e,t,n,r,i){const{actions:a}=await this.createSeaportOrder(e,t,n,r,i),o=[],s=a.find((e=>"approval"===e.type));s&&o.push({type:LN.TRANSACTION,purpose:DN.APPROVAL,buildTransaction:XN(s.transactionMethods)});const u=a.find((e=>"create"===e.type));if(!u)throw new Error("No create order action found");const c=function(e){const t=JSON.parse(e).message;return t.salt=tr.from(t.salt).toHexString(),t}(await u.getMessageToSign());return o.push({type:LN.SIGNABLE,purpose:FN.CREATE_LISTING,message:await this.getTypedDataFromOrderComponents(c)}),{actions:o,orderComponents:c,orderHash:this.getSeaportLib().getOrderHash(c)}}async fulfillOrder(e,t,n){const{orderComponents:r,tips:i}=this.mapImmutableOrderToSeaportOrderComponents(e),a=this.getSeaportLib(e),{actions:o}=await a.fulfillOrders({accountAddress:t,fulfillOrderDetails:[{order:{parameters:r,signature:e.signature},extraData:n,tips:i}]}),s=[],u=o.find((e=>"approval"===e.type));u&&s.push({type:LN.TRANSACTION,buildTransaction:XN(u.transactionMethods),purpose:DN.APPROVAL});const c=o.find((e=>"exchange"===e.type));if(!c)throw new Error("No exchange action found");return s.push({type:LN.TRANSACTION,buildTransaction:XN(c.transactionMethods),purpose:DN.FULFILL_ORDER}),{actions:s,expiration:JN.getExpirationISOTimeFromExtraData(n),order:UN(e)}}async fulfillBulkOrders(e,t){const n=e.map((e=>{const{orderComponents:t,tips:n}=this.mapImmutableOrderToSeaportOrderComponents(e.order);return{order:{parameters:t,signature:e.order.signature},extraData:e.extra_data,tips:n}})),{actions:r}=await this.getSeaportLib().fulfillOrders({fulfillOrderDetails:n,accountAddress:t}),i=[],a=r.find((e=>"approval"===e.type));a&&i.push({type:LN.TRANSACTION,buildTransaction:XN(a.transactionMethods),purpose:DN.APPROVAL});const o=r.find((e=>"exchange"===e.type));if(!o)throw new Error("No exchange action found");return i.push({type:LN.TRANSACTION,buildTransaction:XN(o.transactionMethods),purpose:DN.FULFILL_ORDER}),{actions:i,expiration:n.map((e=>JN.getExpirationISOTimeFromExtraData(e.extraData))).reduce(((e,t)=>new Date(e)<new Date(t)?e:t))}}async cancelOrders(e,t){const n=e.map((e=>this.mapImmutableOrderToSeaportOrderComponents(e).orderComponents)),r=this.getSeaportLib(e[0]),i=await r.cancelOrders(n,t);return{type:LN.TRANSACTION,buildTransaction:XN(i),purpose:DN.CANCEL}}mapImmutableOrderToSeaportOrderComponents(e){return function(e,t,n){const r=e.buy.map((t=>{switch(t.item_type){case"NATIVE":return{startAmount:t.start_amount,endAmount:t.start_amount,itemType:VN.NATIVE,recipient:e.account_address,token:ji,identifierOrCriteria:"0"};case"ERC20":return{startAmount:t.start_amount,endAmount:t.start_amount,itemType:VN.ERC20,recipient:e.account_address,token:t.contract_address||ji,identifierOrCriteria:"0"};default:return{startAmount:"1",endAmount:"1",itemType:VN.ERC721,recipient:e.account_address,token:t.contract_address||ji,identifierOrCriteria:"0"}}})),i=e.fees.map((t=>({amount:t.amount,itemType:"ERC20"===e.buy[0].item_type?VN.ERC20:VN.NATIVE,recipient:t.recipient,token:"ERC20"===e.buy[0].item_type?e.buy[0].contract_address:ji,identifierOrCriteria:"0"})));return{orderComponents:{conduitKey:Yi,consideration:[...r],offer:e.sell.map((e=>{const t=e;return{startAmount:"1",endAmount:"1",itemType:VN.ERC721,token:t.contract_address,identifierOrCriteria:t.token_id}})),counter:t,endTime:Math.round(new Date(e.end_at).getTime()/1e3).toString(),startTime:Math.round(new Date(e.start_at).getTime()/1e3).toString(),salt:e.salt,offerer:e.account_address,zone:n,totalOriginalConsiderationItems:r.length,orderType:zN.FULL_RESTRICTED,zoneHash:Yi},tips:i}}(e,e.protocol_data.counter,this.zoneContractAddress)}createSeaportOrder(e,t,n,r,i){return this.getSeaportLib().createOrder({allowPartialFills:!1,offer:[{itemType:VN.ERC721,token:t.contractAddress,identifier:t.tokenId}],consideration:[{token:"ERC20"===n.type?n.contractAddress:void 0,amount:n.amount,recipient:e}],startTime:(r.getTime()/1e3).toFixed(0),endTime:(i.getTime()/1e3).toFixed(0),zone:this.zoneContractAddress,restrictedByZone:!0},e)}async getTypedDataFromOrderComponents(e){const{chainId:t}=await this.provider.getNetwork();return{domain:{name:"ImmutableSeaport",version:GN,chainId:t,verifyingContract:this.seaportContractAddress},types:HN,value:e}}getSeaportLib(e){const t=e?.protocol_data?.seaport_address??this.seaportContractAddress,n=GN;return this.seaportLibFactory.create(n,t)}static getExpirationISOTimeFromExtraData(e){const t=e.slice(44,60),n=parseInt(t,16);return new Date(1e3*n).toISOString()}}class YN{orderbookService;chainName;seaportAddress;constructor(e,t,n){this.orderbookService=e,this.chainName=t,this.seaportAddress=n}async fulfillmentData(e){return this.orderbookService.fulfillmentData({chainName:this.chainName,requestBody:e})}async getListing(e){return this.orderbookService.getListing({chainName:this.chainName,listingId:e})}async getTrade(e){return this.orderbookService.getTrade({chainName:this.chainName,tradeId:e})}async listListings(e){return this.orderbookService.listListings({chainName:this.chainName,...e})}async listTrades(e){return this.orderbookService.listTrades({chainName:this.chainName,...e})}async cancelOrders(e,t,n){return this.orderbookService.cancelOrders({chainName:this.chainName,requestBody:{account_address:t,orders:e,signature:n}})}async createListing({orderHash:e,orderComponents:t,orderSignature:n,makerFees:r}){if(1!==t.offer.length)throw new Error("Only one item can be listed at a time");if(Number(t.offer[0].itemType)!==VN.ERC721)throw new Error("Only ERC721 tokens can be listed");const i=[...t.consideration.map((e=>e.itemType))];if(!(1===new Set(i).size))throw new Error("All consideration items must be of the same type");return this.orderbookService.createListing({chainName:this.chainName,requestBody:{order_hash:e,account_address:t.offerer,buy:[{item_type:Number(t.consideration[0].itemType)===VN.NATIVE?"NATIVE":"ERC20",start_amount:t.consideration[0].startAmount,contract_address:t.consideration[0].token}],fees:r.map((e=>({amount:e.amount,fee_type:BN.MAKER_ECOSYSTEM,recipient:e.recipient}))),end_at:new Date(parseInt(`${t.endTime.toString()}000`,10)).toISOString(),protocol_data:{order_type:MN.order_type.FULL_RESTRICTED,zone_address:t.zone,seaport_address:this.seaportAddress,seaport_version:GN,counter:t.counter.toString()},salt:t.salt,sell:[{contract_address:t.offer[0].token,token_id:t.offer[0].identifierOrCriteria,item_type:"ERC721"}],signature:n,start_at:new Date(parseInt(`${t.startTime.toString()}000`,10)).toISOString()}})}}class QN{chainName;seaportAddress;orderbookClient;constructor(e,t,n){this.chainName=t,this.seaportAddress=n,this.orderbookClient=new kN({BASE:e})}create(){return new YN(this.orderbookClient.orders,this.chainName,this.seaportAddress)}}class $N{defaultSeaportContractAddress;provider;constructor(e,t){this.defaultSeaportContractAddress=e,this.provider=t}create(e,t){const n=e??GN,r=t??this.defaultSeaportContractAddress;return new jR.Seaport(this.provider,{seaportVersion:n,balanceAndApprovalChecksOnOrderCreation:!0,overrides:{contractAddress:r}})}}class ZN{apiClient;seaport;orderbookConfig;constructor(e){const t={...function(e){switch(e){case st.SANDBOX:return{seaportContractAddress:"0x7Fb7Da6De152597830eD16361633e362A2F59410",zoneContractAddress:"0x63441cBfBd15Dd8f5E92598E535661Ac5aCB808E",apiEndpoint:"https://api.sandbox.immutable.com",chainName:"imtbl-zkevm-testnet",provider:new up("https://rpc.testnet.immutable.com")};case st.PRODUCTION:return{seaportContractAddress:"",zoneContractAddress:"",apiEndpoint:"https://api.immutable.com",chainName:"imtbl-zkevm-mainnet",provider:new up("https://rpc.immutable.com")};default:return null}}(e.baseConfig.environment),...e.overrides};if(!t)throw new Error("Orderbook configuration not passed, please specify the environment under config.baseConfig.environment");this.orderbookConfig=t;const{apiEndpoint:n,chainName:r}=this.orderbookConfig;if(!n)throw new Error("API endpoint must be provided");this.apiClient=new QN(n,r,this.orderbookConfig.seaportContractAddress).create();const i=new $N(this.orderbookConfig.seaportContractAddress,this.orderbookConfig.provider);this.seaport=new JN(i,this.orderbookConfig.provider,this.orderbookConfig.seaportContractAddress,this.orderbookConfig.zoneContractAddress)}config(){return this.orderbookConfig}async getListing(e){return{result:UN((await this.apiClient.getListing(e)).result)}}async getTrade(e){return{result:qN((await this.apiClient.getTrade(e)).result)}}async listListings(e){const t=await this.apiClient.listListings(e);return{page:jN(t.page),result:t.result.map(UN)}}async listTrades(e){const t=await this.apiClient.listTrades(e);return{page:jN(t.page),result:t.result.map(qN)}}async prepareListing({makerAddress:e,sell:t,buy:n,orderExpiry:r}){return this.seaport.prepareSeaportOrder(e,t,n,new Date,r||new Date(Date.now()+63072e6))}async createListing(e){return{result:UN((await this.apiClient.createListing({...e})).result)}}async fulfillOrder(e,t,n){const r=await this.apiClient.fulfillmentData([{order_id:e,fees:n.map((e=>({amount:e.amount,fee_type:BN.TAKER_ECOSYSTEM,recipient:e.recipient})))}]);if(r.result.unfulfillable_orders?.length>0)throw new Error(`Unable to prepare fulfillment date: ${r.result.unfulfillable_orders[0].reason}`);if(1!==r.result.fulfillable_orders?.length)throw new Error("unexpected fulfillable order result length");const i=r.result.fulfillable_orders[0].extra_data,a=r.result.fulfillable_orders[0].order;if(a.status.name!==PN.ACTIVE)throw new Error(`Cannot fulfil order that is not active. Current status: ${a.status}`);return this.seaport.fulfillOrder(a,t,i)}async fulfillBulkOrders(e,t){const n=await this.apiClient.fulfillmentData(e.map((e=>({order_id:e.listingId,fees:e.takerFees.map((e=>({amount:e.amount,fee_type:BN.TAKER_ECOSYSTEM,recipient:e.recipient})))}))));try{return{...await this.seaport.fulfillBulkOrders(n.result.fulfillable_orders,t),fulfillableOrders:n.result.fulfillable_orders.map((e=>UN(e.order))),unfulfillableOrders:n.result.unfulfillable_orders.map((e=>({orderId:e.order_id,reason:e.reason}))),sufficientBalance:!0}}catch(e){if(String(e).includes("The fulfiller does not have the balances needed to fulfill."))return{fulfillableOrders:n.result.fulfillable_orders.map((e=>UN(e.order))),unfulfillableOrders:n.result.unfulfillable_orders.map((e=>({orderId:e.order_id,reason:e.reason}))),sufficientBalance:!1};throw e}}async prepareOrderCancellations(e){const t={name:"imtbl-order-book",chainId:(await this.orderbookConfig.provider.getNetwork()).chainId,verifyingContract:this.orderbookConfig.seaportContractAddress},n={orders:e.map((e=>({id:e})))};return{signableAction:{purpose:FN.OFF_CHAIN_CANCELLATION,type:LN.SIGNABLE,message:{domain:t,types:{CancelPayload:[{name:"orders",type:"Order[]"}],Order:[{name:"id",type:"string"}]},value:n}}}}async cancelOrders(e,t,n){return this.apiClient.cancelOrders(e,t,n)}async cancelOrdersOnChain(e,t){const n=await Promise.all(e.map((e=>this.apiClient.getListing(e))));for(const e of n){if(e.result.status.name!==PN.ACTIVE&&e.result.status.name!==PN.INACTIVE&&e.result.status.name!==PN.PENDING)throw new Error(`Cannot cancel order with status ${e.result.status}`);if(e.result.account_address!==t.toLowerCase())throw new Error(`Only account ${e.result.account_address} can cancel order ${e.result.id}`)}const r=n.map((e=>e.result)),i=r.map((e=>e.protocol_data.seaport_address));if(1!==new Set(...[i]).size)throw new Error("Cannot cancel multiple orders from different seaport contracts. Please group your orderIds accordingly");return{cancellationAction:await this.seaport.cancelOrders(r,t)}}}const ex=4e5,tx="https://api.sandbox.immutable.com".replace(/\/+$/,"");class nx{basePath;axios;configuration;constructor(e,t=tx,n=Ve){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}}class rx extends Error{field;constructor(e,t){super(t),this.field=e,this.name="RequiredError"}}const ix="https://example.com",ax=function(e,t,n){if(null==n)throw new rx(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},ox=async function(e,t,n){if(n&&n.apiKey){const r="function"==typeof n.apiKey?await n.apiKey(t):await n.apiKey;e[t]=r}},sx=async function(e,t){if(t&&t.accessToken){const n="function"==typeof t.accessToken?await t.accessToken():await t.accessToken;e.Authorization="Bearer "+n}};function ux(e,t,n=""){null!=t&&("object"==typeof t?Array.isArray(t)?t.forEach((t=>ux(e,t,n))):Object.keys(t).forEach((r=>ux(e,t[r],`${n}${""!==n?".":""}${r}`))):e.has(n)?e.append(n,t):e.set(n,t))}const cx=function(e,...t){const n=new URLSearchParams(e.search);ux(n,t),e.search=n.toString()},lx=function(e,t,n){const r="string"!=typeof e;return(r&&n&&n.isJsonMime?n.isJsonMime(t.headers["Content-Type"]):r)?JSON.stringify(void 0!==e?e:{}):e||""},dx=function(e){return e.pathname+e.search+e.hash},fx=function(e,t,n,r){return(i=t,a=n)=>{const o={...e.options,url:(r?.basePath||i.defaults.baseURL||a)+e.url};return i.request(o)}},px=function(e){return{getActivity:async(t,n,r={})=>{ax("getActivity","chainName",t),ax("getActivity","activityId",n);const i="/v1/chains/{chain_name}/activities/{activity_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{activity_id}",encodeURIComponent(String(n))),a=new URL(i,ix);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};cx(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:dx(a),options:s}},listActivities:async(t,n,r,i,a,o,s,u,c,l,d={})=>{ax("listActivities","chainName",t);const f="/v1/chains/{chain_name}/activities".replace("{chain_name}",encodeURIComponent(String(t))),p=new URL(f,ix);let h;e&&(h=e.baseOptions);const m={method:"GET",...h,...d},y={};void 0!==n&&(y.contract_address=n),void 0!==r&&(y.token_id=r),void 0!==i&&(y.account_address=i),void 0!==a&&(y.activity_type=a),void 0!==o&&(y.from_indexed_at=o instanceof Date?o.toISOString():o),void 0!==s&&(y.to_indexed_at=s instanceof Date?s.toISOString():s),void 0!==u&&(y.transaction_hash=u),void 0!==c&&(y.page_cursor=c),void 0!==l&&(y.page_size=l),cx(p,y);let g=h&&h.headers?h.headers:{};return m.headers={...g,...d.headers},{url:dx(p),options:m}}}},hx=function(e){const t=px(e);return{async getActivity(n,r,i){const a=await t.getActivity(n,r,i);return fx(a,Ve,tx,e)},async listActivities(n,r,i,a,o,s,u,c,l,d,f){const p=await t.listActivities(n,r,i,a,o,s,u,c,l,d,f);return fx(p,Ve,tx,e)}}};const mx=function(e){return{listChains:async(t,n,r={})=>{const i=new URL("/v1/chains",ix);let a;e&&(a=e.baseOptions);const o={method:"GET",...a,...r},s={};void 0!==t&&(s.page_cursor=t),void 0!==n&&(s.page_size=n),cx(i,s);let u=a&&a.headers?a.headers:{};return o.headers={...u,...r.headers},{url:dx(i),options:o}}}},yx=function(e){const t=mx(e);return{async listChains(n,r,i){const a=await t.listChains(n,r,i);return fx(a,Ve,tx,e)}}};const gx=function(e){return{getCollection:async(t,n,r={})=>{ax("getCollection","contractAddress",t),ax("getCollection","chainName",n);const i="/v1/chains/{chain_name}/collections/{contract_address}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,ix);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};cx(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:dx(a),options:s}},listCollections:async(t,n,r,i,a,o={})=>{ax("listCollections","chainName",t);const s="/v1/chains/{chain_name}/collections".replace("{chain_name}",encodeURIComponent(String(t))),u=new URL(s,ix);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};n&&(d.contract_address=n),void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),cx(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:dx(u),options:l}},listCollectionsByNFTOwner:async(t,n,r,i,a={})=>{ax("listCollectionsByNFTOwner","accountAddress",t),ax("listCollectionsByNFTOwner","chainName",n);const o="/v1/chains/{chain_name}/accounts/{account_address}/collections".replace("{account_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),s=new URL(o,ix);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),cx(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:dx(s),options:c}},refreshCollectionMetadata:async(t,n,r,i={})=>{ax("refreshCollectionMetadata","contractAddress",t),ax("refreshCollectionMetadata","chainName",n),ax("refreshCollectionMetadata","refreshCollectionMetadataRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/refresh-metadata".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),o=new URL(a,ix);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await ox(c,"x-immutable-api-Key",e),c["Content-Type"]="application/json",cx(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=lx(r,u,e),{url:dx(o),options:u}}}},bx=function(e){const t=gx(e);return{async getCollection(n,r,i){const a=await t.getCollection(n,r,i);return fx(a,Ve,tx,e)},async listCollections(n,r,i,a,o,s){const u=await t.listCollections(n,r,i,a,o,s);return fx(u,Ve,tx,e)},async listCollectionsByNFTOwner(n,r,i,a,o){const s=await t.listCollectionsByNFTOwner(n,r,i,a,o);return fx(s,Ve,tx,e)},async refreshCollectionMetadata(n,r,i,a){const o=await t.refreshCollectionMetadata(n,r,i,a);return fx(o,Ve,tx,e)}}};const vx=function(e){return{getMetadata:async(t,n,r,i={})=>{ax("getMetadata","chainName",t),ax("getMetadata","contractAddress",n),ax("getMetadata","metadataId",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/metadata/{metadata_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))).replace("{metadata_id}",encodeURIComponent(String(r))),o=new URL(a,ix);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};cx(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:dx(o),options:u}},listMetadata:async(t,n,r,i,a,o={})=>{ax("listMetadata","chainName",t),ax("listMetadata","contractAddress",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/metadata".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))),u=new URL(s,ix);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),cx(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:dx(u),options:l}},refreshMetadataByID:async(t,n,r,i={})=>{ax("refreshMetadataByID","chainName",t),ax("refreshMetadataByID","contractAddress",n),ax("refreshMetadataByID","refreshMetadataByIDRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/metadata/refresh-metadata".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))),o=new URL(a,ix);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await ox(c,"x-immutable-api-Key",e),c["Content-Type"]="application/json",cx(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=lx(r,u,e),{url:dx(o),options:u}},refreshNFTMetadataByTokenID:async(t,n,r,i={})=>{ax("refreshNFTMetadataByTokenID","contractAddress",t),ax("refreshNFTMetadataByTokenID","chainName",n),ax("refreshNFTMetadataByTokenID","refreshNFTMetadataByTokenIDRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/nfts/refresh-metadata".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),o=new URL(a,ix);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await ox(c,"x-immutable-api-Key",e),c["Content-Type"]="application/json",cx(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=lx(r,u,e),{url:dx(o),options:u}}}},wx=function(e){const t=vx(e);return{async getMetadata(n,r,i,a){const o=await t.getMetadata(n,r,i,a);return fx(o,Ve,tx,e)},async listMetadata(n,r,i,a,o,s){const u=await t.listMetadata(n,r,i,a,o,s);return fx(u,Ve,tx,e)},async refreshMetadataByID(n,r,i,a){const o=await t.refreshMetadataByID(n,r,i,a);return fx(o,Ve,tx,e)},async refreshNFTMetadataByTokenID(n,r,i,a){const o=await t.refreshNFTMetadataByTokenID(n,r,i,a);return fx(o,Ve,tx,e)}}};const Tx=function(e){return{listNFTOwners:async(t,n,r,i,a,o={})=>{ax("listNFTOwners","contractAddress",t),ax("listNFTOwners","tokenId",n),ax("listNFTOwners","chainName",r);const s="/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}/owners".replace("{contract_address}",encodeURIComponent(String(t))).replace("{token_id}",encodeURIComponent(String(n))).replace("{chain_name}",encodeURIComponent(String(r))),u=new URL(s,ix);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),cx(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:dx(u),options:l}},listOwnersByContractAddress:async(t,n,r,i,a,o={})=>{ax("listOwnersByContractAddress","contractAddress",t),ax("listOwnersByContractAddress","chainName",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/owners".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,ix);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),cx(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:dx(u),options:l}}}},Ax=function(e){const t=Tx(e);return{async listNFTOwners(n,r,i,a,o,s){const u=await t.listNFTOwners(n,r,i,a,o,s);return fx(u,Ve,tx,e)},async listOwnersByContractAddress(n,r,i,a,o,s){const u=await t.listOwnersByContractAddress(n,r,i,a,o,s);return fx(u,Ve,tx,e)}}};const Ex=function(e){return{getNFT:async(t,n,r,i={})=>{ax("getNFT","contractAddress",t),ax("getNFT","tokenId",n),ax("getNFT","chainName",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{token_id}",encodeURIComponent(String(n))).replace("{chain_name}",encodeURIComponent(String(r))),o=new URL(a,ix);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};cx(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:dx(o),options:u}},listAllNFTOwners:async(t,n,r,i,a={})=>{ax("listAllNFTOwners","chainName",t),ax("listAllNFTOwners","fromUpdatedAt",n);const o="/v1/chains/{chain_name}/nft-owners".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,ix);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),cx(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:dx(s),options:c}},listAllNFTs:async(t,n,r,i,a={})=>{ax("listAllNFTs","chainName",t);const o="/v1/chains/{chain_name}/nfts".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,ix);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),cx(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:dx(s),options:c}},listNFTs:async(t,n,r,i,a,o={})=>{ax("listNFTs","contractAddress",t),ax("listNFTs","chainName",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/nfts".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,ix);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),cx(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:dx(u),options:l}},listNFTsByAccountAddress:async(t,n,r,i,a,o={})=>{ax("listNFTsByAccountAddress","accountAddress",t),ax("listNFTsByAccountAddress","chainName",n);const s="/v1/chains/{chain_name}/accounts/{account_address}/nfts".replace("{account_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,ix);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.contract_address=r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),cx(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:dx(u),options:l}}}},_x=function(e){const t=Ex(e);return{async getNFT(n,r,i,a){const o=await t.getNFT(n,r,i,a);return fx(o,Ve,tx,e)},async listAllNFTOwners(n,r,i,a,o){const s=await t.listAllNFTOwners(n,r,i,a,o);return fx(s,Ve,tx,e)},async listAllNFTs(n,r,i,a,o){const s=await t.listAllNFTs(n,r,i,a,o);return fx(s,Ve,tx,e)},async listNFTs(n,r,i,a,o,s){const u=await t.listNFTs(n,r,i,a,o,s);return fx(u,Ve,tx,e)},async listNFTsByAccountAddress(n,r,i,a,o,s){const u=await t.listNFTsByAccountAddress(n,r,i,a,o,s);return fx(u,Ve,tx,e)}}};const Ix=function(e){return{cancelOrders:async(t,n,r={})=>{ax("cancelOrders","chainName",t),ax("cancelOrders","cancelOrdersRequestBody",n);const i="/v1/chains/{chain_name}/orders/cancel".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,ix);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",cx(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=lx(n,s,e),{url:dx(a),options:s}},createListing:async(t,n,r={})=>{ax("createListing","chainName",t),ax("createListing","createListingRequestBody",n);const i="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,ix);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",cx(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=lx(n,s,e),{url:dx(a),options:s}},fulfillmentData:async(t,n,r={})=>{ax("fulfillmentData","chainName",t),ax("fulfillmentData","fulfillmentDataRequest",n);const i="/v1/chains/{chain_name}/orders/fulfillment-data".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,ix);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",cx(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=lx(n,s,e),{url:dx(a),options:s}},getListing:async(t,n,r={})=>{ax("getListing","chainName",t),ax("getListing","listingId",n);const i="/v1/chains/{chain_name}/orders/listings/{listing_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{listing_id}",encodeURIComponent(String(n))),a=new URL(i,ix);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};cx(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:dx(a),options:s}},getTrade:async(t,n,r={})=>{ax("getTrade","chainName",t),ax("getTrade","tradeId",n);const i="/v1/chains/{chain_name}/trades/{trade_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{trade_id}",encodeURIComponent(String(n))),a=new URL(i,ix);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};cx(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:dx(a),options:s}},listListings:async(t,n,r,i,a,o,s,u,c,l={})=>{ax("listListings","chainName",t);const d="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),f=new URL(d,ix);let p;e&&(p=e.baseOptions);const h={method:"GET",...p,...l},m={};void 0!==n&&(m.status=n),void 0!==r&&(m.sell_item_contract_address=r),void 0!==i&&(m.buy_item_contract_address=i),void 0!==a&&(m.sell_item_token_id=a),void 0!==o&&(m.page_size=o),void 0!==s&&(m.sort_by=s),void 0!==u&&(m.sort_direction=u),void 0!==c&&(m.page_cursor=c),cx(f,m);let y=p&&p.headers?p.headers:{};return h.headers={...y,...l.headers},{url:dx(f),options:h}},listTrades:async(t,n,r,i,a,o,s={})=>{ax("listTrades","chainName",t);const u="/v1/chains/{chain_name}/trades".replace("{chain_name}",encodeURIComponent(String(t))),c=new URL(u,ix);let l;e&&(l=e.baseOptions);const d={method:"GET",...l,...s},f={};void 0!==n&&(f.account_address=n),void 0!==r&&(f.page_size=r),void 0!==i&&(f.sort_by=i),void 0!==a&&(f.sort_direction=a),void 0!==o&&(f.page_cursor=o),cx(c,f);let p=l&&l.headers?l.headers:{};return d.headers={...p,...s.headers},{url:dx(c),options:d}}}},Rx=function(e){const t=Ix(e);return{async cancelOrders(n,r,i){const a=await t.cancelOrders(n,r,i);return fx(a,Ve,tx,e)},async createListing(n,r,i){const a=await t.createListing(n,r,i);return fx(a,Ve,tx,e)},async fulfillmentData(n,r,i){const a=await t.fulfillmentData(n,r,i);return fx(a,Ve,tx,e)},async getListing(n,r,i){const a=await t.getListing(n,r,i);return fx(a,Ve,tx,e)},async getTrade(n,r,i){const a=await t.getTrade(n,r,i);return fx(a,Ve,tx,e)},async listListings(n,r,i,a,o,s,u,c,l,d){const f=await t.listListings(n,r,i,a,o,s,u,c,l,d);return fx(f,Ve,tx,e)},async listTrades(n,r,i,a,o,s,u){const c=await t.listTrades(n,r,i,a,o,s,u);return fx(c,Ve,tx,e)}}};const Cx=function(e){return{createCounterfactualAddress:async(t,n={})=>{ax("createCounterfactualAddress","createCounterfactualAddressRequest",t);const r=new URL("/passport-mr/v1/counterfactual-address",ix);let i;e&&(i=e.baseOptions);const a={method:"POST",...i,...n},o={};await sx(o,e),o["Content-Type"]="application/json",cx(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=lx(t,a,e),{url:dx(r),options:a}},getLinkedAddresses:async(t,n={})=>{ax("getLinkedAddresses","userId",t);const r="/passport-mr/v1/users/{userId}/linked-addresses".replace("{userId}",encodeURIComponent(String(t))),i=new URL(r,ix);let a;e&&(a=e.baseOptions);const o={method:"GET",...a,...n},s={};await sx(s,e),cx(i,{});let u=a&&a.headers?a.headers:{};return o.headers={...s,...u,...n.headers},{url:dx(i),options:o}}}},Ox=function(e){const t=Cx(e);return{async createCounterfactualAddress(n,r){const i=await t.createCounterfactualAddress(n,r);return fx(i,Ve,tx,e)},async getLinkedAddresses(n,r){const i=await t.getLinkedAddresses(n,r);return fx(i,Ve,tx,e)}}};const kx=function(e){return{getERC20Token:async(t,n,r={})=>{ax("getERC20Token","contractAddress",t),ax("getERC20Token","chainName",n);const i="/v1/chains/{chain_name}/tokens/{contract_address}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,ix);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};cx(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:dx(a),options:s}},listERC20Tokens:async(t,n,r,i,a={})=>{ax("listERC20Tokens","chainName",t);const o="/v1/chains/{chain_name}/tokens".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,ix);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),cx(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:dx(s),options:c}}}},Sx=function(e){const t=kx(e);return{async getERC20Token(n,r,i){const a=await t.getERC20Token(n,r,i);return fx(a,Ve,tx,e)},async listERC20Tokens(n,r,i,a,o){const s=await t.listERC20Tokens(n,r,i,a,o);return fx(s,Ve,tx,e)}}};var Nx=Object.freeze({__proto__:null,ActiveOrderStatusNameEnum:{Active:"ACTIVE"},ActivitiesApi:class extends nx{getActivity(e,t){return hx(this.configuration).getActivity(e.chainName,e.activityId,t).then((e=>e(this.axios,this.basePath)))}listActivities(e,t){return hx(this.configuration).listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.fromIndexedAt,e.toIndexedAt,e.transactionHash,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ActivitiesApiAxiosParamCreator:px,ActivitiesApiFactory:function(e,t,n){const r=hx(e);return{getActivity:(e,i)=>r.getActivity(e.chainName,e.activityId,i).then((e=>e(n,t))),listActivities:(e,i)=>r.listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.fromIndexedAt,e.toIndexedAt,e.transactionHash,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},ActivitiesApiFp:hx,ActivityType:{Mint:"mint",Burn:"burn",Transfer:"transfer",Sale:"sale",Deposit:"deposit",Withdrawal:"withdrawal"},CancelledOrderStatusCancellationTypeEnum:{OnChain:"ON_CHAIN",OffChain:"OFF_CHAIN"},CancelledOrderStatusNameEnum:{Cancelled:"CANCELLED"},ChainsApi:class extends nx{listChains(e={},t){return yx(this.configuration).listChains(e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ChainsApiAxiosParamCreator:mx,ChainsApiFactory:function(e,t,n){const r=yx(e);return{listChains:(e={},i)=>r.listChains(e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},ChainsApiFp:yx,CollectionContractType:{Erc721:"ERC721"},CollectionsApi:class extends nx{getCollection(e,t){return bx(this.configuration).getCollection(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listCollections(e,t){return bx(this.configuration).listCollections(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listCollectionsByNFTOwner(e,t){return bx(this.configuration).listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshCollectionMetadata(e,t){return bx(this.configuration).refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,t).then((e=>e(this.axios,this.basePath)))}},CollectionsApiAxiosParamCreator:gx,CollectionsApiFactory:function(e,t,n){const r=bx(e);return{getCollection:(e,i)=>r.getCollection(e.contractAddress,e.chainName,i).then((e=>e(n,t))),listCollections:(e,i)=>r.listCollections(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listCollectionsByNFTOwner:(e,i)=>r.listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),refreshCollectionMetadata:(e,i)=>r.refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,i).then((e=>e(n,t)))}},CollectionsApiFp:bx,Configuration:class{apiKey;username;password;accessToken;basePath;baseOptions;formDataCtor;constructor(e={}){this.apiKey=e.apiKey,this.username=e.username,this.password=e.password,this.accessToken=e.accessToken,this.basePath=e.basePath,this.baseOptions=e.baseOptions,this.formDataCtor=e.formDataCtor}isJsonMime(e){const t=new RegExp("^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$","i");return null!==e&&(t.test(e)||"application/json-patch+json"===e.toLowerCase())}},ERC20ItemItemTypeEnum:{Erc20:"ERC20"},ERC721ItemItemTypeEnum:{Erc721:"ERC721"},ExpiredOrderStatusNameEnum:{Expired:"EXPIRED"},FailedOrderCancellationReasonCodeEnum:{AlreadyFilled:"ALREADY_FILLED"},FeeFeeTypeEnum:{Royalty:"ROYALTY",MakerEcosystem:"MAKER_ECOSYSTEM",TakerEcosystem:"TAKER_ECOSYSTEM",Protocol:"PROTOCOL"},FilledOrderStatusNameEnum:{Filled:"FILLED"},InactiveOrderStatusNameEnum:{Inactive:"INACTIVE"},ListListingsSortByEnum:{CreatedAt:"created_at",UpdatedAt:"updated_at",BuyItemAmount:"buy_item_amount"},ListListingsSortDirectionEnum:{Asc:"asc",Desc:"desc"},ListTradesSortByEnum:{IndexedAt:"indexed_at"},ListTradesSortDirectionEnum:{Asc:"asc",Desc:"desc"},MetadataApi:class extends nx{getMetadata(e,t){return wx(this.configuration).getMetadata(e.chainName,e.contractAddress,e.metadataId,t).then((e=>e(this.axios,this.basePath)))}listMetadata(e,t){return wx(this.configuration).listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshMetadataByID(e,t){return wx(this.configuration).refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,t).then((e=>e(this.axios,this.basePath)))}refreshNFTMetadataByTokenID(e,t){return wx(this.configuration).refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,t).then((e=>e(this.axios,this.basePath)))}},MetadataApiAxiosParamCreator:vx,MetadataApiFactory:function(e,t,n){const r=wx(e);return{getMetadata:(e,i)=>r.getMetadata(e.chainName,e.contractAddress,e.metadataId,i).then((e=>e(n,t))),listMetadata:(e,i)=>r.listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),refreshMetadataByID:(e,i)=>r.refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,i).then((e=>e(n,t))),refreshNFTMetadataByTokenID:(e,i)=>r.refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,i).then((e=>e(n,t)))}},MetadataApiFp:wx,NFTContractType:{Erc721:"ERC721"},NativeItemItemTypeEnum:{Native:"NATIVE"},NftOwnersApi:class extends nx{listNFTOwners(e,t){return Ax(this.configuration).listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listOwnersByContractAddress(e,t){return Ax(this.configuration).listOwnersByContractAddress(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftOwnersApiAxiosParamCreator:Tx,NftOwnersApiFactory:function(e,t,n){const r=Ax(e);return{listNFTOwners:(e,i)=>r.listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listOwnersByContractAddress:(e,i)=>r.listOwnersByContractAddress(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},NftOwnersApiFp:Ax,NftsApi:class extends nx{getNFT(e,t){return _x(this.configuration).getNFT(e.contractAddress,e.tokenId,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listAllNFTOwners(e,t){return _x(this.configuration).listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listAllNFTs(e,t){return _x(this.configuration).listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTs(e,t){return _x(this.configuration).listNFTs(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTsByAccountAddress(e,t){return _x(this.configuration).listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftsApiAxiosParamCreator:Ex,NftsApiFactory:function(e,t,n){const r=_x(e);return{getNFT:(e,i)=>r.getNFT(e.contractAddress,e.tokenId,e.chainName,i).then((e=>e(n,t))),listAllNFTOwners:(e,i)=>r.listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listAllNFTs:(e,i)=>r.listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTs:(e,i)=>r.listNFTs(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTsByAccountAddress:(e,i)=>r.listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},NftsApiFp:_x,OrderStatusName:{Pending:"PENDING",Active:"ACTIVE",Inactive:"INACTIVE",Filled:"FILLED",Expired:"EXPIRED",Cancelled:"CANCELLED"},OrdersApi:class extends nx{cancelOrders(e,t){return Rx(this.configuration).cancelOrders(e.chainName,e.cancelOrdersRequestBody,t).then((e=>e(this.axios,this.basePath)))}createListing(e,t){return Rx(this.configuration).createListing(e.chainName,e.createListingRequestBody,t).then((e=>e(this.axios,this.basePath)))}fulfillmentData(e,t){return Rx(this.configuration).fulfillmentData(e.chainName,e.fulfillmentDataRequest,t).then((e=>e(this.axios,this.basePath)))}getListing(e,t){return Rx(this.configuration).getListing(e.chainName,e.listingId,t).then((e=>e(this.axios,this.basePath)))}getTrade(e,t){return Rx(this.configuration).getTrade(e.chainName,e.tradeId,t).then((e=>e(this.axios,this.basePath)))}listListings(e,t){return Rx(this.configuration).listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemContractAddress,e.sellItemTokenId,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then((e=>e(this.axios,this.basePath)))}listTrades(e,t){return Rx(this.configuration).listTrades(e.chainName,e.accountAddress,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then((e=>e(this.axios,this.basePath)))}},OrdersApiAxiosParamCreator:Ix,OrdersApiFactory:function(e,t,n){const r=Rx(e);return{cancelOrders:(e,i)=>r.cancelOrders(e.chainName,e.cancelOrdersRequestBody,i).then((e=>e(n,t))),createListing:(e,i)=>r.createListing(e.chainName,e.createListingRequestBody,i).then((e=>e(n,t))),fulfillmentData:(e,i)=>r.fulfillmentData(e.chainName,e.fulfillmentDataRequest,i).then((e=>e(n,t))),getListing:(e,i)=>r.getListing(e.chainName,e.listingId,i).then((e=>e(n,t))),getTrade:(e,i)=>r.getTrade(e.chainName,e.tradeId,i).then((e=>e(n,t))),listListings:(e,i)=>r.listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemContractAddress,e.sellItemTokenId,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then((e=>e(n,t))),listTrades:(e,i)=>r.listTrades(e.chainName,e.accountAddress,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then((e=>e(n,t)))}},OrdersApiFp:Rx,PassportApi:class extends nx{createCounterfactualAddress(e,t){return Ox(this.configuration).createCounterfactualAddress(e.createCounterfactualAddressRequest,t).then((e=>e(this.axios,this.basePath)))}getLinkedAddresses(e,t){return Ox(this.configuration).getLinkedAddresses(e.userId,t).then((e=>e(this.axios,this.basePath)))}},PassportApiAxiosParamCreator:Cx,PassportApiFactory:function(e,t,n){const r=Ox(e);return{createCounterfactualAddress:(e,i)=>r.createCounterfactualAddress(e.createCounterfactualAddressRequest,i).then((e=>e(n,t))),getLinkedAddresses:(e,i)=>r.getLinkedAddresses(e.userId,i).then((e=>e(n,t)))}},PassportApiFp:Ox,PendingOrderStatusNameEnum:{Pending:"PENDING"},ProtocolDataOrderTypeEnum:{FullRestricted:"FULL_RESTRICTED"},SaleFeeTypeEnum:{Royalty:"ROYALTY"},TokenContractType:{Erc20:"ERC20"},TokensApi:class extends nx{getERC20Token(e,t){return Sx(this.configuration).getERC20Token(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listERC20Tokens(e,t){return Sx(this.configuration).listERC20Tokens(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},TokensApiAxiosParamCreator:kx,TokensApiFactory:function(e,t,n){const r=Sx(e);return{getERC20Token:(e,i)=>r.getERC20Token(e.contractAddress,e.chainName,i).then((e=>e(n,t))),listERC20Tokens:(e,i)=>r.listERC20Tokens(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},TokensApiFp:Sx});class xx extends Error{code;details;link;traceId;constructor({message:e,code:t,details:n,link:r,trace_id:i}){super(e),this.code=t,this.details=n,this.link=r,this.traceId=i}}const Px={sdkVersion:"ts-immutable-sdk-multi-rollup-api-client-__SDK_VERSION__"},Mx=({baseConfig:e,basePath:t,headers:n})=>{if(!t.trim())throw Error("basePath can not be empty");const r={...e,basePath:t,baseOptions:{headers:{...n||{},...Px}}};return new Nx.Configuration(r)};class Bx{apiConfig;baseConfig;constructor({baseConfig:e,overrides:t}){if(this.baseConfig=e,t)this.apiConfig=Mx(t);else switch(e.environment){case st.SANDBOX:this.apiConfig=Mx({basePath:"https://api.sandbox.immutable.com",baseConfig:e});break;case st.PRODUCTION:this.apiConfig=Mx({basePath:"https://indexer-mr.imtbl.com",baseConfig:e});break;default:this.apiConfig=Mx({basePath:"https://api.sandbox.immutable.com",baseConfig:e})}}}function Dx(e){if(Ve.isAxiosError(e)&&e.response){const t=e.response.data;return t.code&&t.message?new xx({code:t.code,message:t.message,details:t.details||null,link:t.link||"",trace_id:t.trace_id||""}):new xx({code:e.code??e.response?.status.toString()??"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}return new xx({code:"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}class Fx{config;activities;chains;collections;nfts;nftOwners;tokens;metadata;constructor(e){this.config=new Bx(e),this.activities=new Nx.ActivitiesApi(this.config.apiConfig),this.chains=new Nx.ChainsApi(this.config.apiConfig),this.collections=new Nx.CollectionsApi(this.config.apiConfig),this.nfts=new Nx.NftsApi(this.config.apiConfig),this.nftOwners=new Nx.NftOwnersApi(this.config.apiConfig),this.tokens=new Nx.TokensApi(this.config.apiConfig),this.metadata=new Nx.MetadataApi(this.config.apiConfig)}async listActivities(e){return await this.activities.listActivities(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async getActivity(e){return await this.activities.getActivity(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async listChains(e){return await this.chains.listChains(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async listCollections(e){return await this.collections.listCollections(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async listCollectionsByNFTOwner(e){return await this.collections.listCollectionsByNFTOwner(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async getCollection(e){return await this.collections.getCollection(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async getNFT(e){return await this.nfts.getNFT(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async listNFTs(e){return await this.nfts.listNFTs(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async listNFTsByAccountAddress(e){return await this.nfts.listNFTsByAccountAddress(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async listAllNFTs(e){return await this.nfts.listAllNFTs(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async listNFTOwners(e){return await this.nftOwners.listNFTOwners(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async listNFTOwnersByContractAddress(e){return await this.nftOwners.listOwnersByContractAddress(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async listAllNFTOwners(e){return await this.nfts.listAllNFTOwners(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async listTokens(e){return await this.tokens.listERC20Tokens(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async getToken(e){return await this.tokens.getERC20Token(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async getMetadata(e){return await this.metadata.getMetadata(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async listNFTMetadataByContractAddress(e){return await this.metadata.listMetadata(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async refreshCollectionMetadata(e){return await this.collections.refreshCollectionMetadata(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async refreshNFTMetadata(e){return await this.metadata.refreshNFTMetadataByTokenID(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}async refreshStackedMetadata(e){return await this.metadata.refreshMetadataByID(e).then((e=>e.data)).catch((e=>{throw Dx(e)}))}}async function Lx(t,n,r,i){const a=r.get(t),o=r.get(n);if(!a)throw new lm(`Chain:${t} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(!o)throw new lm(`Chain:${n} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);let s=Gm;i.isDevelopment&&(s=jm),i.isProduction&&(s=Hm);const u=new rv({baseConfig:new ut({environment:i.environment}),bridgeInstance:s,rootProvider:a,childProvider:o});return new $b(u)}async function Ux(e,t){const n=await t.remote.getConfig("dex");return new UR({chainId:e,baseConfig:new ut({environment:t.environment}),overrides:n?.overrides})}function qx(e){return new ZN({baseConfig:{environment:e.environment}})}function jx(e,t,n){return new vl(e,t,n)}const Gx="0x0000000000000000000000000000000000000001",Hx=18;async function zx(t,n,r,i){const a=bm(n),o=vm(n),s=await n.remote.getConfig("gasEstimateTokens"),{gasTokenAddress:u,fromAddress:c}=s[a].bridgeToL2Addresses,l=t.get(a);if(!l)throw new Error(`Missing JsonRpcProvider for chain id: ${a}`);try{const s=await async function(e,t){const n=await Fm(e);return n&&t?{estimatedAmount:n.add(n)}:{estimatedAmount:n}}(l,r);s.token=await async function(e,t,n,r){if("NATIVE"===t)return e.networkMap.get(n)?.nativeCurrency;const i=new vl(t,JSON.stringify(tm),r);return{name:await i.name(),symbol:await i.symbol(),decimals:await i.decimals(),address:t}}(n,i??(u||"NATIVE"),a,l);const d=await Lx(a,o,t,n),{bridgeFee:f,bridgeable:p}=await async function(e,t){const n=await e.getFee({token:t});return{bridgeFee:{estimatedAmount:n.feeAmount},bridgeable:n.bridgeable}}(d,c);return{gasEstimateType:e.GasEstimateType.BRIDGE_TO_L2,gasFee:s,bridgeFee:{estimatedAmount:f?.estimatedAmount,token:f?.token},bridgeable:p}}catch{return{gasEstimateType:e.GasEstimateType.BRIDGE_TO_L2,gasFee:{},bridgeFee:{},bridgeable:!1}}}async function Vx(t,n,r){switch(t.gasEstimateType){case e.GasEstimateType.BRIDGE_TO_L2:return await zx(n,r,t.isSpendingCapApprovalRequired,t.tokenAddress);case e.GasEstimateType.SWAP:return await async function(t){const n=vm(t),r=await t.remote.getConfig("gasEstimateTokens"),{inAddress:i,outAddress:a}=r[n].swapAddresses;try{const r=await Ux(n,t),{swap:o}=await r.getUnsignedSwapTxFromAmountIn(Gx,i,a,tr.from(Oh("1",Hx)));if(null===o.gasFeeEstimate)return{gasEstimateType:e.GasEstimateType.SWAP,gasFee:{}};let s;return o.gasFeeEstimate.value&&(s=tr.from(o.gasFeeEstimate.value)),{gasEstimateType:e.GasEstimateType.SWAP,gasFee:{estimatedAmount:s,token:{address:o.gasFeeEstimate?.token.address,symbol:o.gasFeeEstimate?.token.symbol??"",name:o.gasFeeEstimate?.token.name??"",decimals:o.gasFeeEstimate?.token.decimals??Hx}}}}catch{return{gasEstimateType:e.GasEstimateType.SWAP,gasFee:{}}}}(r);default:throw new lm("Invalid type provided for gasEstimateType",e.CheckoutErrorType.INVALID_GAS_ESTIMATE_TYPE)}}const Wx=t=>(t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC721)return void r.push(t);const{contractAddress:a,spenderAddress:o,id:s}=t,u=`${a}${o}${s}`;n.get(u)||n.set(u,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC20)return void r.push(t);const{contractAddress:a,spenderAddress:o,amount:s}=t,u=`${a}${o}`,c=n.get(u);c&&c.type===e.ItemType.ERC20?c.amount=tr.from(c.amount).add(s):n.set(u,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.NATIVE)return void r.push(t);const{amount:a}=t,o=n.get(i);o&&o.type===e.ItemType.NATIVE?o.amount=tr.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),Kx=async(t,n,r,i)=>{try{const e=new vl(r,JSON.stringify(tm),t);return await e.allowance(n,i)}catch(t){throw new lm("Failed to get the allowance for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r})}},Xx=async(t,n,r,i,a)=>{try{const e=new vl(r,JSON.stringify(tm),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch{throw new lm("Failed to get the approval transaction for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r})}},Jx=async(t,n,r,i)=>{try{const e=new vl(r,JSON.stringify(nm),t);return await e.isApprovedForAll(n,i)}catch(t){throw new lm("Failed to check approval for all ERC721s of collection",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{ownerAddress:n,contractAddress:r,spenderAddress:i})}},Yx=async(t,n,r,i,a)=>{try{const e=new vl(r,JSON.stringify(nm),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch(t){throw new lm("Failed to get the approval transaction for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:a.toString(),contractAddress:r,spenderAddress:i,ownerAddress:n})}},Qx=async(t,n,r)=>{try{const e=new vl(n,JSON.stringify(nm),t);return await e.getApproved(r)}catch(t){throw new lm("Failed to get approved address for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:r.toString(),contractAddress:n})}},$x=(t,n)=>{const r=parseInt(t,10);if(Number.isNaN(r))throw new lm("Invalid ERC721 ID",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:t,contractAddress:n});return r},Zx=async(t,n,r)=>{let i=!0;const a=[],o=new Map,s=new Map,u=new Map,c=new Map,l=await(async(t,n,r)=>{const i=new Map,a=new Map;for(const o of n){if(o.type!==e.ItemType.ERC721)continue;const{contractAddress:n,spenderAddress:s}=o,u=`${n}-${s}`;i.set(u,!1),a.has(u)||a.set(u,Jx(t,r,n,s))}const o=await Promise.all(a.values()),s=Array.from(a.keys());return o.forEach(((e,t)=>{i.set(s[t],e)})),i})(t,r,n);for(const n of r){if(n.type!==e.ItemType.ERC721)continue;const{contractAddress:r,id:i,spenderAddress:u}=n,c=`${r}-${u}`;if(l.get(c)){a.push({sufficient:!0,itemRequirement:n});continue}const d=`${r}-${i}`,f=$x(i,r);o.set(d,n),s.set(d,Qx(t,r,f))}const d=await Promise.all(s.values()),f=Array.from(s.keys());for(let r=0;r<d.length;r++){const s=o.get(f[r]);if(!s||s.type!==e.ItemType.ERC721)continue;if(d[r]===s.spenderAddress){a.push({sufficient:!0,itemRequirement:s});continue}i=!1;const{contractAddress:l,id:p,spenderAddress:h}=s,m=`${l}-${p}`,y=$x(p,l);u.set(m,{type:e.ItemType.ERC721,sufficient:!1,itemRequirement:s,approvalTransaction:void 0}),c.set(m,Yx(t,n,l,h,y))}const p=await Promise.all(c.values()),h=Array.from(c.keys());return p.forEach(((e,t)=>{const n=u.get(h[t]);n&&(n.sufficient||(n.approvalTransaction=e))})),{sufficient:i,allowances:a.concat(Array.from(u.values()))}},eP=t=>(t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC721)return void r.push(t);const{contractAddress:a,id:o}=t,s=`${a}${o}`;n.get(s)||n.set(s,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC20)return void r.push(t);const{contractAddress:a,amount:o}=t,s=`${a}`,u=n.get(s);u&&u.type===e.ItemType.ERC20?u.amount=tr.from(u.amount).add(o):n.set(s,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.NATIVE)return void r.push(t);const{amount:a}=t,o=n.get(i);o&&o.type===e.ItemType.NATIVE?o.amount=tr.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),tP=(t,n)=>{const r=tr.from(1),i=n.find((e=>{const n=e;return n.contractAddress===t.contractAddress&&n.id===t.id})),a=r.isNegative()||r.isZero()||(i?.balance.gte(r)??!1),o=r.sub(i?.balance??tr.from(0));let s=i;return s||(s={type:e.ItemType.ERC721,balance:tr.from(0),formattedBalance:"0",contractAddress:t.contractAddress,id:t.id}),{sufficient:a,type:e.ItemType.ERC721,delta:{balance:o,formattedBalance:o.toString()},current:s,required:{...s,balance:tr.from(1),formattedBalance:"1"}}},nP=async(t,n,r,i)=>{let a=[];try{const o=(t=>t.map((t=>t.type===e.ItemType.NATIVE?{address:Vh}:{address:t.contractAddress})))(i),{balances:s}=await km(t,n,r,o);a=[...s.map((e=>e))]}catch(t){throw new lm("Failed to get balances",e.CheckoutErrorType.GET_BALANCE_ERROR)}return a},rP=async(t,n,r,i)=>{const a=eP(i);if(a.filter((t=>t.type!==e.ItemType.ERC721&&t.type!==e.ItemType.ERC20&&t.type!==e.ItemType.NATIVE)).length>0)throw new lm("Unsupported item requirement balance check",e.CheckoutErrorType.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR);const o=[],s=a.filter((t=>t.type===e.ItemType.ERC20||t.type===e.ItemType.NATIVE));s.length>0&&o.push(nP(t,n,r,a));const u=a.filter((t=>t.type===e.ItemType.ERC721));u.length>0&&o.push((async(t,n,r)=>{const i=[],a=new Map,o=new Map;r.forEach((n=>{if(n.type!==e.ItemType.ERC721)return;const r=new vl(n.contractAddress,JSON.stringify(nm),t);a.set(n.contractAddress,n),o.set(n.contractAddress,r.ownerOf(n.id))}));try{const t=await Promise.all(o.values()),r=Array.from(o.keys());t.forEach(((t,o)=>{const s=a.get(r[o]);let u=0;s&&n===t&&(u=1),i.push({type:e.ItemType.ERC721,balance:tr.from(u),formattedBalance:u.toString(),contractAddress:s.contractAddress,id:s.id})}))}catch(t){throw new lm("Failed to get ERC721 balances",e.CheckoutErrorType.GET_ERC721_BALANCE_ERROR)}return i})(n,r,a));const c=await Promise.all(o).then((t=>{const n=[];if(t.length>1||s.length>0){const r=t[0];if(s.forEach((t=>{n.push(((t,n)=>{let r;t.type===e.ItemType.ERC20?r=n.find((e=>e.token?.address===t.contractAddress)):t.type===e.ItemType.NATIVE&&(r=n.find((e=>""===e.token?.address||e.token?.address===Vh)));const i=t.amount,a=i.isNegative()||i.isZero()||(r?.balance.gte(i)??!1),o=i.sub(r?.balance??tr.from(0));let s="",u="",c=Wh;r&&(c=r.token?.decimals??Wh,s=r.token.name,u=r.token.symbol);let l=r;return t.type===e.ItemType.NATIVE?(l||(l={type:e.ItemType.NATIVE,balance:tr.from(0),formattedBalance:"0",token:{name:s,symbol:u,decimals:Wh,address:Vh}}),{sufficient:a,type:e.ItemType.NATIVE,delta:{balance:o,formattedBalance:Ch(o,c)},current:{...l,type:e.ItemType.NATIVE},required:{...l,type:e.ItemType.NATIVE,balance:tr.from(t.amount),formattedBalance:Ch(t.amount,c)}}):(l||(l={type:t.type,balance:tr.from(0),formattedBalance:"0",token:{name:s,symbol:u,address:t.contractAddress,decimals:c}}),{sufficient:a,type:e.ItemType.ERC20,delta:{balance:o,formattedBalance:Ch(o,c)},current:l,required:{...l,balance:tr.from(t.amount),formattedBalance:Ch(t.amount,c)}})})(t,r))})),u.length>0){const e=t[1];u.forEach((t=>{n.push(tP(t,e))}))}}else if(u.length>0){const e=t[0];u.forEach((t=>{n.push(tP(t,e))}))}return n}));return{sufficient:c.reduce(((e,t)=>e&&t.sufficient),!0),balanceRequirements:c}},iP=async(t,n)=>{try{return await t.estimateGas(n)}catch(t){throw new lm("Failed to estimate gas for transaction",e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT)}},aP=async(t,n,r)=>{const i=[];let a=tr.from(0);for(const e of n)void 0!==e.approvalTransaction&&i.push(iP(t,e.approvalTransaction));if(r.type===e.TransactionOrGasType.TRANSACTION)i.push(iP(t,r.transaction));else{const e=await t.getFeeData(),n=Dm(e);if(null!==n){const e=n?.mul(r.gasToken.limit);e&&(a=a.add(e))}}return(await Promise.all(i)).forEach((e=>{a=a.add(e)})),a.eq(0)?null:((t,n)=>n.type===e.TransactionOrGasType.TRANSACTION||n.gasToken.type===e.GasTokenType.NATIVE?{type:e.ItemType.NATIVE,amount:t}:{type:e.ItemType.ERC20,amount:t,contractAddress:n.gasToken.contractAddress,spenderAddress:""})(a,r)},oP=(t,n)=>({checkDexAvailability:async()=>{let r;try{r=await Ve.post(`${t?Xh[zh]:n?Xh[st.PRODUCTION]:Xh[st.SANDBOX]}/v1/availability/checkout/swap`)}catch(e){r=e.response}if(403===r.status)return!1;if(204===r.status)return!0;throw new lm(`Error fetching from api: ${r.status} ${r.statusText}`,e.CheckoutErrorType.API_ERROR)}}),sP=async()=>!0,uP=async e=>{const t=oP(e.isDevelopment,e.isProduction);try{return await t.checkDexAvailability()}catch{return!1}};async function cP(t,n){if(t.isProduction&&n?.has(e.ChainId.ETHEREUM))return n;if(n?.has(e.ChainId.SEPOLIA))return n;const r=new Map;return(await pm(t,{type:e.NetworkFilterTypes.ALL})).networks.forEach((e=>{const n=t.networkMap.get(e.chainId)?.rpcUrls[0],i=new up(n);r.set(e.chainId,i)})),r}const lP=async(e,t,n,r,i)=>{const a=new Map;try{const o=await Ux(t,e),s=[],u=[];for(const e of i)e!==r.address&&(s.push(o.getUnsignedSwapTxFromAmountOut(n,e,r.address,r.amount,1)),u.push(e));return(await Im(e,"Time to resolve swap quotes from the dex",Promise.allSettled(s))).forEach(((e,t)=>{if("rejected"===e.status)return;const n=u[t];a.set(n,{quote:e.value.quote,approval:e.value.approval?.gasFeeEstimate??null,swap:e.value.swap.gasFeeEstimate})})),a}catch{return a}},dP=(e,t,n)=>{let r,i=tr.from(0),a="0";e&&(i=e.value,a=Ch(e.value,e.token.decimals),r={name:e.token.name??"",symbol:e.token.symbol??"",address:e.token.address,decimals:e.token.decimals});let o,s=tr.from(0),u="0";t&&(s=t.value,u=Ch(t.value,t.token.decimals),o={name:t.token.name??"",symbol:t.token.symbol??"",address:t.token.address,decimals:t.token.decimals});const c=[];for(const e of n)c.push({amount:e.amount.value,formattedAmount:Ch(e.amount.value,e.amount.token.decimals),token:{name:e.amount.token.name??"",symbol:e.amount.token.symbol??"",address:e.amount.token.address,decimals:e.amount.token.decimals}});return{approvalGasFees:{amount:i,formattedAmount:a,token:r},swapGasFees:{amount:s,formattedAmount:u,token:o},swapFees:c}},fP=(t,n,r,i)=>{const a=r.token.address;let o=e.ItemType.ERC20;return a===Vh&&(o=e.ItemType.NATIVE),{type:e.FundingStepType.SWAP,chainId:t,fundingItem:{type:o,fundsRequired:{amount:n,formattedAmount:Ch(n,r.token.decimals)},userBalance:{balance:r.balance,formattedBalance:r.formattedBalance},token:r.token},fees:i}},pP=(e,t)=>{if(!t)return{sufficient:!0,approvalGasFee:tr.from(0),approvalGasTokenAddress:""};const n=t.value,r=t.token.address;if(0===e.length)return{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r};const i=e.find((e=>e.token.address===r));return i?i.balance.lt(n)?{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!0,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}},hP=(e,t,n,r,i)=>{const a=new Map;if(""!==t.approvalGasTokenAddress&&a.set(t.approvalGasTokenAddress,t.approvalGasFee),n){const e=a.get(n.token.address);e?a.set(n.token.address,e.add(n.value)):a.set(n.token.address,n.value)}if(i){const e=a.get(i.address);e?a.set(i.address,e.add(i.amount)):a.set(i.address,i.amount)}for(const e of r){const t=a.get(e.amount.token.address);t?a.set(e.amount.token.address,t.add(e.amount.value)):a.set(e.amount.token.address,e.amount.value)}for(const[t,n]of a.entries()){if(n===tr.from(0))continue;const r=e.find((e=>e.token.address===t));if(!r)return!1;if(r.balance.lt(n))return!1}return!0},mP=(t,n,r,i,a,o)=>{let s=tr.from(0),u="",c=!1;if(n.balanceRequirements.forEach((n=>{n.type!==e.ItemType.NATIVE&&n.type!==e.ItemType.ERC20||n.required.token.address===r&&(u=n.required.token.address,c=!0,s=t.sub(n.required.balance))})),!c)return!0;a.approvalGasTokenAddress===u&&(s=s.sub(a.approvalGasFee));for(const e of o)e.amount.token.address===u&&(s=s.sub(e.amount.value));return s.gte(i)},yP=async(t,n,r,i,a,o,s)=>{const u=[];if(!n.swap)return u;if(0===o.length)return u;const c=(t=>{let n="",r=tr.from(0);switch(t.type){case e.ItemType.ERC20:n=t.required.token.address??"",r=t.delta.balance;break;case e.ItemType.NATIVE:n=Vh,r=t.delta.balance}return{address:n,amount:r}})(i);if(""===c.address)return u;const l=vm(t),d=a.get(l);if(!d)return u;const f=d.balances;if(0===f.length)return u;const p=await lP(t,vm(t),r,c,o),h=Array.from(p.keys());for(const e of h){const t=p.get(e);if(!t)continue;const n=f.find((t=>t.token.address===e));if(!n)continue;const r=t.quote.amount;if(n.balance.lt(r.value))continue;const i=pP(f,t.approval);if(!i.sufficient)continue;if(!hP(f,i,t.swap,t.quote.fees,{amount:r.value,address:e}))continue;if(!mP(n.balance,s,e,r.value,i,t.quote.fees))continue;const a=dP(t.approval,t.swap,t.quote.fees);u.push(fP(l,r.value,n,a))}return u},gP=(e,t)=>t&&t.success?e.filter((e=>"address"in e?t.balances.find((t=>t.token.address===e.address&&t.balance.gt(0))):t.balances.find((e=>!("address"in e.token)&&e.balance.gt(0))))):[],bP=async(e,t)=>{if(t.onRamp){const t=await e.remote.getConfig("onramp"),n={};return Object.entries(t).forEach((([e,t])=>{n[e]=t.tokens??[]})),n}return{}},vP=async(e,t,n)=>{if(n.bridge){const n=(await e.remote.getConfig("bridge"))?.tokens??[],r=t.get(bm(e));return gP(n,r)}return[]},wP=async(e,t,n)=>{const r={};return r.swap=await(async(e,t,n)=>{if(n.swap){const n=(await e.remote.getConfig("dex"))?.tokens??[],r=t.get(vm(e));return gP(n,r)}return[]})(e,t,n),r.bridge=await vP(e,t,n),r.onRamp=await bP(e,n),r},TP="0x0000000000000000000000000000000000000001",AP=async(e,t)=>(await t.remote.getConfig("imxAddressMapping"))[e]??"",EP=async(t,n)=>{if(""===n)return{l1address:"",l2address:n};if(n===Vh)return{l1address:await AP(bm(t),t),l2address:Vh};const r=vm(t)===e.ChainId.IMTBL_ZKEVM_TESTNET?"imtbl-zkevm-testnet":"";if(""===r)return{l1address:"",l2address:n};const i=function(e){return new Fx({baseConfig:{environment:e.environment}})}(t),a=(await i.getToken({chainName:r,contractAddress:n})).result.root_contract_address;return null===a?{l1address:"",l2address:n}:{l1address:a,l2address:n}},_P=async(t,n,r,i,a,o)=>{if(a===TP)return tr.from(0);const s=bm(t),u=vm(t);return await(async(t,n,r,i,a,o,s,u)=>{try{const e=await Lx(a,o,n,t),{unsignedTx:c}=await e.getUnsignedApproveDepositBridgeTx({depositorAddress:i,token:s,depositAmount:u});return null===c?tr.from(0):await r.estimateGas(c)}catch(t){throw new lm("Error occurred while attempting ot estimate gas for approval transaction",e.CheckoutErrorType.BRIDGE_GAS_ESTIMATE_ERROR,{message:t.message})}})(t,n,r,i,s,u,a,o)},IP=(e,t)=>(e=>{for(const t of e.balances)if(!t.token.address||""===t.token.address)return t.balance;return tr.from(0)})(e).gte(t),RP=async(t,n,r)=>{let i=r.get(e.FundingStepType.BRIDGE);return i||(i=await(async(t,n)=>{try{const r=await Vx({gasEstimateType:e.GasEstimateType.BRIDGE_TO_L2,isSpendingCapApprovalRequired:!1},n,t),i=r.gasFee.estimatedAmount,a=r.bridgeFee.estimatedAmount;let o=tr.from(0);return i&&(o=o.add(i)),a&&(o=o.add(a)),{type:e.FundingStepType.BRIDGE,gasFee:{estimatedAmount:i??tr.from(0),token:r.gasFee.token},bridgeFee:{estimatedAmount:a??tr.from(0),token:r.bridgeFee.token},totalFees:o}}catch(t){throw new lm("Error estimating gas for bridge",e.CheckoutErrorType.BRIDGE_GAS_ESTIMATE_ERROR,{message:t.message})}})(t,n),r.set(e.FundingStepType.BRIDGE,i),i)},CP=(e,t,n)=>{const r=n.token?.decimals??Wh;return{approvalGasFees:{amount:e,formattedAmount:Ch(e,Wh),token:t.token},bridgeGasFees:{amount:t.estimatedAmount,formattedAmount:Ch(t.estimatedAmount,Wh),token:t.token},bridgeFees:[{amount:n.estimatedAmount,formattedAmount:Ch(n.estimatedAmount,r),token:n.token}]}},OP=(t,n,r,i,a)=>({type:e.FundingStepType.BRIDGE,chainId:t,fundingItem:{type:i,fundsRequired:{amount:r.amount,formattedAmount:r.formattedAmount},userBalance:{balance:n.balance,formattedBalance:n.formattedBalance},token:{name:n.token.name,symbol:n.token.symbol,address:n.token.address,decimals:n.token.decimals}},fees:a}),kP=async(t,n,r,i,a,o,s)=>{if(!i.bridge)return;if(void 0===a.l2address||""===a.l2address)return;const u=bm(t),c=o.get(u),l=n.get(u);if(!l)throw new lm("No L1 provider available",e.CheckoutErrorType.PROVIDER_ERROR,{chainId:u.toString()});if(void 0===c||!1===c.success)return;const d=await vP(t,o,i);if(0===d.length)return;const f=await RP(t,n,s);if(!IP(c,f.totalFees))return;const p=await EP(t,a.l2address),{l1address:h}=p;if(""===h)return;if(h===TP){if(!d.find((e=>!("address"in e))))return}else if(!d.find((e=>e.address===h)))return;const m=await _P(t,n,l,r,h,a.amount);let y=f.bridgeFee.estimatedAmount;if(h===TP){const t=c.balances.find((e=>{return!(t=e.token.address)||""===t;var t}));if(f.gasFee.estimatedAmount&&(y=y.add(f.gasFee.estimatedAmount)),!IP(c,y))return;if(t&&t.balance.gte(a.amount.add(y))){const n=CP(m,f.gasFee,f.bridgeFee);return OP(u,t,a,e.ItemType.NATIVE,n)}return}if(y.add(m).add(f.gasFee.estimatedAmount),!IP(c,y))return;const g=c.balances.find((e=>e.token.address===h));if(g&&g.balance.gte(a.amount)){const t=CP(m,f.gasFee,f.bridgeFee);return OP(u,g,a,e.ItemType.ERC20,t)}},SP=(e,t)=>{let n=tr.from(0);return e.quote.fees.forEach((e=>{e.amount.token.address===t&&(n=n.add(e.amount.value))})),e.approval&&e.approval.token.address===t&&(n=n.add(e.approval.value)),n},NP=(t,n)=>{for(const r of t.balanceRequirements)if((r.type===e.ItemType.NATIVE||r.type===e.ItemType.ERC20)&&r.required.token.address===n)return r.required.balance;return tr.from(0)},xP=(e,t,n)=>{const r=n?.balance??tr.from(0);if(r.gte(e.add(t)))return tr.from(0);if(r.lte(0))return e.add(t);const i=r.sub(t);return i.gte(0)?e.sub(i):e.add(t).sub(r)},PP=async(e,t,n,r,i,a,o,s,u,c)=>{const{l1balances:l,l2balances:d}=((e,t)=>{const n={l1balances:[],l2balances:[]},r=t.get(bm(e)),i=t.get(vm(e));return r?void 0!==r.error?n:r.success&&i?void 0!==i.error?n:i.success?{l1balances:r.balances,l2balances:i.balances}:n:n:n})(e,o),f=r.required.token.address;if(((e,t,n,r,i,a)=>0===e.length||0===t.length||0===n.length||0===r.length||!i.bridge||!i.swap||void 0===a||""===a)(s,u,l,d,n,f))return[];const p=await(async(e,t)=>{const n=t.map((t=>EP(e,t.address??"")));return await Promise.all(n)})(e,u),h=((e,t,n,r)=>{const i=[];for(const a of r){if(""===a.l1address)continue;if(""===a.l2address)continue;if(!t.includes(a.l1address))continue;if(a.l2address===e)continue;const r=n.find((e=>e.address===a.l2address));r&&i.push(r)}return i})(f,s,u,p);if(0===h.length)return[];const m=await(async(e,t,n,r,i)=>{const a=[];for(const e of i)e.address&&a.push(e.address);return await lP(e,vm(e),t,{address:n,amount:r.delta.balance},a)})(e,i,f,r,h),y=((e,t,n,r,i)=>{const a=[];for(const[o,s]of e){const e=n.find((e=>e.token.address===o)),u=r.find((e=>e.l2address===o));if(!u)continue;const{l1address:c,l2address:l}=u;if(!c)continue;const d=t.find((e=>void 0===e.token.address&&c===TP||e.token.address===c));if(!d)continue;const f=s.quote.amountWithMaxSlippage.value,p=SP(s,o),h=f.add(p),m=NP(i,o),y=xP(h,m,e);y.lte(0)||y.gte(d.balance)||a.push({amount:y,formattedAmount:Ch(y,d.token.decimals),l2address:l})}return a})(m,l,d,p,c);if(0===y.length)return[];const g=new Map,b=new Map,v=[];for(const r of y)r.l2address&&(g.set(r.l2address,kP(e,t,i,n,r,o,a)),b.set(r.l2address,{amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address}));const w=await Promise.all(g.values()),T=Array.from(g.keys()),A=[];if(w.forEach(((e,t)=>{const n=T[t];if(void 0===e)return;A.push(n);const r=b.get(n);r&&v.push({amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address})})),0===A.length)return[];if(0===v.length)return[];const E=((e,t,n,r,i)=>{const a=new Map;for(const[e,n]of t)a.set(e,{success:n.success,balances:n.balances});const o=new Map;for(const e of n)e.token.address&&o.set(e.token.address,e);for(const e of r){const{amount:t,l2address:n}=e;if(""===n)continue;let r=tr.from(0);const a=o.get(n);a&&(r=a.balance);const s=r.add(t),u=i.find((e=>e.address===n));o.set(n,{balance:s,formattedBalance:Ch(s,u.decimals),token:u})}const s=Array.from(o.values());return a.set(vm(e),{success:!0,balances:s}),a})(e,o,d,v,u),_=await yP(e,n,i,r,E,A,c);if(!_)return[];const I=((e,t)=>{const n=[];for(const r of t){const{chainId:t,fundingItem:i}=r,{userBalance:a}=r.fundingItem,o=e.get(t);if(!o)continue;let s=tr.from(0),u="0";const c=o.balances.find((e=>e.token.address===i.token.address));c&&(s=c.balance,u=c.formattedBalance),a.balance=s,a.formattedBalance=u,n.push(r)}return n})(o,_);return((e,t,n)=>{const r=[];for(const i of e){if(!i)continue;const e=n.find((e=>void 0===i.fundingItem.token.address?e.l1address===TP&&e.l2address:e.l1address===i.fundingItem.token.address&&e.l2address));if(!e)continue;const a=t.find((t=>t.fundingItem.token.address===e.l2address));a&&r.push({bridgeFundingStep:i,swapFundingStep:a})}return r})(w,I,p)},MP=async(t,n,r)=>{if(!n.onRamp)return;if(void 0===r)return;const i=await(async(t,n,r)=>{if(r.type!==e.ItemType.ERC20&&r.type!==e.ItemType.NATIVE)return;const{required:i,current:a,delta:o}=r;let s=!1;const u=await bP(t,n);return Object.values(u).forEach((e=>{e.length>0&&!s&&(s=!!e.find((e=>e.address===i.token?.address)))})),s?{type:e.FundingStepType.ONRAMP,chainId:vm(t),fundingItem:{type:i.token.address===Vh?e.ItemType.NATIVE:e.ItemType.ERC20,fundsRequired:{amount:o.balance,formattedAmount:o.formattedBalance},userBalance:{balance:a.balance,formattedBalance:a.formattedBalance},token:i.token}}:void 0})(t,n,r);return i},BP=async(t,n,r,i)=>{if(!(e=>e.bridge||e.swap||e.onRamp)(i))return{type:e.RoutingOutcomeType.NO_ROUTE_OPTIONS,message:"No routing options are available"};let a;try{a=await cP(t)}catch(t){throw new lm("Error occurred while creating read only providers",e.CheckoutErrorType.PROVIDER_ERROR,{message:t.message})}const o=await Im(t,"Time to get token balances inside router",(async(t,n,r,i)=>{const a=new Map,o=new Map;if(0===n.size){const n={success:!1,error:new lm("No L1 or L2 provider available",e.CheckoutErrorType.PROVIDER_ERROR),balances:[]};return a.set(bm(t),n),a.set(vm(t),n),a}if(i.bridge){const i=bm(t);n.has(i)?o.set(i,Sm(t,n.get(i),r,i)):a.set(bm(t),{success:!1,error:new lm(`No L1 provider available for ${i}`,e.CheckoutErrorType.PROVIDER_ERROR),balances:[]})}const s=vm(t);if(n.has(s)?o.set(s,Sm(t,n.get(s),r,s)):a.set(vm(t),{success:!1,error:new lm(`No L2 provider available for ${s}`,e.CheckoutErrorType.PROVIDER_ERROR),balances:[]}),o.size>0){const t=Array.from(o.keys());(await Promise.allSettled(o.values())).forEach(((n,r)=>{const i=t[r];"fulfilled"===n.status?a.set(i,{success:!0,balances:n.value.balances}):a.set(i,{success:!1,error:new lm(`Error getting ${s} balances`,e.CheckoutErrorType.GET_BALANCE_ERROR),balances:[]})}))}return a})(t,a,n,i)),s=await Im(t,"Time to get routing allowlist",wP(t,o,i)),u=new Map,c=(e=>{let t,n=0;for(const r of e.balanceRequirements)r.sufficient||(n++,t=r);if(1===n)return t})(r),l=[];l.push((async(t,n,r,i,a,o,s)=>{let u;if(void 0===i)return;if(i.type!==e.ItemType.NATIVE&&i.type!==e.ItemType.ERC20)return;const c={amount:i.delta.balance,formattedAmount:i.delta.formattedBalance,l2address:i.required.token.address??""};return r.bridge&&i&&(u=await kP(t,n,a,r,c,o,s)),u})(t,a,i,c,n,o,u)),l.push((async(e,t,n,r,i,a,o)=>{const s=[];if(!t.swap)return s;if(void 0===n)return s;if(void 0===a)return s;const u=i.get(vm(e));if(!u)return s;if(void 0!==u.error||!u.success)return s;if(0===a.length)return s;const c=a.filter((e=>e.address)).map((e=>e.address));return 0===c.length?s:await yP(e,t,r,n,i,c,o)})(t,i,c,n,o,s.swap,r)),l.push(MP(t,i,c)),l.push((async(t,n,r,i,a,o,s,u,c)=>{if(!i)return[];const l=o.get(bm(t)),d=o.get(vm(t));if(!l)return[];if(void 0!==l.error||!l.success)return[];if(!d)return[];if(void 0!==d.error||!d.success)return[];const f=(s?.bridge??[]).map((e=>void 0===e.address?TP:e.address)),p=s?.swap??[];return i.type!==e.ItemType.NATIVE&&i.type!==e.ItemType.ERC20?[]:await PP(t,n,r,i,a,u,o,f,p,c)})(t,a,i,c,n,o,s,u,r));const d=await Im(t,"Time to resolve all routes",Promise.all(l));let f,p,h=[],m=[];if(d.forEach(((e,t)=>{0===t&&(f=e),1===t&&(h=e),2===t&&(p=e),3===t&&(m=e)})),!f&&0===h.length&&!p&&0===m.length)return{type:e.RoutingOutcomeType.NO_ROUTES_FOUND,message:"Smart Checkout did not find any funding routes to fulfill the transaction"};const y={type:e.RoutingOutcomeType.ROUTES_FOUND,fundingRoutes:[]};let g=0;return h.length>0&&(g++,h.forEach((e=>{y.fundingRoutes.push({priority:g,steps:[e]})}))),f&&(g++,y.fundingRoutes.push({priority:g,steps:[f]})),p&&(g++,y.fundingRoutes.push({priority:g,steps:[p]})),m&&(g++,m.forEach((e=>{const t=e.bridgeFundingStep,n=e.swapFundingStep;y.fundingRoutes.push({priority:g,steps:[t,n]})}))),y},DP=async(t,n,r,i)=>{const a=await n.getSigner().getAddress();let o=Wx(r);const s=(async(t,n,r)=>{let i=!0;const a=[],o=new Map,s=new Map,u=new Map,c=new Map;for(const i of r){if(i.type!==e.ItemType.ERC20)continue;const{contractAddress:r,spenderAddress:a}=i,u=`${r}${a}`;o.set(u,i),s.set(u,Kx(t,n,r,a))}const l=await Promise.all(s.values()),d=Array.from(s.keys());for(let r=0;r<l.length;r++){const s=o.get(d[r]);if(!s||s.type!==e.ItemType.ERC20)continue;if(l[r].gte(s.amount)){a.push({sufficient:!0,itemRequirement:s});continue}i=!1;const{contractAddress:f,spenderAddress:p}=s,h=`${f}${p}`,m=s.amount.sub(l[r]);u.set(h,{type:e.ItemType.ERC20,sufficient:!1,delta:m,itemRequirement:s,approvalTransaction:void 0}),c.set(h,Xx(t,n,f,p,m))}const f=await Promise.all(c.values()),p=Array.from(c.keys());return f.forEach(((e,t)=>{const n=u.get(p[t]);n&&(n.sufficient||(n.approvalTransaction=e))})),{sufficient:i,allowances:a.concat(Array.from(u.values()))}})(n,a,o),u=Zx(n,a,o),c=await Im(t,"Time to calculate token allowances",Promise.all([s,u])),l=((e,t)=>{const n=[];if(!e.sufficient)for(const t of e.allowances)t.sufficient||n.push(t);if(!t.sufficient)for(const e of t.allowances)e.sufficient||n.push(e);return n})(c[0],c[1]),d=await Im(t,"Time to run gas calculator",aP(n,l,i));null!==d&&(o.push(d),o=Wx(o));const f=await Im(t,"Time to run balance checks",rP(t,n,a,o)),{sufficient:p}=f,h=f.balanceRequirements;if(p)return{sufficient:p,transactionRequirements:h};const m=await Im(t,"Time to fetch available routing options",(async(e,t)=>{const n={onRamp:e.isOnRampEnabled,swap:e.isSwapEnabled,bridge:e.isBridgeEnabled},r=[];if(n.onRamp&&r.push({id:"onRamp",promise:sP()}),n.swap&&r.push({id:"swap",promise:uP(e)}),r.length>0){const e=r.map((e=>e.promise));(await Promise.allSettled(e)).forEach(((e,t)=>{const i=r[t].id;n[i]=n[i]&&"fulfilled"===e.status&&e.value}))}return n.bridge=n.bridge&&!(e=>!0===e.provider?.isPassport??!1)(t),n})(t,n));return{sufficient:p,transactionRequirements:h,router:{availableRoutingOptions:m,routingOutcome:await Im(t,"Total time to run the routing calculator",BP(t,a,f,m))}}};var FP;!function(e){e.SUCCESS="SUCCESS",e.FAILED="FAILED"}(FP||(FP={}));const LP=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>t.getSigner().sendTransaction(e))));r=await Promise.all(e.map((e=>e.wait())))}catch(t){throw new lm("An error occurred while executing the approval transaction",e.CheckoutErrorType.EXECUTE_APPROVAL_TRANSACTION_ERROR,{message:t.message})}for(const e of r)if(0===e.status)return{type:FP.FAILED,transactionHash:e.transactionHash,reason:"Approval transaction failed and was reverted"};return{type:FP.SUCCESS}},UP=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>t.getSigner().sendTransaction(e))));r=await Promise.all(e.map((e=>e.wait())))}catch(t){throw new lm("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{message:t.message})}for(const e of r)if(0===e.status)return{type:FP.FAILED,transactionHash:e.transactionHash,reason:"Fulfillment transaction failed and was reverted"};return{type:FP.SUCCESS}},qP=async e=>{let t=[];const n=[];for(const t of e)t.type===LN.TRANSACTION&&t.purpose===DN.FULFILL_ORDER&&n.push(t.buildTransaction());return t=await Promise.all(n),t},jP=(e,t)=>{const n=e.amount,r=Math.round(n.percentageDecimal*10**6);return t.mul(tr.from(r)).div(10**6)},GP=(e,t)=>Oh(e.amount.token,t),HP=(t,n,r=18)=>{let i=tr.from(0);const a=tr.from(n),o=a.mul(1e6).div(10**6),s=[];for(const n of t){let t=tr.from(0);if(Object.hasOwn(n.amount,"percentageDecimal"))t=jP(n,a),i=i.add(t);else{if(!Object.hasOwn(n.amount,"token"))throw new lm("Unknown fee type parsed, must be percentageDecimal or token",e.CheckoutErrorType.ORDER_FEE_ERROR);t=GP(n,r),i=i.add(t)}if(i.gt(o))throw new lm("The combined fees are above the allowed maximum of 100%",e.CheckoutErrorType.ORDER_FEE_ERROR);t.gt(0)&&s.push({amount:t.toString(),recipient:n.recipient})}return s},zP=(t,n,r,i)=>{switch(t){case e.ItemType.ERC20:return{type:t,amount:r,contractAddress:n,spenderAddress:i};case e.ItemType.NATIVE:default:return{type:e.ItemType.NATIVE,amount:r}}},VP=async(t,n,r)=>{let i,a,o="";const s=ex;if(0===r.length)throw new lm("No orders were provided to the orders array. Please provide at least one order.",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR);const{id:u,takerFees:c}=r[0];try{i=qx(t),a=await Im(t,"Time to fetch the listing from the orderbook",i.getListing(u));const{seaportContractAddress:e}=i.config();o=e}catch(t){throw new lm("An error occurred while getting the order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{orderId:u,message:t.message})}if(0===a.result.buy.length)throw new lm("An error occurred with the get order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{orderId:u,message:"No buy side tokens found on order"});const l=a.result.buy[0];let d=18;if("ERC20"===a.result.buy[0].type){const e=jx(a.result.buy[0].contractAddress,tm,n);d=await Im(t,"Time to get decimals of token contract for the buy token",e.decimals())}let f=[];c&&c.length>0&&(f=HP(c,l.amount,d));let p=[],h=[],m=[];const y=performance.now();try{const e=await Im(t,"Time to get the address from the provider",n.getSigner().getAddress()),{actions:r}=await Im(t,"Time to call fulfillOrder from the orderbook",i.fulfillOrder(u,e,f));m=r,p=await Im(t,"Time to construct the unsigned approval transactions",(async e=>{let t=[];const n=[];for(const t of e)t.type===LN.TRANSACTION&&t.purpose===DN.APPROVAL&&n.push(t.buildTransaction());return t=await Promise.all(n),t})(r))}catch(n){const r=(performance.now()-y)/1e3;if(_m(t,"Time to call fulfillOrder from the orderbook",r),n.message.includes(PN.EXPIRED))throw new lm("Order is expired",e.CheckoutErrorType.ORDER_EXPIRED_ERROR,{orderId:u});if(!n.message.includes("The fulfiller does not have the balances needed to fulfill"))throw new lm("Error occurred while trying to fulfill the order",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{orderId:u,message:n.message})}try{h=await Im(t,"Time to construct the unsigned fulfillment transactions",qP(m))}catch{}let g=tr.from("0"),b=e.ItemType.NATIVE,v="";const w=a.result.buy;if(w.length>0)switch(w[0].type){case"NATIVE":b=e.ItemType.NATIVE;break;case"ERC20":b=e.ItemType.ERC20,v=w[0].contractAddress;break;default:throw new lm("Purchasing token type is unsupported",e.CheckoutErrorType.UNSUPPORTED_TOKEN_TYPE_ERROR,{orderId:u})}w.forEach((t=>{t.type!==e.ItemType.ERC721&&(g=g.add(tr.from(t.amount)))}));a.result.fees.forEach((e=>{g=g.add(tr.from(e.amount))}));const T=[zP(b,v,g,o)],A=await Im(t,"Total time running smart checkout",DP(t,n,T,((t,n)=>n.length>0?{type:e.TransactionOrGasType.TRANSACTION,transaction:n[0]}:{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:tr.from(t)}})(s,h)));if(A.sufficient){const t=await LP(n,p);if(t.type===FP.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason,smartCheckoutResult:A};try{0===h.length&&(h=await qP(m))}catch(t){throw new lm("Error fetching fulfillment transaction",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{message:t.message})}const r=await UP(n,h);return r.type===FP.FAILED?{status:e.CheckoutStatus.FAILED,transactionHash:r.transactionHash,reason:r.reason,smartCheckoutResult:A}:{status:e.CheckoutStatus.SUCCESS,smartCheckoutResult:A}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:A}},WP=(t,n,r)=>({type:e.ItemType.ERC721,id:t,contractAddress:n,spenderAddress:r}),KP=async(t,n,r)=>{let i,a,o="";if(0===r.length)throw new lm("No orders were provided to the orders array. Please provide at least one order.",e.CheckoutErrorType.PREPARE_ORDER_LISTING_ERROR);const{buyToken:s,sellToken:u,makerFees:c}=r[0];let l=18;if(s.type===e.ItemType.ERC20){const e=new vl(s.contractAddress,JSON.stringify(tm),n);l=await Im(t,"Time to get decimals of token contract for the buy token",e.decimals())}const d=((t,n=18)=>{const r=Oh(t.amount,n);return t.type===e.ItemType.NATIVE?{type:e.ItemType.NATIVE,amount:r.toString()}:{type:e.ItemType.ERC20,amount:r.toString(),contractAddress:t.contractAddress}})(s,l);try{const r=await Im(t,"Time to get the address from the provider",n.getSigner().getAddress());i=qx(t);const{seaportContractAddress:s}=i.config();o=s,a=await Im(t,"Time to prepare the listing from the orderbook",i.prepareListing({makerAddress:r,buy:d,sell:{type:e.ItemType.ERC721,contractAddress:u.collectionAddress,tokenId:u.id}}))}catch(t){throw new lm("An error occurred while preparing the listing",e.CheckoutErrorType.PREPARE_ORDER_LISTING_ERROR,{message:t.message,id:u.id,collectionAddress:u.collectionAddress})}const f=[WP(u.id,u.collectionAddress,o)],p=await Im(t,"Total time running smart checkout",DP(t,n,f,{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:tr.from(ex)}}));if(p.sufficient){const t=await(async e=>{let t=[],n=[];const r=[],i=[];for(const t of e)t.type===LN.TRANSACTION&&(t.purpose===DN.APPROVAL&&r.push(t.buildTransaction()),t.purpose===DN.FULFILL_ORDER&&i.push(t.buildTransaction()));return t=await Promise.all(r),n=await Promise.all(i),{approvalTransactions:t,fulfillmentTransactions:n}})(a.actions),r=await LP(n,t.approvalTransactions);if(r.type===FP.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:r.transactionHash,reason:r.reason,smartCheckoutResult:p};const o=((e,t,n)=>{let r;for(const e of n)e.type===LN.SIGNABLE&&e.purpose===FN.CREATE_LISTING&&(r={domain:e.message.domain,types:e.message.types,value:e.message.value});if(r)return{orderHash:e,orderComponents:t,unsignedMessage:r}})(a.orderHash,a.orderComponents,a.actions);if(!o)throw new lm("The unsigned message is missing after preparing the listing",e.CheckoutErrorType.SIGN_MESSAGE_ERROR,{id:u.id,collectionAddress:u.collectionAddress});const s=await(async(t,n)=>{try{const e=await t.getSigner()._signTypedData(n.unsignedMessage.domain,n.unsignedMessage.types,n.unsignedMessage.value);return{orderComponents:n.orderComponents,orderHash:n.orderHash,signedMessage:e}}catch(t){throw new lm("An error occurred while signing the message",e.CheckoutErrorType.SIGN_MESSAGE_ERROR,{message:t.message})}})(n,o);let f="";const h={orderComponents:s.orderComponents,orderHash:s.orderHash,orderSignature:s.signedMessage,makerFees:[]};if(void 0!==c){const t=HP(c,d.amount,l);if(t.length!==c.length)throw new lm("One of the fees is too small, must be greater than 0.000001",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR);h.makerFees=t}try{f=(await i.createListing(h)).result.id}catch(t){throw new lm("An error occurred while creating the listing",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR,{message:t.message,collectionId:u.id,collectionAddress:u.collectionAddress})}return{status:e.CheckoutStatus.SUCCESS,orderIds:[f],smartCheckoutResult:p}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:p}};class XP{config;constructor(e){this.config=e}async feeEstimate(){const e=await this.config.remote.getConfig("onramp");return e[Fh.TRANSAK]?.fees}async createWidgetUrl(e){return await this.getTransakWidgetUrl(e)}async getTransakWidgetUrl(e){let t=`${Yh[this.config.environment]}?`;if(t+=`${`apiKey=${(await this.config.remote.getConfig("onramp"))[Fh.TRANSAK].publishableApiKey}`}&network=immutablezkevm&defaultPaymentMethod=credit_debit_card&disablePaymentMethods=sepa_bank_transfer,gbp_bank_transfer,pm_cash_app,pm_jwire,pm_paymaya,pm_bpi,pm_ubp,pm_grabpay,pm_shopeepay,pm_gcash,pm_pix,pm_astropay,pm_pse,inr_bank_transfer&productsAvailed=buy&exchangeScreenTitle=Buy&themeColor=0D0D0D`,e.isPassport&&e.email){t+=`&email=${encodeURIComponent(e.email)}&isAutoFillUserData=true&disableWalletAddressForm=true`}return e.tokenAmount&&e.tokenSymbol?t+=`&defaultCryptoAmount=${e.tokenAmount}&cryptoCurrencyCode=${e.tokenSymbol}`:t+="&defaultCryptoCurrency=IMX",e.walletAddress&&(t+=`&walletAddress=${e.walletAddress}`),t}}const JP=()=>"__SDK_VERSION__";function YP(e){if(void 0===window)throw new Error("missing window object: please run Checkout client side");if(void 0===document)throw new Error("missing document object: please run Checkout client side");const t="immutable-checkout-widgets-bundle",n=function(e){const t=JP();if(void 0===e||void 0===e.major)return t;if(!Number.isInteger(e.major)||e.major<0)return t;if(void 0!==e.minor&&e.minor<0)return t;if(void 0!==e.patch&&e.patch<0)return t;if(0===e.major&&void 0===e.minor)return t;if(0===e.major&&0===e.minor&&void 0===e.patch)return t;if(0===e.major&&void 0===e.minor&&void 0===e.patch)return t;if(0===e.major&&0===e.minor&&0===e.patch)return t;let n=e.major.toString();return void 0===e.minor||(Number.isInteger(e.minor)&&(n+=`.${e.minor.toString()}`),void 0===e.patch||(Number.isInteger(e.patch)&&(n+=`.${e.patch.toString()}`),void 0===e.prerelease||"alpha"!==e.prerelease||("alpha"===e.prerelease&&(n+=`-${e.prerelease}`),void 0===e.build||Number.isInteger(e.build)&&e.build>=0&&(n+=`.${e.build.toString()}`)))),n}(e),r=document.getElementById(t);if(r)return{loaded:!0,element:r};const i=document.createElement("script");let a=`https://cdn.jsdelivr.net/npm/@imtbl/sdk@${n}/dist/browser/checkout/widgets.js`;return i.setAttribute("id",t),i.setAttribute("data-version",n),i.setAttribute("src",a),document.head.appendChild(i),{loaded:!1,element:i}}const QP={baseConfig:{environment:st.SANDBOX},passport:void 0};e.CHECKOUT_API_BASE_URL=Jh,e.Checkout=class{readOnlyProviders;config;fiatRampService;availability;passport;constructor(e=QP){this.config=new wm(e),this.fiatRampService=new XP(this.config),this.readOnlyProviders=new Map,this.availability=oP(this.config.isDevelopment,this.config.isProduction),this.passport=e.passport}async widgets(t){const n=this,r=new Promise(((r,i)=>{try{YP(t.version).loaded&&"undefined"!=typeof ImmutableCheckoutWidgets?(console.warn("Checkout widgets script is already loaded"),r(new ImmutableCheckoutWidgets.WidgetsFactory(n,t.config))):function e(){"undefined"!=typeof ImmutableCheckoutWidgets?r(new ImmutableCheckoutWidgets.WidgetsFactory(n,t.config)):setTimeout(e,100)}()}catch(t){i(new lm("Failed to load widgets script",e.CheckoutErrorType.WIDGETS_SCRIPT_LOAD_ERROR,{message:t.message}))}}));return r}async createProvider(e){return await Pm(e.walletProviderName,this.passport)}async checkIsWalletConnected(t){return async function(t){if(!t?.provider?.request)throw new lm("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{rpcMethod:qh.CHECK_CONNECTION});let n=[];try{n=await t.provider.request({method:qh.CHECK_CONNECTION,params:[]})}catch(t){throw new lm("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{rpcMethod:qh.CHECK_CONNECTION})}return{isConnected:n&&n.length>0,walletAddress:n[0]??""}}(await Bm(this.config,t.provider,{allowUnsupportedProvider:!0}))}async connect(t){const n=await Bm(this.config,t.provider,{allowUnsupportedProvider:!0});await async function(t){if(!t||!t.provider?.request)throw new lm("Incompatible provider",e.CheckoutErrorType.PROVIDER_REQUEST_MISSING_ERROR,{details:"Attempting to connect with an incompatible provider"});return await dm((async()=>{t.provider.request&&await t.provider.request({method:qh.CONNECT,params:[]})}),{type:e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR}),t}(n);return{provider:n,network:await hm(this.config,n)}}async switchNetwork(e){const t=await Bm(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await mm(this.config,t,e.chainId)}async getBalance(e){const t=await Bm(this.config,e.provider);return e.contractAddress&&""!==e.contractAddress?await Cm(t,e.walletAddress,e.contractAddress):await Rm(this.config,t,e.walletAddress)}async getAllBalances(e){const t=await Bm(this.config,e.provider);return Sm(this.config,t,e.walletAddress,e.chainId)}async getNetworkAllowList(e){return await pm(this.config,e)}async getTokenAllowList(e){return await Tm(this.config,e)}async getWalletAllowList(t){return await async function(t){const n=[],r=t.exclude?.map((e=>e.walletProviderName))??[];let i=Object.values(e.WalletProviderName);0!==r.length&&(i=i.filter((e=>!r.includes(e))));for(const e of i)n.push({walletProviderName:e});return{wallets:n}}(t)}async sendTransaction(t){const n=await Bm(this.config,t.provider);return await(async(t,n)=>{try{return{transactionResponse:await t.getSigner().sendTransaction(n)}}catch(t){if(t.code===En.INSUFFICIENT_FUNDS)throw new lm(t.message,e.CheckoutErrorType.INSUFFICIENT_FUNDS);if(t.code===En.ACTION_REJECTED)throw new lm(t.message,e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);if(t.code===En.UNPREDICTABLE_GAS_LIMIT)throw new lm(t.message,e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT);throw new lm(t.message,e.CheckoutErrorType.TRANSACTION_FAILED)}})(n,t.transaction)}async getNetworkInfo(e){const t=await Bm(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await hm(this.config,t)}async buy(e){e.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const t=await Bm(this.config,e.provider);return await VP(this.config,t,e.orders)}async sell(e){e.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const t=await Bm(this.config,e.provider);return await KP(this.config,t,e.orders)}async cancel(t){console.warn("This endpoint currently only processes the first order in the array.");const n=await Bm(this.config,t.provider);return await(async(t,n,r)=>{let i;if(0===r.length)throw new lm("No orderIds were provided to the orderIds array. Please provide at least one orderId.",e.CheckoutErrorType.CANCEL_ORDER_LISTING_ERROR);const a=r[0];try{const e=await Im(t,"Time to get the address from the provider",n.getSigner().getAddress()),r=qx(t),o=await Im(t,"Time to get the cancel order from the orderbook",r.cancelOrdersOnChain([a],e));i=await o.cancellationAction.buildTransaction()}catch(t){throw new lm("An error occurred while cancelling the order listing",e.CheckoutErrorType.CANCEL_ORDER_LISTING_ERROR,{orderId:a,message:t.message})}const o=await UP(n,[i]);return o.type===FP.FAILED?{status:e.CheckoutStatus.FAILED,transactionHash:o.transactionHash,reason:o.reason}:{status:e.CheckoutStatus.SUCCESS}})(this.config,n,t.orderIds)}async smartCheckout(t){const n=await Bm(this.config,t.provider);let r=[];try{r=await async function(t,n){const r=[];n.forEach((n=>{if(n.type===e.ItemType.ERC20){const{contractAddress:e}=n;r.push(jx(e,tm,t).decimals())}}));const i=await Promise.all(r),a=n.map(((t,n)=>t.type===e.ItemType.NATIVE?{...t,amount:Oh(t.amount,18)}:t.type===e.ItemType.ERC20?{...t,amount:Oh(t.amount,i[n])}:t));return a}(n,t.itemRequirements)}catch{throw new lm("Failed to map item requirements",e.CheckoutErrorType.ITEM_REQUIREMENTS_ERROR)}return await DP(this.config,n,r,t.transactionOrGasAmount)}static isWeb3Provider(e){return Mm(e)}async gasEstimate(e){return this.readOnlyProviders=await cP(this.config,this.readOnlyProviders),await Vx(e,this.readOnlyProviders,this.config)}async createFiatRampUrl(t){let n,r,i="IMX";const a=await t.web3Provider.getSigner().getAddress(),o=t.web3Provider.provider?.isPassport||!1;if(o&&t.passport){const e=await t.passport.getUserInfo();r=e?.email}const s=await Tm(this.config,{type:e.TokenFilterTypes.ONRAMP}),u=s.tokens?.find((e=>e.address?.toLowerCase()===t.tokenAddress?.toLowerCase()));return u&&(n=t.tokenAmount,i=u.symbol),await this.fiatRampService.createWidgetUrl({exchangeType:t.exchangeType,isPassport:o,walletAddress:a,tokenAmount:n,tokenSymbol:i,email:r})}async getExchangeFeeEstimate(){return await this.fiatRampService.feeEstimate()}async isSwapAvailable(){return this.availability.checkDexAvailability()}},e.CheckoutConfiguration=wm}));
|