@kaspacom/swap-sdk 1.0.8 → 1.0.10

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.
Files changed (63) hide show
  1. package/dist/cjs/config/networks.d.ts +3 -0
  2. package/dist/cjs/config/networks.d.ts.map +1 -0
  3. package/dist/cjs/config/networks.js.map +1 -0
  4. package/dist/cjs/controllers/{swap-sdk.controller.js → swap-sdk.controller.cjs} +3 -3
  5. package/dist/cjs/controllers/swap-sdk.controller.d.ts +1 -2
  6. package/dist/cjs/controllers/swap-sdk.controller.d.ts.map +1 -1
  7. package/dist/cjs/controllers/swap-sdk.controller.js.map +1 -1
  8. package/dist/cjs/index.cjs +8 -8
  9. package/dist/cjs/index.d.ts +1 -1
  10. package/dist/cjs/index.d.ts.map +1 -1
  11. package/dist/cjs/index.js.map +1 -1
  12. package/dist/cjs/services/swap.service.d.ts +1 -2
  13. package/dist/cjs/services/swap.service.d.ts.map +1 -1
  14. package/dist/cjs/services/swap.service.js.map +1 -1
  15. package/dist/cjs/services/wallet.service.d.ts +1 -1
  16. package/dist/cjs/services/wallet.service.d.ts.map +1 -1
  17. package/dist/cjs/types/index.d.ts +12 -1
  18. package/dist/cjs/types/index.d.ts.map +1 -1
  19. package/dist/cjs/types/index.js.map +1 -1
  20. package/dist/config/networks.d.ts +3 -0
  21. package/dist/config/networks.d.ts.map +1 -0
  22. package/dist/controllers/swap-sdk.controller.d.ts +26 -0
  23. package/dist/controllers/swap-sdk.controller.d.ts.map +1 -0
  24. package/dist/esm/config/networks.d.ts +3 -0
  25. package/dist/esm/config/networks.d.ts.map +1 -0
  26. package/dist/esm/config/networks.js.map +1 -0
  27. package/dist/esm/controllers/swap-sdk.controller.d.ts +1 -2
  28. package/dist/esm/controllers/swap-sdk.controller.d.ts.map +1 -1
  29. package/dist/esm/controllers/swap-sdk.controller.js.map +1 -1
  30. package/dist/esm/index.d.ts +1 -1
  31. package/dist/esm/index.d.ts.map +1 -1
  32. package/dist/esm/index.js +2 -2
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/services/swap.service.d.ts +1 -2
  35. package/dist/esm/services/swap.service.d.ts.map +1 -1
  36. package/dist/esm/services/swap.service.js.map +1 -1
  37. package/dist/esm/services/wallet.service.d.ts +1 -1
  38. package/dist/esm/services/wallet.service.d.ts.map +1 -1
  39. package/dist/esm/types/index.d.ts +12 -1
  40. package/dist/esm/types/index.d.ts.map +1 -1
  41. package/dist/esm/types/index.js.map +1 -1
  42. package/dist/index.d.ts +15 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/services/swap.service.d.ts +108 -0
  45. package/dist/services/swap.service.d.ts.map +1 -0
  46. package/dist/services/wallet.service.d.ts +21 -0
  47. package/dist/services/wallet.service.d.ts.map +1 -0
  48. package/dist/types/index.d.ts +82 -0
  49. package/dist/types/index.d.ts.map +1 -0
  50. package/dist/umd/index.js +2 -0
  51. package/dist/umd/index.js.LICENSE.txt +12 -0
  52. package/package.json +11 -31
  53. package/dist/cjs/types/networks.d.ts +0 -14
  54. package/dist/cjs/types/networks.d.ts.map +0 -1
  55. package/dist/cjs/types/networks.js.map +0 -1
  56. package/dist/esm/types/networks.d.ts +0 -14
  57. package/dist/esm/types/networks.d.ts.map +0 -1
  58. package/dist/esm/types/networks.js.map +0 -1
  59. /package/dist/cjs/{types/networks.js → config/networks.cjs} +0 -0
  60. /package/dist/cjs/services/{swap.service.js → swap.service.cjs} +0 -0
  61. /package/dist/cjs/services/{wallet.service.js → wallet.service.cjs} +0 -0
  62. /package/dist/cjs/types/{index.js → index.cjs} +0 -0
  63. /package/dist/esm/{types → config}/networks.js +0 -0
@@ -0,0 +1,2 @@
1
+ /*! For license information please see index.js.LICENSE.txt */
2
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.KaspacomSwapSdk=e():t.KaspacomSwapSdk=e()}(this,()=>(()=>{var t={176:(t,e,r)=>{var n;!function(){"use strict";var i="input is invalid type",s="object"==typeof window,o=s?window:{};o.JS_SHA3_NO_WINDOW&&(s=!1);var a=!s&&"object"==typeof self;!o.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?o=r.g:a&&(o=self);var u=!o.JS_SHA3_NO_COMMON_JS&&t.exports,c=r.amdO,l=!o.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,h="0123456789abcdef".split(""),f=[4,1024,262144,67108864],d=[0,8,16,24],p=[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],g=[224,256,384,512],m=[128,256],y=["hex","buffer","arrayBuffer","array","digest"],w={128:168,256:136};!o.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!l||!o.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return"object"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});for(var b=function(t,e,r){return function(n){return new S(t,e,t).update(n)[r]()}},A=function(t,e,r){return function(n,i){return new S(t,e,i).update(n)[r]()}},v=function(t,e,r){return function(e,n,i,s){return N["cshake"+t].update(e,n,i,s)[r]()}},E=function(t,e,r){return function(e,n,i,s){return N["kmac"+t].update(e,n,i,s)[r]()}},_=function(t,e,r,n){for(var i=0;i<y.length;++i){var s=y[i];t[s]=e(r,n,s)}return t},x=function(t,e){var r=b(t,e,"hex");return r.create=function(){return new S(t,e,t)},r.update=function(t){return r.create().update(t)},_(r,b,t,e)},C=[{name:"keccak",padding:[1,256,65536,16777216],bits:g,createMethod:x},{name:"sha3",padding:[6,1536,393216,100663296],bits:g,createMethod:x},{name:"shake",padding:[31,7936,2031616,520093696],bits:m,createMethod:function(t,e){var r=A(t,e,"hex");return r.create=function(r){return new S(t,e,r)},r.update=function(t,e){return r.create(e).update(t)},_(r,A,t,e)}},{name:"cshake",padding:f,bits:m,createMethod:function(t,e){var r=w[t],n=v(t,0,"hex");return n.create=function(n,i,s){return i||s?new S(t,e,n).bytepad([i,s],r):N["shake"+t].create(n)},n.update=function(t,e,r,i){return n.create(e,r,i).update(t)},_(n,v,t,e)}},{name:"kmac",padding:f,bits:m,createMethod:function(t,e){var r=w[t],n=E(t,0,"hex");return n.create=function(n,i,s){return new R(t,e,i).bytepad(["KMAC",s],r).bytepad([n],r)},n.update=function(t,e,r,i){return n.create(t,r,i).update(e)},_(n,E,t,e)}}],N={},B=[],P=0;P<C.length;++P)for(var I=C[P],k=I.bits,O=0;O<k.length;++O){var M=I.name+"_"+k[O];if(B.push(M),N[M]=I.createMethod(k[O],I.padding),"sha3"!==I.name){var T=I.name+k[O];B.push(T),N[T]=N[M]}}function S(t,e,r){this.blocks=[],this.s=[],this.padding=e,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(t<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function R(t,e,r){S.call(this,t,e,r)}S.prototype.update=function(t){if(this.finalized)throw new Error("finalize already called");var e,r=typeof t;if("string"!==r){if("object"!==r)throw new Error(i);if(null===t)throw new Error(i);if(l&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||l&&ArrayBuffer.isView(t)))throw new Error(i);e=!0}for(var n,s,o=this.blocks,a=this.byteCount,u=t.length,c=this.blockCount,h=0,f=this.s;h<u;){if(this.reset)for(this.reset=!1,o[0]=this.block,n=1;n<c+1;++n)o[n]=0;if(e)for(n=this.start;h<u&&n<a;++h)o[n>>2]|=t[h]<<d[3&n++];else for(n=this.start;h<u&&n<a;++h)(s=t.charCodeAt(h))<128?o[n>>2]|=s<<d[3&n++]:s<2048?(o[n>>2]|=(192|s>>6)<<d[3&n++],o[n>>2]|=(128|63&s)<<d[3&n++]):s<55296||s>=57344?(o[n>>2]|=(224|s>>12)<<d[3&n++],o[n>>2]|=(128|s>>6&63)<<d[3&n++],o[n>>2]|=(128|63&s)<<d[3&n++]):(s=65536+((1023&s)<<10|1023&t.charCodeAt(++h)),o[n>>2]|=(240|s>>18)<<d[3&n++],o[n>>2]|=(128|s>>12&63)<<d[3&n++],o[n>>2]|=(128|s>>6&63)<<d[3&n++],o[n>>2]|=(128|63&s)<<d[3&n++]);if(this.lastByteIndex=n,n>=a){for(this.start=n-a,this.block=o[c],n=0;n<c;++n)f[n]^=o[n];D(f),this.reset=!0}else this.start=n}return this},S.prototype.encode=function(t,e){var r=255&t,n=1,i=[r];for(r=255&(t>>=8);r>0;)i.unshift(r),r=255&(t>>=8),++n;return e?i.push(n):i.unshift(n),this.update(i),i.length},S.prototype.encodeString=function(t){var e,r=typeof t;if("string"!==r){if("object"!==r)throw new Error(i);if(null===t)throw new Error(i);if(l&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||l&&ArrayBuffer.isView(t)))throw new Error(i);e=!0}var n=0,s=t.length;if(e)n=s;else for(var o=0;o<t.length;++o){var a=t.charCodeAt(o);a<128?n+=1:a<2048?n+=2:a<55296||a>=57344?n+=3:(a=65536+((1023&a)<<10|1023&t.charCodeAt(++o)),n+=4)}return n+=this.encode(8*n),this.update(t),n},S.prototype.bytepad=function(t,e){for(var r=this.encode(e),n=0;n<t.length;++n)r+=this.encodeString(t[n]);var i=e-r%e,s=[];return s.length=i,this.update(s),this},S.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,e=this.lastByteIndex,r=this.blockCount,n=this.s;if(t[e>>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[r],e=1;e<r+1;++e)t[e]=0;for(t[r-1]|=2147483648,e=0;e<r;++e)n[e]^=t[e];D(n)}},S.prototype.toString=S.prototype.hex=function(){this.finalize();for(var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,s=0,o=0,a="";o<n;){for(s=0;s<e&&o<n;++s,++o)t=r[s],a+=h[t>>4&15]+h[15&t]+h[t>>12&15]+h[t>>8&15]+h[t>>20&15]+h[t>>16&15]+h[t>>28&15]+h[t>>24&15];o%e===0&&(D(r),s=0)}return i&&(t=r[s],a+=h[t>>4&15]+h[15&t],i>1&&(a+=h[t>>12&15]+h[t>>8&15]),i>2&&(a+=h[t>>20&15]+h[t>>16&15])),a},S.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,s=0,o=0,a=this.outputBits>>3;t=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var u=new Uint32Array(t);o<n;){for(s=0;s<e&&o<n;++s,++o)u[o]=r[s];o%e===0&&D(r)}return i&&(u[s]=r[s],t=t.slice(0,a)),t},S.prototype.buffer=S.prototype.arrayBuffer,S.prototype.digest=S.prototype.array=function(){this.finalize();for(var t,e,r=this.blockCount,n=this.s,i=this.outputBlocks,s=this.extraBytes,o=0,a=0,u=[];a<i;){for(o=0;o<r&&a<i;++o,++a)t=a<<2,e=n[o],u[t]=255&e,u[t+1]=e>>8&255,u[t+2]=e>>16&255,u[t+3]=e>>24&255;a%r===0&&D(n)}return s&&(t=a<<2,e=n[o],u[t]=255&e,s>1&&(u[t+1]=e>>8&255),s>2&&(u[t+2]=e>>16&255)),u},R.prototype=new S,R.prototype.finalize=function(){return this.encode(this.outputBits,!0),S.prototype.finalize.call(this)};var D=function(t){var e,r,n,i,s,o,a,u,c,l,h,f,d,g,m,y,w,b,A,v,E,_,x,C,N,B,P,I,k,O,M,T,S,R,D,F,L,U,G,H,q,z,j,Q,V,J,K,W,Z,X,Y,$,tt,et,rt,nt,it,st,ot,at,ut,ct,lt;for(n=0;n<48;n+=2)i=t[0]^t[10]^t[20]^t[30]^t[40],s=t[1]^t[11]^t[21]^t[31]^t[41],o=t[2]^t[12]^t[22]^t[32]^t[42],a=t[3]^t[13]^t[23]^t[33]^t[43],u=t[4]^t[14]^t[24]^t[34]^t[44],c=t[5]^t[15]^t[25]^t[35]^t[45],l=t[6]^t[16]^t[26]^t[36]^t[46],h=t[7]^t[17]^t[27]^t[37]^t[47],e=(f=t[8]^t[18]^t[28]^t[38]^t[48])^(o<<1|a>>>31),r=(d=t[9]^t[19]^t[29]^t[39]^t[49])^(a<<1|o>>>31),t[0]^=e,t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,e=i^(u<<1|c>>>31),r=s^(c<<1|u>>>31),t[2]^=e,t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,e=o^(l<<1|h>>>31),r=a^(h<<1|l>>>31),t[4]^=e,t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,e=u^(f<<1|d>>>31),r=c^(d<<1|f>>>31),t[6]^=e,t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,e=l^(i<<1|s>>>31),r=h^(s<<1|i>>>31),t[8]^=e,t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,g=t[0],m=t[1],J=t[11]<<4|t[10]>>>28,K=t[10]<<4|t[11]>>>28,I=t[20]<<3|t[21]>>>29,k=t[21]<<3|t[20]>>>29,at=t[31]<<9|t[30]>>>23,ut=t[30]<<9|t[31]>>>23,z=t[40]<<18|t[41]>>>14,j=t[41]<<18|t[40]>>>14,R=t[2]<<1|t[3]>>>31,D=t[3]<<1|t[2]>>>31,y=t[13]<<12|t[12]>>>20,w=t[12]<<12|t[13]>>>20,W=t[22]<<10|t[23]>>>22,Z=t[23]<<10|t[22]>>>22,O=t[33]<<13|t[32]>>>19,M=t[32]<<13|t[33]>>>19,ct=t[42]<<2|t[43]>>>30,lt=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,F=t[14]<<6|t[15]>>>26,L=t[15]<<6|t[14]>>>26,b=t[25]<<11|t[24]>>>21,A=t[24]<<11|t[25]>>>21,X=t[34]<<15|t[35]>>>17,Y=t[35]<<15|t[34]>>>17,T=t[45]<<29|t[44]>>>3,S=t[44]<<29|t[45]>>>3,C=t[6]<<28|t[7]>>>4,N=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,U=t[26]<<25|t[27]>>>7,G=t[27]<<25|t[26]>>>7,v=t[36]<<21|t[37]>>>11,E=t[37]<<21|t[36]>>>11,$=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,Q=t[8]<<27|t[9]>>>5,V=t[9]<<27|t[8]>>>5,B=t[18]<<20|t[19]>>>12,P=t[19]<<20|t[18]>>>12,st=t[29]<<7|t[28]>>>25,ot=t[28]<<7|t[29]>>>25,H=t[38]<<8|t[39]>>>24,q=t[39]<<8|t[38]>>>24,_=t[48]<<14|t[49]>>>18,x=t[49]<<14|t[48]>>>18,t[0]=g^~y&b,t[1]=m^~w&A,t[10]=C^~B&I,t[11]=N^~P&k,t[20]=R^~F&U,t[21]=D^~L&G,t[30]=Q^~J&W,t[31]=V^~K&Z,t[40]=et^~nt&st,t[41]=rt^~it&ot,t[2]=y^~b&v,t[3]=w^~A&E,t[12]=B^~I&O,t[13]=P^~k&M,t[22]=F^~U&H,t[23]=L^~G&q,t[32]=J^~W&X,t[33]=K^~Z&Y,t[42]=nt^~st&at,t[43]=it^~ot&ut,t[4]=b^~v&_,t[5]=A^~E&x,t[14]=I^~O&T,t[15]=k^~M&S,t[24]=U^~H&z,t[25]=G^~q&j,t[34]=W^~X&$,t[35]=Z^~Y&tt,t[44]=st^~at&ct,t[45]=ot^~ut&lt,t[6]=v^~_&g,t[7]=E^~x&m,t[16]=O^~T&C,t[17]=M^~S&N,t[26]=H^~z&R,t[27]=q^~j&D,t[36]=X^~$&Q,t[37]=Y^~tt&V,t[46]=at^~ct&et,t[47]=ut^~lt&rt,t[8]=_^~g&y,t[9]=x^~m&w,t[18]=T^~C&B,t[19]=S^~N&P,t[28]=z^~R&F,t[29]=j^~D&L,t[38]=$^~Q&J,t[39]=tt^~V&K,t[48]=ct^~et&nt,t[49]=lt^~rt&it,t[0]^=p[n],t[1]^=p[n+1]};if(u)t.exports=N;else{for(P=0;P<B.length;++P)o[B[P]]=N[B[P]];c&&(void 0===(n=function(){return N}.call(e,r,e,t))||(t.exports=n))}}()},351:function(t,e,r){var n;!function(){"use strict";var i,s=1e9,o={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},a=!0,u="[DecimalError] ",c=u+"Invalid argument: ",l=u+"Exponent out of range: ",h=Math.floor,f=Math.pow,d=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,p=1e7,g=h(1286742750677284.5),m={};function y(t,e){var r,n,i,s,o,u,c,l,h=t.constructor,f=h.precision;if(!t.s||!e.s)return e.s||(e=new h(t)),a?B(e,f):e;if(c=t.d,l=e.d,o=t.e,i=e.e,c=c.slice(),s=o-i){for(s<0?(n=c,s=-s,u=l.length):(n=l,i=o,u=c.length),s>(u=(o=Math.ceil(f/7))>u?o+1:u+1)&&(s=u,n.length=1),n.reverse();s--;)n.push(0);n.reverse()}for((u=c.length)-(s=l.length)<0&&(s=u,n=l,l=c,c=n),r=0;s;)r=(c[--s]=c[s]+l[s]+r)/p|0,c[s]%=p;for(r&&(c.unshift(r),++i),u=c.length;0==c[--u];)c.pop();return e.d=c,e.e=i,a?B(e,f):e}function w(t,e,r){if(t!==~~t||t<e||t>r)throw Error(c+t)}function b(t){var e,r,n,i=t.length-1,s="",o=t[0];if(i>0){for(s+=o,e=1;e<i;e++)(r=7-(n=t[e]+"").length)&&(s+=x(r)),s+=n;(r=7-(n=(o=t[e])+"").length)&&(s+=x(r))}else if(0===o)return"0";for(;o%10==0;)o/=10;return s+o}m.absoluteValue=m.abs=function(){var t=new this.constructor(this);return t.s&&(t.s=1),t},m.comparedTo=m.cmp=function(t){var e,r,n,i,s=this;if(t=new s.constructor(t),s.s!==t.s)return s.s||-t.s;if(s.e!==t.e)return s.e>t.e^s.s<0?1:-1;for(e=0,r=(n=s.d.length)<(i=t.d.length)?n:i;e<r;++e)if(s.d[e]!==t.d[e])return s.d[e]>t.d[e]^s.s<0?1:-1;return n===i?0:n>i^s.s<0?1:-1},m.decimalPlaces=m.dp=function(){var t=this,e=t.d.length-1,r=7*(e-t.e);if(e=t.d[e])for(;e%10==0;e/=10)r--;return r<0?0:r},m.dividedBy=m.div=function(t){return A(this,new this.constructor(t))},m.dividedToIntegerBy=m.idiv=function(t){var e=this.constructor;return B(A(this,new e(t),0,1),e.precision)},m.equals=m.eq=function(t){return!this.cmp(t)},m.exponent=function(){return E(this)},m.greaterThan=m.gt=function(t){return this.cmp(t)>0},m.greaterThanOrEqualTo=m.gte=function(t){return this.cmp(t)>=0},m.isInteger=m.isint=function(){return this.e>this.d.length-2},m.isNegative=m.isneg=function(){return this.s<0},m.isPositive=m.ispos=function(){return this.s>0},m.isZero=function(){return 0===this.s},m.lessThan=m.lt=function(t){return this.cmp(t)<0},m.lessThanOrEqualTo=m.lte=function(t){return this.cmp(t)<1},m.logarithm=m.log=function(t){var e,r=this,n=r.constructor,s=n.precision,o=s+5;if(void 0===t)t=new n(10);else if((t=new n(t)).s<1||t.eq(i))throw Error(u+"NaN");if(r.s<1)throw Error(u+(r.s?"NaN":"-Infinity"));return r.eq(i)?new n(0):(a=!1,e=A(C(r,o),C(t,o),o),a=!0,B(e,s))},m.minus=m.sub=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?P(e,t):y(e,(t.s=-t.s,t))},m.modulo=m.mod=function(t){var e,r=this,n=r.constructor,i=n.precision;if(!(t=new n(t)).s)throw Error(u+"NaN");return r.s?(a=!1,e=A(r,t,0,1).times(t),a=!0,r.minus(e)):B(new n(r),i)},m.naturalExponential=m.exp=function(){return v(this)},m.naturalLogarithm=m.ln=function(){return C(this)},m.negated=m.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t},m.plus=m.add=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?y(e,t):P(e,(t.s=-t.s,t))},m.precision=m.sd=function(t){var e,r,n,i=this;if(void 0!==t&&t!==!!t&&1!==t&&0!==t)throw Error(c+t);if(e=E(i)+1,r=7*(n=i.d.length-1)+1,n=i.d[n]){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return t&&e>r?e:r},m.squareRoot=m.sqrt=function(){var t,e,r,n,i,s,o,c=this,l=c.constructor;if(c.s<1){if(!c.s)return new l(0);throw Error(u+"NaN")}for(t=E(c),a=!1,0==(i=Math.sqrt(+c))||i==1/0?(((e=b(c.d)).length+t)%2==0&&(e+="0"),i=Math.sqrt(e),t=h((t+1)/2)-(t<0||t%2),n=new l(e=i==1/0?"5e"+t:(e=i.toExponential()).slice(0,e.indexOf("e")+1)+t)):n=new l(i.toString()),i=o=(r=l.precision)+3;;)if(n=(s=n).plus(A(c,s,o+2)).times(.5),b(s.d).slice(0,o)===(e=b(n.d)).slice(0,o)){if(e=e.slice(o-3,o+1),i==o&&"4999"==e){if(B(s,r+1,0),s.times(s).eq(c)){n=s;break}}else if("9999"!=e)break;o+=4}return a=!0,B(n,r)},m.times=m.mul=function(t){var e,r,n,i,s,o,u,c,l,h=this,f=h.constructor,d=h.d,g=(t=new f(t)).d;if(!h.s||!t.s)return new f(0);for(t.s*=h.s,r=h.e+t.e,(c=d.length)<(l=g.length)&&(s=d,d=g,g=s,o=c,c=l,l=o),s=[],n=o=c+l;n--;)s.push(0);for(n=l;--n>=0;){for(e=0,i=c+n;i>n;)u=s[i]+g[n]*d[i-n-1]+e,s[i--]=u%p|0,e=u/p|0;s[i]=(s[i]+e)%p|0}for(;!s[--o];)s.pop();return e?++r:s.shift(),t.d=s,t.e=r,a?B(t,f.precision):t},m.toDecimalPlaces=m.todp=function(t,e){var r=this,n=r.constructor;return r=new n(r),void 0===t?r:(w(t,0,s),void 0===e?e=n.rounding:w(e,0,8),B(r,t+E(r)+1,e))},m.toExponential=function(t,e){var r,n=this,i=n.constructor;return void 0===t?r=I(n,!0):(w(t,0,s),void 0===e?e=i.rounding:w(e,0,8),r=I(n=B(new i(n),t+1,e),!0,t+1)),r},m.toFixed=function(t,e){var r,n,i=this,o=i.constructor;return void 0===t?I(i):(w(t,0,s),void 0===e?e=o.rounding:w(e,0,8),r=I((n=B(new o(i),t+E(i)+1,e)).abs(),!1,t+E(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)},m.toInteger=m.toint=function(){var t=this,e=t.constructor;return B(new e(t),E(t)+1,e.rounding)},m.toNumber=function(){return+this},m.toPower=m.pow=function(t){var e,r,n,s,o,c,l=this,f=l.constructor,d=+(t=new f(t));if(!t.s)return new f(i);if(!(l=new f(l)).s){if(t.s<1)throw Error(u+"Infinity");return l}if(l.eq(i))return l;if(n=f.precision,t.eq(i))return B(l,n);if(c=(e=t.e)>=(r=t.d.length-1),o=l.s,c){if((r=d<0?-d:d)<=9007199254740991){for(s=new f(i),e=Math.ceil(n/7+4),a=!1;r%2&&k((s=s.times(l)).d,e),0!==(r=h(r/2));)k((l=l.times(l)).d,e);return a=!0,t.s<0?new f(i).div(s):B(s,n)}}else if(o<0)throw Error(u+"NaN");return o=o<0&&1&t.d[Math.max(e,r)]?-1:1,l.s=1,a=!1,s=t.times(C(l,n+12)),a=!0,(s=v(s)).s=o,s},m.toPrecision=function(t,e){var r,n,i=this,o=i.constructor;return void 0===t?n=I(i,(r=E(i))<=o.toExpNeg||r>=o.toExpPos):(w(t,1,s),void 0===e?e=o.rounding:w(e,0,8),n=I(i=B(new o(i),t,e),t<=(r=E(i))||r<=o.toExpNeg,t)),n},m.toSignificantDigits=m.tosd=function(t,e){var r=this.constructor;return void 0===t?(t=r.precision,e=r.rounding):(w(t,1,s),void 0===e?e=r.rounding:w(e,0,8)),B(new r(this),t,e)},m.toString=m.valueOf=m.val=m.toJSON=function(){var t=this,e=E(t),r=t.constructor;return I(t,e<=r.toExpNeg||e>=r.toExpPos)};var A=function(){function t(t,e){var r,n=0,i=t.length;for(t=t.slice();i--;)r=t[i]*e+n,t[i]=r%p|0,n=r/p|0;return n&&t.unshift(n),t}function e(t,e,r,n){var i,s;if(r!=n)s=r>n?1:-1;else for(i=s=0;i<r;i++)if(t[i]!=e[i]){s=t[i]>e[i]?1:-1;break}return s}function r(t,e,r){for(var n=0;r--;)t[r]-=n,n=t[r]<e[r]?1:0,t[r]=n*p+t[r]-e[r];for(;!t[0]&&t.length>1;)t.shift()}return function(n,i,s,o){var a,c,l,h,f,d,g,m,y,w,b,A,v,_,x,C,N,P,I=n.constructor,k=n.s==i.s?1:-1,O=n.d,M=i.d;if(!n.s)return new I(n);if(!i.s)throw Error(u+"Division by zero");for(c=n.e-i.e,N=M.length,x=O.length,m=(g=new I(k)).d=[],l=0;M[l]==(O[l]||0);)++l;if(M[l]>(O[l]||0)&&--c,(A=null==s?s=I.precision:o?s+(E(n)-E(i))+1:s)<0)return new I(0);if(A=A/7+2|0,l=0,1==N)for(h=0,M=M[0],A++;(l<x||h)&&A--;l++)v=h*p+(O[l]||0),m[l]=v/M|0,h=v%M|0;else{for((h=p/(M[0]+1)|0)>1&&(M=t(M,h),O=t(O,h),N=M.length,x=O.length),_=N,w=(y=O.slice(0,N)).length;w<N;)y[w++]=0;(P=M.slice()).unshift(0),C=M[0],M[1]>=p/2&&++C;do{h=0,(a=e(M,y,N,w))<0?(b=y[0],N!=w&&(b=b*p+(y[1]||0)),(h=b/C|0)>1?(h>=p&&(h=p-1),1==(a=e(f=t(M,h),y,d=f.length,w=y.length))&&(h--,r(f,N<d?P:M,d))):(0==h&&(a=h=1),f=M.slice()),(d=f.length)<w&&f.unshift(0),r(y,f,w),-1==a&&(a=e(M,y,N,w=y.length))<1&&(h++,r(y,N<w?P:M,w)),w=y.length):0===a&&(h++,y=[0]),m[l++]=h,a&&y[0]?y[w++]=O[_]||0:(y=[O[_]],w=1)}while((_++<x||void 0!==y[0])&&A--)}return m[0]||m.shift(),g.e=c,B(g,o?s+E(g)+1:s)}}();function v(t,e){var r,n,s,o,u,c=0,h=0,d=t.constructor,p=d.precision;if(E(t)>16)throw Error(l+E(t));if(!t.s)return new d(i);for(null==e?(a=!1,u=p):u=e,o=new d(.03125);t.abs().gte(.1);)t=t.times(o),h+=5;for(u+=Math.log(f(2,h))/Math.LN10*2+5|0,r=n=s=new d(i),d.precision=u;;){if(n=B(n.times(t),u),r=r.times(++c),b((o=s.plus(A(n,r,u))).d).slice(0,u)===b(s.d).slice(0,u)){for(;h--;)s=B(s.times(s),u);return d.precision=p,null==e?(a=!0,B(s,p)):s}s=o}}function E(t){for(var e=7*t.e,r=t.d[0];r>=10;r/=10)e++;return e}function _(t,e,r){if(e>t.LN10.sd())throw a=!0,r&&(t.precision=r),Error(u+"LN10 precision limit exceeded");return B(new t(t.LN10),e)}function x(t){for(var e="";t--;)e+="0";return e}function C(t,e){var r,n,s,o,c,l,h,f,d,p=1,g=t,m=g.d,y=g.constructor,w=y.precision;if(g.s<1)throw Error(u+(g.s?"NaN":"-Infinity"));if(g.eq(i))return new y(0);if(null==e?(a=!1,f=w):f=e,g.eq(10))return null==e&&(a=!0),_(y,f);if(f+=10,y.precision=f,n=(r=b(m)).charAt(0),o=E(g),!(Math.abs(o)<15e14))return h=_(y,f+2,w).times(o+""),g=C(new y(n+"."+r.slice(1)),f-10).plus(h),y.precision=w,null==e?(a=!0,B(g,w)):g;for(;n<7&&1!=n||1==n&&r.charAt(1)>3;)n=(r=b((g=g.times(t)).d)).charAt(0),p++;for(o=E(g),n>1?(g=new y("0."+r),o++):g=new y(n+"."+r.slice(1)),l=c=g=A(g.minus(i),g.plus(i),f),d=B(g.times(g),f),s=3;;){if(c=B(c.times(d),f),b((h=l.plus(A(c,new y(s),f))).d).slice(0,f)===b(l.d).slice(0,f))return l=l.times(2),0!==o&&(l=l.plus(_(y,f+2,w).times(o+""))),l=A(l,new y(p),f),y.precision=w,null==e?(a=!0,B(l,w)):l;l=h,s+=2}}function N(t,e){var r,n,i;for((r=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(r<0&&(r=n),r+=+e.slice(n+1),e=e.substring(0,n)):r<0&&(r=e.length),n=0;48===e.charCodeAt(n);)++n;for(i=e.length;48===e.charCodeAt(i-1);)--i;if(e=e.slice(n,i)){if(i-=n,r=r-n-1,t.e=h(r/7),t.d=[],n=(r+1)%7,r<0&&(n+=7),n<i){for(n&&t.d.push(+e.slice(0,n)),i-=7;n<i;)t.d.push(+e.slice(n,n+=7));n=7-(e=e.slice(n)).length}else n-=i;for(;n--;)e+="0";if(t.d.push(+e),a&&(t.e>g||t.e<-g))throw Error(l+r)}else t.s=0,t.e=0,t.d=[0];return t}function B(t,e,r){var n,i,s,o,u,c,d,m,y=t.d;for(o=1,s=y[0];s>=10;s/=10)o++;if((n=e-o)<0)n+=7,i=e,d=y[m=0];else{if((m=Math.ceil((n+1)/7))>=(s=y.length))return t;for(d=s=y[m],o=1;s>=10;s/=10)o++;i=(n%=7)-7+o}if(void 0!==r&&(u=d/(s=f(10,o-i-1))%10|0,c=e<0||void 0!==y[m+1]||d%s,c=r<4?(u||c)&&(0==r||r==(t.s<0?3:2)):u>5||5==u&&(4==r||c||6==r&&(n>0?i>0?d/f(10,o-i):0:y[m-1])%10&1||r==(t.s<0?8:7))),e<1||!y[0])return c?(s=E(t),y.length=1,e=e-s-1,y[0]=f(10,(7-e%7)%7),t.e=h(-e/7)||0):(y.length=1,y[0]=t.e=t.s=0),t;if(0==n?(y.length=m,s=1,m--):(y.length=m+1,s=f(10,7-n),y[m]=i>0?(d/f(10,o-i)%f(10,i)|0)*s:0),c)for(;;){if(0==m){(y[0]+=s)==p&&(y[0]=1,++t.e);break}if(y[m]+=s,y[m]!=p)break;y[m--]=0,s=1}for(n=y.length;0===y[--n];)y.pop();if(a&&(t.e>g||t.e<-g))throw Error(l+E(t));return t}function P(t,e){var r,n,i,s,o,u,c,l,h,f,d=t.constructor,g=d.precision;if(!t.s||!e.s)return e.s?e.s=-e.s:e=new d(t),a?B(e,g):e;if(c=t.d,f=e.d,n=e.e,l=t.e,c=c.slice(),o=l-n){for((h=o<0)?(r=c,o=-o,u=f.length):(r=f,n=l,u=c.length),o>(i=Math.max(Math.ceil(g/7),u)+2)&&(o=i,r.length=1),r.reverse(),i=o;i--;)r.push(0);r.reverse()}else{for((h=(i=c.length)<(u=f.length))&&(u=i),i=0;i<u;i++)if(c[i]!=f[i]){h=c[i]<f[i];break}o=0}for(h&&(r=c,c=f,f=r,e.s=-e.s),u=c.length,i=f.length-u;i>0;--i)c[u++]=0;for(i=f.length;i>o;){if(c[--i]<f[i]){for(s=i;s&&0===c[--s];)c[s]=p-1;--c[s],c[i]+=p}c[i]-=f[i]}for(;0===c[--u];)c.pop();for(;0===c[0];c.shift())--n;return c[0]?(e.d=c,e.e=n,a?B(e,g):e):new d(0)}function I(t,e,r){var n,i=E(t),s=b(t.d),o=s.length;return e?(r&&(n=r-o)>0?s=s.charAt(0)+"."+s.slice(1)+x(n):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(i<0?"e":"e+")+i):i<0?(s="0."+x(-i-1)+s,r&&(n=r-o)>0&&(s+=x(n))):i>=o?(s+=x(i+1-o),r&&(n=r-i-1)>0&&(s=s+"."+x(n))):((n=i+1)<o&&(s=s.slice(0,n)+"."+s.slice(n)),r&&(n=r-o)>0&&(i+1===o&&(s+="."),s+=x(n))),t.s<0?"-"+s:s}function k(t,e){if(t.length>e)return t.length=e,!0}function O(t){if(!t||"object"!=typeof t)throw Error(u+"Object expected");var e,r,n,i=["precision",1,s,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(e=0;e<i.length;e+=3)if(void 0!==(n=t[r=i[e]])){if(!(h(n)===n&&n>=i[e+1]&&n<=i[e+2]))throw Error(c+r+": "+n);this[r]=n}if(void 0!==(n=t[r="LN10"])){if(n!=Math.LN10)throw Error(c+r+": "+n);this[r]=new this(n)}return this}(o=function t(e){var r,n,i;function s(t){var e=this;if(!(e instanceof s))return new s(t);if(e.constructor=s,t instanceof s)return e.s=t.s,e.e=t.e,void(e.d=(t=t.d)?t.slice():t);if("number"==typeof t){if(0*t!=0)throw Error(c+t);if(t>0)e.s=1;else{if(!(t<0))return e.s=0,e.e=0,void(e.d=[0]);t=-t,e.s=-1}return t===~~t&&t<1e7?(e.e=0,void(e.d=[t])):N(e,t.toString())}if("string"!=typeof t)throw Error(c+t);if(45===t.charCodeAt(0)?(t=t.slice(1),e.s=-1):e.s=1,!d.test(t))throw Error(c+t);N(e,t)}if(s.prototype=m,s.ROUND_UP=0,s.ROUND_DOWN=1,s.ROUND_CEIL=2,s.ROUND_FLOOR=3,s.ROUND_HALF_UP=4,s.ROUND_HALF_DOWN=5,s.ROUND_HALF_EVEN=6,s.ROUND_HALF_CEIL=7,s.ROUND_HALF_FLOOR=8,s.clone=t,s.config=s.set=O,void 0===e&&(e={}),e)for(i=["precision","rounding","toExpNeg","toExpPos","LN10"],r=0;r<i.length;)e.hasOwnProperty(n=i[r++])||(e[n]=this[n]);return s.config(e),s}(o)).default=o.Decimal=o,i=new o(1),void 0===(n=function(){return o}.call(e,r,e,t))||(t.exports=n)}()},404:function(t,e,r){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function s(t,e,r){if(s.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var o;"object"==typeof t?t.exports=s:e.BN=s,s.BN=s,s.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(790).Buffer}catch(t){}function a(t,e){var r=t.charCodeAt(e);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 "+t)}function u(t,e,r){var n=a(t,r);return r-1>=e&&(n|=a(t,r-1)<<4),n}function c(t,e,r,i){for(var s=0,o=0,a=Math.min(t.length,r),u=e;u<a;u++){var c=t.charCodeAt(u)-48;s*=i,o=c>=49?c-49+10:c>=17?c-17+10:c,n(c>=0&&o<i,"Invalid character"),s+=o}return s}function l(t,e){t.words=e.words,t.length=e.length,t.negative=e.negative,t.red=e.red}if(s.isBN=function(t){return t instanceof s||null!==t&&"object"==typeof t&&t.constructor.wordSize===s.wordSize&&Array.isArray(t.words)},s.max=function(t,e){return t.cmp(e)>0?t:e},s.min=function(t,e){return t.cmp(e)<0?t:e},s.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,r):(this._parseBase(t,e,i),"le"===r&&this._initArray(this.toArray(),e,r)))},s.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},s.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var s,o,a=0;if("be"===r)for(i=t.length-1,s=0;i>=0;i-=3)o=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[s]|=o<<a&67108863,this.words[s+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===r)for(i=0,s=0;i<t.length;i+=3)o=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[s]|=o<<a&67108863,this.words[s+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this._strip()},s.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,s=0,o=0;if("be"===r)for(n=t.length-1;n>=e;n-=2)i=u(t,e,n)<<s,this.words[o]|=67108863&i,s>=18?(s-=18,o+=1,this.words[o]|=i>>>26):s+=8;else for(n=(t.length-e)%2==0?e+1:e;n<t.length;n+=2)i=u(t,e,n)<<s,this.words[o]|=67108863&i,s>=18?(s-=18,o+=1,this.words[o]|=i>>>26):s+=8;this._strip()},s.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var s=t.length-r,o=s%n,a=Math.min(s,s-o)+r,u=0,l=r;l<a;l+=n)u=c(t,l,l+n,e),this.imuln(i),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u);if(0!==o){var h=1;for(u=c(t,l,t.length,e),l=0;l<o;l++)h*=e;this.imuln(h),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u)}this._strip()},s.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},s.prototype._move=function(t){l(t,this)},s.prototype.clone=function(){var t=new s(null);return this.copy(t),t},s.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},s.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{s.prototype[Symbol.for("nodejs.util.inspect.custom")]=h}catch(t){s.prototype.inspect=h}else s.prototype.inspect=h;function h(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var f=["","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"],d=[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];function g(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],s=0|e.words[0],o=i*s,a=67108863&o,u=o/67108864|0;r.words[0]=a;for(var c=1;c<n;c++){for(var l=u>>>26,h=67108863&u,f=Math.min(c,e.length-1),d=Math.max(0,c-t.length+1);d<=f;d++){var p=c-d|0;l+=(o=(i=0|t.words[p])*(s=0|e.words[d])+h)/67108864|0,h=67108863&o}r.words[c]=0|h,u=0|l}return 0!==u?r.words[c]=0|u:r.length--,r._strip()}s.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,s=0,o=0;o<this.length;o++){var a=this.words[o],u=(16777215&(a<<i|s)).toString(16);s=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,o--),r=0!==s||o!==this.length-1?f[6-u.length]+u+r:u+r}for(0!==s&&(r=s.toString(16)+r);r.length%e!==0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=d[t],l=p[t];r="";var h=this.clone();for(h.negative=0;!h.isZero();){var g=h.modrn(l).toString(t);r=(h=h.idivn(l)).isZero()?g+r:f[c-g.length]+g+r}for(this.isZero()&&(r="0"+r);r.length%e!==0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},s.prototype.toJSON=function(){return this.toString(16,2)},o&&(s.prototype.toBuffer=function(t,e){return this.toArrayLike(o,t,e)}),s.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},s.prototype.toArrayLike=function(t,e,r){this._strip();var i=this.byteLength(),s=r||Math.max(1,i);n(i<=s,"byte array longer than desired length"),n(s>0,"Requested array length <= 0");var o=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,s);return this["_toArrayLike"+("le"===e?"LE":"BE")](o,i),o},s.prototype._toArrayLikeLE=function(t,e){for(var r=0,n=0,i=0,s=0;i<this.length;i++){var o=this.words[i]<<s|n;t[r++]=255&o,r<t.length&&(t[r++]=o>>8&255),r<t.length&&(t[r++]=o>>16&255),6===s?(r<t.length&&(t[r++]=o>>24&255),n=0,s=0):(n=o>>>24,s+=2)}if(r<t.length)for(t[r++]=n;r<t.length;)t[r++]=0},s.prototype._toArrayLikeBE=function(t,e){for(var r=t.length-1,n=0,i=0,s=0;i<this.length;i++){var o=this.words[i]<<s|n;t[r--]=255&o,r>=0&&(t[r--]=o>>8&255),r>=0&&(t[r--]=o>>16&255),6===s?(r>=0&&(t[r--]=o>>24&255),n=0,s=0):(n=o>>>24,s+=2)}if(r>=0)for(t[r--]=n;r>=0;)t[r--]=0},Math.clz32?s.prototype._countBits=function(t){return 32-Math.clz32(t)}:s.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},s.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 8191&e||(r+=13,e>>>=13),127&e||(r+=7,e>>>=7),15&e||(r+=4,e>>>=4),3&e||(r+=2,e>>>=2),1&e||r++,r},s.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},s.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},s.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},s.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},s.prototype.isNeg=function(){return 0!==this.negative},s.prototype.neg=function(){return this.clone().ineg()},s.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},s.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this._strip()},s.prototype.ior=function(t){return n(0===(this.negative|t.negative)),this.iuor(t)},s.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},s.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},s.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this._strip()},s.prototype.iand=function(t){return n(0===(this.negative|t.negative)),this.iuand(t)},s.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},s.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},s.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this._strip()},s.prototype.ixor=function(t){return n(0===(this.negative|t.negative)),this.iuxor(t)},s.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},s.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},s.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},s.prototype.notn=function(t){return this.clone().inotn(t)},s.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<i:this.words[r]&~(1<<i),this._strip()},s.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,s=0;s<n.length;s++)e=(0|r.words[s])+(0|n.words[s])+i,this.words[s]=67108863&e,i=e>>>26;for(;0!==i&&s<r.length;s++)e=(0|r.words[s])+i,this.words[s]=67108863&e,i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this},s.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},s.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var s=0,o=0;o<n.length;o++)s=(e=(0|r.words[o])-(0|n.words[o])+s)>>26,this.words[o]=67108863&e;for(;0!==s&&o<r.length;o++)s=(e=(0|r.words[o])+s)>>26,this.words[o]=67108863&e;if(0===s&&o<r.length&&r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this.length=Math.max(this.length,o),r!==this&&(this.negative=1),this._strip()},s.prototype.sub=function(t){return this.clone().isub(t)};var m=function(t,e,r){var n,i,s,o=t.words,a=e.words,u=r.words,c=0,l=0|o[0],h=8191&l,f=l>>>13,d=0|o[1],p=8191&d,g=d>>>13,m=0|o[2],y=8191&m,w=m>>>13,b=0|o[3],A=8191&b,v=b>>>13,E=0|o[4],_=8191&E,x=E>>>13,C=0|o[5],N=8191&C,B=C>>>13,P=0|o[6],I=8191&P,k=P>>>13,O=0|o[7],M=8191&O,T=O>>>13,S=0|o[8],R=8191&S,D=S>>>13,F=0|o[9],L=8191&F,U=F>>>13,G=0|a[0],H=8191&G,q=G>>>13,z=0|a[1],j=8191&z,Q=z>>>13,V=0|a[2],J=8191&V,K=V>>>13,W=0|a[3],Z=8191&W,X=W>>>13,Y=0|a[4],$=8191&Y,tt=Y>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],st=8191&it,ot=it>>>13,at=0|a[7],ut=8191&at,ct=at>>>13,lt=0|a[8],ht=8191&lt,ft=lt>>>13,dt=0|a[9],pt=8191&dt,gt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(c+(n=Math.imul(h,H))|0)+((8191&(i=(i=Math.imul(h,q))+Math.imul(f,H)|0))<<13)|0;c=((s=Math.imul(f,q))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(p,H),i=(i=Math.imul(p,q))+Math.imul(g,H)|0,s=Math.imul(g,q);var yt=(c+(n=n+Math.imul(h,j)|0)|0)+((8191&(i=(i=i+Math.imul(h,Q)|0)+Math.imul(f,j)|0))<<13)|0;c=((s=s+Math.imul(f,Q)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,H),i=(i=Math.imul(y,q))+Math.imul(w,H)|0,s=Math.imul(w,q),n=n+Math.imul(p,j)|0,i=(i=i+Math.imul(p,Q)|0)+Math.imul(g,j)|0,s=s+Math.imul(g,Q)|0;var wt=(c+(n=n+Math.imul(h,J)|0)|0)+((8191&(i=(i=i+Math.imul(h,K)|0)+Math.imul(f,J)|0))<<13)|0;c=((s=s+Math.imul(f,K)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(A,H),i=(i=Math.imul(A,q))+Math.imul(v,H)|0,s=Math.imul(v,q),n=n+Math.imul(y,j)|0,i=(i=i+Math.imul(y,Q)|0)+Math.imul(w,j)|0,s=s+Math.imul(w,Q)|0,n=n+Math.imul(p,J)|0,i=(i=i+Math.imul(p,K)|0)+Math.imul(g,J)|0,s=s+Math.imul(g,K)|0;var bt=(c+(n=n+Math.imul(h,Z)|0)|0)+((8191&(i=(i=i+Math.imul(h,X)|0)+Math.imul(f,Z)|0))<<13)|0;c=((s=s+Math.imul(f,X)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(_,H),i=(i=Math.imul(_,q))+Math.imul(x,H)|0,s=Math.imul(x,q),n=n+Math.imul(A,j)|0,i=(i=i+Math.imul(A,Q)|0)+Math.imul(v,j)|0,s=s+Math.imul(v,Q)|0,n=n+Math.imul(y,J)|0,i=(i=i+Math.imul(y,K)|0)+Math.imul(w,J)|0,s=s+Math.imul(w,K)|0,n=n+Math.imul(p,Z)|0,i=(i=i+Math.imul(p,X)|0)+Math.imul(g,Z)|0,s=s+Math.imul(g,X)|0;var At=(c+(n=n+Math.imul(h,$)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(f,$)|0))<<13)|0;c=((s=s+Math.imul(f,tt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(N,H),i=(i=Math.imul(N,q))+Math.imul(B,H)|0,s=Math.imul(B,q),n=n+Math.imul(_,j)|0,i=(i=i+Math.imul(_,Q)|0)+Math.imul(x,j)|0,s=s+Math.imul(x,Q)|0,n=n+Math.imul(A,J)|0,i=(i=i+Math.imul(A,K)|0)+Math.imul(v,J)|0,s=s+Math.imul(v,K)|0,n=n+Math.imul(y,Z)|0,i=(i=i+Math.imul(y,X)|0)+Math.imul(w,Z)|0,s=s+Math.imul(w,X)|0,n=n+Math.imul(p,$)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(g,$)|0,s=s+Math.imul(g,tt)|0;var vt=(c+(n=n+Math.imul(h,rt)|0)|0)+((8191&(i=(i=i+Math.imul(h,nt)|0)+Math.imul(f,rt)|0))<<13)|0;c=((s=s+Math.imul(f,nt)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(I,H),i=(i=Math.imul(I,q))+Math.imul(k,H)|0,s=Math.imul(k,q),n=n+Math.imul(N,j)|0,i=(i=i+Math.imul(N,Q)|0)+Math.imul(B,j)|0,s=s+Math.imul(B,Q)|0,n=n+Math.imul(_,J)|0,i=(i=i+Math.imul(_,K)|0)+Math.imul(x,J)|0,s=s+Math.imul(x,K)|0,n=n+Math.imul(A,Z)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(v,Z)|0,s=s+Math.imul(v,X)|0,n=n+Math.imul(y,$)|0,i=(i=i+Math.imul(y,tt)|0)+Math.imul(w,$)|0,s=s+Math.imul(w,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(g,rt)|0,s=s+Math.imul(g,nt)|0;var Et=(c+(n=n+Math.imul(h,st)|0)|0)+((8191&(i=(i=i+Math.imul(h,ot)|0)+Math.imul(f,st)|0))<<13)|0;c=((s=s+Math.imul(f,ot)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(M,H),i=(i=Math.imul(M,q))+Math.imul(T,H)|0,s=Math.imul(T,q),n=n+Math.imul(I,j)|0,i=(i=i+Math.imul(I,Q)|0)+Math.imul(k,j)|0,s=s+Math.imul(k,Q)|0,n=n+Math.imul(N,J)|0,i=(i=i+Math.imul(N,K)|0)+Math.imul(B,J)|0,s=s+Math.imul(B,K)|0,n=n+Math.imul(_,Z)|0,i=(i=i+Math.imul(_,X)|0)+Math.imul(x,Z)|0,s=s+Math.imul(x,X)|0,n=n+Math.imul(A,$)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(v,$)|0,s=s+Math.imul(v,tt)|0,n=n+Math.imul(y,rt)|0,i=(i=i+Math.imul(y,nt)|0)+Math.imul(w,rt)|0,s=s+Math.imul(w,nt)|0,n=n+Math.imul(p,st)|0,i=(i=i+Math.imul(p,ot)|0)+Math.imul(g,st)|0,s=s+Math.imul(g,ot)|0;var _t=(c+(n=n+Math.imul(h,ut)|0)|0)+((8191&(i=(i=i+Math.imul(h,ct)|0)+Math.imul(f,ut)|0))<<13)|0;c=((s=s+Math.imul(f,ct)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(R,H),i=(i=Math.imul(R,q))+Math.imul(D,H)|0,s=Math.imul(D,q),n=n+Math.imul(M,j)|0,i=(i=i+Math.imul(M,Q)|0)+Math.imul(T,j)|0,s=s+Math.imul(T,Q)|0,n=n+Math.imul(I,J)|0,i=(i=i+Math.imul(I,K)|0)+Math.imul(k,J)|0,s=s+Math.imul(k,K)|0,n=n+Math.imul(N,Z)|0,i=(i=i+Math.imul(N,X)|0)+Math.imul(B,Z)|0,s=s+Math.imul(B,X)|0,n=n+Math.imul(_,$)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(x,$)|0,s=s+Math.imul(x,tt)|0,n=n+Math.imul(A,rt)|0,i=(i=i+Math.imul(A,nt)|0)+Math.imul(v,rt)|0,s=s+Math.imul(v,nt)|0,n=n+Math.imul(y,st)|0,i=(i=i+Math.imul(y,ot)|0)+Math.imul(w,st)|0,s=s+Math.imul(w,ot)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ct)|0)+Math.imul(g,ut)|0,s=s+Math.imul(g,ct)|0;var xt=(c+(n=n+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,ft)|0)+Math.imul(f,ht)|0))<<13)|0;c=((s=s+Math.imul(f,ft)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(L,H),i=(i=Math.imul(L,q))+Math.imul(U,H)|0,s=Math.imul(U,q),n=n+Math.imul(R,j)|0,i=(i=i+Math.imul(R,Q)|0)+Math.imul(D,j)|0,s=s+Math.imul(D,Q)|0,n=n+Math.imul(M,J)|0,i=(i=i+Math.imul(M,K)|0)+Math.imul(T,J)|0,s=s+Math.imul(T,K)|0,n=n+Math.imul(I,Z)|0,i=(i=i+Math.imul(I,X)|0)+Math.imul(k,Z)|0,s=s+Math.imul(k,X)|0,n=n+Math.imul(N,$)|0,i=(i=i+Math.imul(N,tt)|0)+Math.imul(B,$)|0,s=s+Math.imul(B,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(x,rt)|0,s=s+Math.imul(x,nt)|0,n=n+Math.imul(A,st)|0,i=(i=i+Math.imul(A,ot)|0)+Math.imul(v,st)|0,s=s+Math.imul(v,ot)|0,n=n+Math.imul(y,ut)|0,i=(i=i+Math.imul(y,ct)|0)+Math.imul(w,ut)|0,s=s+Math.imul(w,ct)|0,n=n+Math.imul(p,ht)|0,i=(i=i+Math.imul(p,ft)|0)+Math.imul(g,ht)|0,s=s+Math.imul(g,ft)|0;var Ct=(c+(n=n+Math.imul(h,pt)|0)|0)+((8191&(i=(i=i+Math.imul(h,gt)|0)+Math.imul(f,pt)|0))<<13)|0;c=((s=s+Math.imul(f,gt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,j),i=(i=Math.imul(L,Q))+Math.imul(U,j)|0,s=Math.imul(U,Q),n=n+Math.imul(R,J)|0,i=(i=i+Math.imul(R,K)|0)+Math.imul(D,J)|0,s=s+Math.imul(D,K)|0,n=n+Math.imul(M,Z)|0,i=(i=i+Math.imul(M,X)|0)+Math.imul(T,Z)|0,s=s+Math.imul(T,X)|0,n=n+Math.imul(I,$)|0,i=(i=i+Math.imul(I,tt)|0)+Math.imul(k,$)|0,s=s+Math.imul(k,tt)|0,n=n+Math.imul(N,rt)|0,i=(i=i+Math.imul(N,nt)|0)+Math.imul(B,rt)|0,s=s+Math.imul(B,nt)|0,n=n+Math.imul(_,st)|0,i=(i=i+Math.imul(_,ot)|0)+Math.imul(x,st)|0,s=s+Math.imul(x,ot)|0,n=n+Math.imul(A,ut)|0,i=(i=i+Math.imul(A,ct)|0)+Math.imul(v,ut)|0,s=s+Math.imul(v,ct)|0,n=n+Math.imul(y,ht)|0,i=(i=i+Math.imul(y,ft)|0)+Math.imul(w,ht)|0,s=s+Math.imul(w,ft)|0;var Nt=(c+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,gt)|0)+Math.imul(g,pt)|0))<<13)|0;c=((s=s+Math.imul(g,gt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(L,J),i=(i=Math.imul(L,K))+Math.imul(U,J)|0,s=Math.imul(U,K),n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(D,Z)|0,s=s+Math.imul(D,X)|0,n=n+Math.imul(M,$)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(T,$)|0,s=s+Math.imul(T,tt)|0,n=n+Math.imul(I,rt)|0,i=(i=i+Math.imul(I,nt)|0)+Math.imul(k,rt)|0,s=s+Math.imul(k,nt)|0,n=n+Math.imul(N,st)|0,i=(i=i+Math.imul(N,ot)|0)+Math.imul(B,st)|0,s=s+Math.imul(B,ot)|0,n=n+Math.imul(_,ut)|0,i=(i=i+Math.imul(_,ct)|0)+Math.imul(x,ut)|0,s=s+Math.imul(x,ct)|0,n=n+Math.imul(A,ht)|0,i=(i=i+Math.imul(A,ft)|0)+Math.imul(v,ht)|0,s=s+Math.imul(v,ft)|0;var Bt=(c+(n=n+Math.imul(y,pt)|0)|0)+((8191&(i=(i=i+Math.imul(y,gt)|0)+Math.imul(w,pt)|0))<<13)|0;c=((s=s+Math.imul(w,gt)|0)+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,n=Math.imul(L,Z),i=(i=Math.imul(L,X))+Math.imul(U,Z)|0,s=Math.imul(U,X),n=n+Math.imul(R,$)|0,i=(i=i+Math.imul(R,tt)|0)+Math.imul(D,$)|0,s=s+Math.imul(D,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(T,rt)|0,s=s+Math.imul(T,nt)|0,n=n+Math.imul(I,st)|0,i=(i=i+Math.imul(I,ot)|0)+Math.imul(k,st)|0,s=s+Math.imul(k,ot)|0,n=n+Math.imul(N,ut)|0,i=(i=i+Math.imul(N,ct)|0)+Math.imul(B,ut)|0,s=s+Math.imul(B,ct)|0,n=n+Math.imul(_,ht)|0,i=(i=i+Math.imul(_,ft)|0)+Math.imul(x,ht)|0,s=s+Math.imul(x,ft)|0;var Pt=(c+(n=n+Math.imul(A,pt)|0)|0)+((8191&(i=(i=i+Math.imul(A,gt)|0)+Math.imul(v,pt)|0))<<13)|0;c=((s=s+Math.imul(v,gt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(L,$),i=(i=Math.imul(L,tt))+Math.imul(U,$)|0,s=Math.imul(U,tt),n=n+Math.imul(R,rt)|0,i=(i=i+Math.imul(R,nt)|0)+Math.imul(D,rt)|0,s=s+Math.imul(D,nt)|0,n=n+Math.imul(M,st)|0,i=(i=i+Math.imul(M,ot)|0)+Math.imul(T,st)|0,s=s+Math.imul(T,ot)|0,n=n+Math.imul(I,ut)|0,i=(i=i+Math.imul(I,ct)|0)+Math.imul(k,ut)|0,s=s+Math.imul(k,ct)|0,n=n+Math.imul(N,ht)|0,i=(i=i+Math.imul(N,ft)|0)+Math.imul(B,ht)|0,s=s+Math.imul(B,ft)|0;var It=(c+(n=n+Math.imul(_,pt)|0)|0)+((8191&(i=(i=i+Math.imul(_,gt)|0)+Math.imul(x,pt)|0))<<13)|0;c=((s=s+Math.imul(x,gt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(L,rt),i=(i=Math.imul(L,nt))+Math.imul(U,rt)|0,s=Math.imul(U,nt),n=n+Math.imul(R,st)|0,i=(i=i+Math.imul(R,ot)|0)+Math.imul(D,st)|0,s=s+Math.imul(D,ot)|0,n=n+Math.imul(M,ut)|0,i=(i=i+Math.imul(M,ct)|0)+Math.imul(T,ut)|0,s=s+Math.imul(T,ct)|0,n=n+Math.imul(I,ht)|0,i=(i=i+Math.imul(I,ft)|0)+Math.imul(k,ht)|0,s=s+Math.imul(k,ft)|0;var kt=(c+(n=n+Math.imul(N,pt)|0)|0)+((8191&(i=(i=i+Math.imul(N,gt)|0)+Math.imul(B,pt)|0))<<13)|0;c=((s=s+Math.imul(B,gt)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(L,st),i=(i=Math.imul(L,ot))+Math.imul(U,st)|0,s=Math.imul(U,ot),n=n+Math.imul(R,ut)|0,i=(i=i+Math.imul(R,ct)|0)+Math.imul(D,ut)|0,s=s+Math.imul(D,ct)|0,n=n+Math.imul(M,ht)|0,i=(i=i+Math.imul(M,ft)|0)+Math.imul(T,ht)|0,s=s+Math.imul(T,ft)|0;var Ot=(c+(n=n+Math.imul(I,pt)|0)|0)+((8191&(i=(i=i+Math.imul(I,gt)|0)+Math.imul(k,pt)|0))<<13)|0;c=((s=s+Math.imul(k,gt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(L,ut),i=(i=Math.imul(L,ct))+Math.imul(U,ut)|0,s=Math.imul(U,ct),n=n+Math.imul(R,ht)|0,i=(i=i+Math.imul(R,ft)|0)+Math.imul(D,ht)|0,s=s+Math.imul(D,ft)|0;var Mt=(c+(n=n+Math.imul(M,pt)|0)|0)+((8191&(i=(i=i+Math.imul(M,gt)|0)+Math.imul(T,pt)|0))<<13)|0;c=((s=s+Math.imul(T,gt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,ft))+Math.imul(U,ht)|0,s=Math.imul(U,ft);var Tt=(c+(n=n+Math.imul(R,pt)|0)|0)+((8191&(i=(i=i+Math.imul(R,gt)|0)+Math.imul(D,pt)|0))<<13)|0;c=((s=s+Math.imul(D,gt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863;var St=(c+(n=Math.imul(L,pt))|0)+((8191&(i=(i=Math.imul(L,gt))+Math.imul(U,pt)|0))<<13)|0;return c=((s=Math.imul(U,gt))+(i>>>13)|0)+(St>>>26)|0,St&=67108863,u[0]=mt,u[1]=yt,u[2]=wt,u[3]=bt,u[4]=At,u[5]=vt,u[6]=Et,u[7]=_t,u[8]=xt,u[9]=Ct,u[10]=Nt,u[11]=Bt,u[12]=Pt,u[13]=It,u[14]=kt,u[15]=Ot,u[16]=Mt,u[17]=Tt,u[18]=St,0!==c&&(u[19]=c,r.length++),r};function y(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,s=0;s<r.length-1;s++){var o=i;i=0;for(var a=67108863&n,u=Math.min(s,e.length-1),c=Math.max(0,s-t.length+1);c<=u;c++){var l=s-c,h=(0|t.words[l])*(0|e.words[c]),f=67108863&h;a=67108863&(f=f+a|0),i+=(o=(o=o+(h/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}r.words[s]=a,n=o,o=i}return 0!==n?r.words[s]=n:r.length--,r._strip()}function w(t,e,r){return y(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(m=g),s.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?m(this,t,e):r<63?g(this,t,e):r<1024?y(this,t,e):w(this,t,e)},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=s.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},b.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,i=0;i<e;i++)n|=(1&t)<<e-i-1,t>>=1;return n},b.prototype.permute=function(t,e,r,n,i,s){for(var o=0;o<s;o++)n[o]=e[t[o]],i[o]=r[t[o]]},b.prototype.transform=function(t,e,r,n,i,s){this.permute(s,t,e,r,n,i);for(var o=1;o<i;o<<=1)for(var a=o<<1,u=Math.cos(2*Math.PI/a),c=Math.sin(2*Math.PI/a),l=0;l<i;l+=a)for(var h=u,f=c,d=0;d<o;d++){var p=r[l+d],g=n[l+d],m=r[l+d+o],y=n[l+d+o],w=h*m-f*y;y=h*y+f*m,m=w,r[l+d]=p+m,n[l+d]=g+y,r[l+d+o]=p-m,n[l+d+o]=g-y,d!==a&&(w=u*h-c*f,f=u*f+c*h,h=w)}},b.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},b.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=t[n];t[n]=t[r-n-1],t[r-n-1]=i,i=e[n],e[n]=-e[r-n-1],e[r-n-1]=-i}},b.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var i=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&i,r=i<67108864?0:i/67108864|0}return t},b.prototype.convert13b=function(t,e,r,i){for(var s=0,o=0;o<e;o++)s+=0|t[o],r[2*o]=8191&s,s>>>=13,r[2*o+1]=8191&s,s>>>=13;for(o=2*e;o<i;++o)r[o]=0;n(0===s),n(!(-8192&s))},b.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},b.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(n),s=this.stub(n),o=new Array(n),a=new Array(n),u=new Array(n),c=new Array(n),l=new Array(n),h=new Array(n),f=r.words;f.length=n,this.convert13b(t.words,t.length,o,n),this.convert13b(e.words,e.length,c,n),this.transform(o,s,a,u,n,i),this.transform(c,s,l,h,n,i);for(var d=0;d<n;d++){var p=a[d]*l[d]-u[d]*h[d];u[d]=a[d]*h[d]+u[d]*l[d],a[d]=p}return this.conjugate(a,u,n),this.transform(a,u,f,s,n,i),this.conjugate(f,s,n),this.normalize13b(f,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r._strip()},s.prototype.mul=function(t){var e=new s(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},s.prototype.mulf=function(t){var e=new s(null);return e.words=new Array(this.length+t.length),w(this,t,e)},s.prototype.imul=function(t){return this.clone().mulTo(t,this)},s.prototype.imuln=function(t){var e=t<0;e&&(t=-t),n("number"==typeof t),n(t<67108864);for(var r=0,i=0;i<this.length;i++){var s=(0|this.words[i])*t,o=(67108863&s)+(67108863&r);r>>=26,r+=s/67108864|0,r+=o>>>26,this.words[i]=67108863&o}return 0!==r&&(this.words[i]=r,this.length++),this.length=0===t?1:this.length,e?this.ineg():this},s.prototype.muln=function(t){return this.clone().imuln(t)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,i=r%26;e[r]=t.words[n]>>>i&1}return e}(t);if(0===e.length)return new s(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var i=r.sqr();n<e.length;n++,i=i.sqr())0!==e[n]&&(r=r.mul(i));return r},s.prototype.iushln=function(t){n("number"==typeof t&&t>=0);var e,r=t%26,i=(t-r)/26,s=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(e=0;e<this.length;e++){var a=this.words[e]&s,u=(0|this.words[e])-a<<r;this.words[e]=u|o,o=a>>>26-r}o&&(this.words[e]=o,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this._strip()},s.prototype.ishln=function(t){return n(0===this.negative),this.iushln(t)},s.prototype.iushrn=function(t,e,r){var i;n("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var s=t%26,o=Math.min((t-s)/26,this.length),a=67108863^67108863>>>s<<s,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 h=0|this.words[c];this.words[c]=l<<26-s|h>>>s,l=h&a}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},s.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},s.prototype.shln=function(t){return this.clone().ishln(t)},s.prototype.ushln=function(t){return this.clone().iushln(t)},s.prototype.shrn=function(t){return this.clone().ishrn(t)},s.prototype.ushrn=function(t){return this.clone().iushrn(t)},s.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<<e;return!(this.length<=r||!(this.words[r]&i))},s.prototype.imaskn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this._strip()},s.prototype.maskn=function(t){return this.clone().imaskn(t)},s.prototype.iaddn=function(t){return n("number"==typeof t),n(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<=t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},s.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},s.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this._strip()},s.prototype.addn=function(t){return this.clone().iaddn(t)},s.prototype.subn=function(t){return this.clone().isubn(t)},s.prototype.iabs=function(){return this.negative=0,this},s.prototype.abs=function(){return this.clone().iabs()},s.prototype._ishlnsubmul=function(t,e,r){var i,s,o=t.length+r;this._expand(o);var a=0;for(i=0;i<t.length;i++){s=(0|this.words[i+r])+a;var u=(0|t.words[i])*e;a=((s-=67108863&u)>>26)-(u/67108864|0),this.words[i+r]=67108863&s}for(;i<this.length-r;i++)a=(s=(0|this.words[i+r])+a)>>26,this.words[i+r]=67108863&s;if(0===a)return this._strip();for(n(-1===a),a=0,i=0;i<this.length;i++)a=(s=-(0|this.words[i])+a)>>26,this.words[i]=67108863&s;return this.negative=1,this._strip()},s.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!=(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var a,u=n.length-i.length;if("mod"!==e){(a=new s(null)).length=u+1,a.words=new Array(a.length);for(var c=0;c<a.length;c++)a.words[c]=0}var l=n.clone()._ishlnsubmul(i,1,u);0===l.negative&&(n=l,a&&(a.words[u]=1));for(var h=u-1;h>=0;h--){var f=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(f=Math.min(f/o|0,67108863),n._ishlnsubmul(i,f,h);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);a&&(a.words[h]=f)}return a&&a._strip(),n._strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},s.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(o=a.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:i,mod:o}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):0!==(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(o=a.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:a.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new s(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new s(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new s(this.modrn(t.words[0]))}:this._wordDiv(t,e);var i,o,a},s.prototype.div=function(t){return this.divmod(t,"div",!1).div},s.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},s.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},s.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),s=r.cmp(n);return s<0||1===i&&0===s?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},s.prototype.modrn=function(t){var e=t<0;e&&(t=-t),n(t<=67108863);for(var r=(1<<26)%t,i=0,s=this.length-1;s>=0;s--)i=(r*i+(0|this.words[s]))%t;return e?-i:i},s.prototype.modn=function(t){return this.modrn(t)},s.prototype.idivn=function(t){var e=t<0;e&&(t=-t),n(t<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var s=(0|this.words[i])+67108864*r;this.words[i]=s/t|0,r=s%t}return this._strip(),e?this.ineg():this},s.prototype.divn=function(t){return this.clone().idivn(t)},s.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new s(1),o=new s(0),a=new s(0),u=new s(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var l=r.clone(),h=e.clone();!e.isZero();){for(var f=0,d=1;0===(e.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(l),o.isub(h)),i.iushrn(1),o.iushrn(1);for(var p=0,g=1;0===(r.words[0]&g)&&p<26;++p,g<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(l),u.isub(h)),a.iushrn(1),u.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(a),o.isub(u)):(r.isub(e),a.isub(i),u.isub(o))}return{a,b:u,gcd:r.iushln(c)}},s.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,o=new s(1),a=new s(0),u=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,l=1;0===(e.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var h=0,f=1;0===(r.words[0]&f)&&h<26;++h,f<<=1);if(h>0)for(r.iushrn(h);h-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(a)):(r.isub(e),a.isub(o))}return(i=0===e.cmpn(1)?o:a).cmpn(0)<0&&i.iadd(t),i},s.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var s=e;e=r,r=s}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},s.prototype.invm=function(t){return this.egcd(t).a.umod(t)},s.prototype.isEven=function(){return!(1&this.words[0])},s.prototype.isOdd=function(){return!(1&~this.words[0])},s.prototype.andln=function(t){return this.words[0]&t},s.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var s=i,o=r;0!==s&&o<this.length;o++){var a=0|this.words[o];s=(a+=s)>>>26,a&=67108863,this.words[o]=a}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},s.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},s.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},s.prototype.gtn=function(t){return 1===this.cmpn(t)},s.prototype.gt=function(t){return 1===this.cmp(t)},s.prototype.gten=function(t){return this.cmpn(t)>=0},s.prototype.gte=function(t){return this.cmp(t)>=0},s.prototype.ltn=function(t){return-1===this.cmpn(t)},s.prototype.lt=function(t){return-1===this.cmp(t)},s.prototype.lten=function(t){return this.cmpn(t)<=0},s.prototype.lte=function(t){return this.cmp(t)<=0},s.prototype.eqn=function(t){return 0===this.cmpn(t)},s.prototype.eq=function(t){return 0===this.cmp(t)},s.red=function(t){return new N(t)},s.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},s.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(t){return this.red=t,this},s.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},s.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},s.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},s.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},s.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},s.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},s.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},s.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},s.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var A={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new s(e,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function E(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function x(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function C(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function N(t){if("string"==typeof t){var e=s._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function B(t){N.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(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 t=new s(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},i(E,v),E.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var s=t.words[9];for(e.words[e.length++]=s&r,i=10;i<t.length;i++){var o=0|t.words[i];t.words[i-10]=(o&r)<<4|s>>>22,s=o}s>>>=22,t.words[i-10]=s,0===s&&t.length>10?t.length-=10:t.length-=9},E.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(_,v),i(x,v),i(C,v),C.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},s._prime=function(t){if(A[t])return A[t];var e;if("k256"===t)e=new E;else if("p224"===t)e=new _;else if("p192"===t)e=new x;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new C}return A[t]=e,e},N.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},N.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},N.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(l(t,t.umod(this.m)._forceRed(this)),t)},N.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},N.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},N.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},N.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},N.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},N.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},N.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},N.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},N.prototype.isqr=function(t){return this.imul(t,t.clone())},N.prototype.sqr=function(t){return this.mul(t,t)},N.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new s(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);n(!i.isZero());var a=new s(1).toRed(this),u=a.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new s(2*l*l).toRed(this);0!==this.pow(l,c).cmp(u);)l.redIAdd(u);for(var h=this.pow(l,i),f=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=o;0!==d.cmp(a);){for(var g=d,m=0;0!==g.cmp(a);m++)g=g.redSqr();n(m<p);var y=this.pow(h,new s(1).iushln(p-m-1));f=f.redMul(y),h=y.redSqr(),d=d.redMul(h),p=m}return f},N.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},N.prototype.pow=function(t,e){if(e.isZero())return new s(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new s(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var i=r[0],o=0,a=0,u=e.bitLength()%26;for(0===u&&(u=26),n=e.length-1;n>=0;n--){for(var c=e.words[n],l=u-1;l>=0;l--){var h=c>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==o?(o<<=1,o|=h,(4===++a||0===n&&0===l)&&(i=this.mul(i,r[o]),a=0,o=0)):a=0}u=26}return i},N.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},N.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},s.mont=function(t){return new B(t)},i(B,N),B.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},B.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},B.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},B.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new s(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},B.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=r.nmd(t),this)},790:()=>{},900:function(t,e,r){var n;!function(){"use strict";var i,s=1e6,o="[big.js] ",a=o+"Invalid ",u=a+"decimal places",c=a+"rounding mode",l=o+"Division by zero",h={},f=void 0,d=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function p(t,e,r,n){var i=t.c,s=t.e+e+1;if(s<i.length){if(1===r)n=i[s]>=5;else if(2===r)n=i[s]>5||5==i[s]&&(n||s<0||i[s+1]!==f||1&i[s-1]);else if(3===r)n=n||!!i[0];else if(n=!1,0!==r)throw Error(c);if(s<1)i.length=1,n?(t.e=-e,i[0]=1):i[0]=t.e=0;else{if(i.length=s--,n)for(;++i[s]>9;)i[s]=0,s--||(++t.e,i.unshift(1));for(s=i.length;!i[--s];)i.pop()}}else if(r<0||r>3||r!==~~r)throw Error(c);return t}function g(t,e,r,n){var i,o,c=t.constructor,l=!t.c[0];if(r!==f){if(r!==~~r||r<(3==e)||r>s)throw Error(3==e?a+"precision":u);for(r=n-(t=new c(t)).e,t.c.length>++n&&p(t,r,c.RM),2==e&&(n=t.e+r+1);t.c.length<n;)t.c.push(0)}if(i=t.e,r=(o=t.c.join("")).length,2!=e&&(1==e||3==e&&n<=i||i<=c.NE||i>=c.PE))o=o.charAt(0)+(r>1?"."+o.slice(1):"")+(i<0?"e":"e+")+i;else if(i<0){for(;++i;)o="0"+o;o="0."+o}else if(i>0)if(++i>r)for(i-=r;i--;)o+="0";else i<r&&(o=o.slice(0,i)+"."+o.slice(i));else r>1&&(o=o.charAt(0)+"."+o.slice(1));return t.s<0&&(!l||4==e)?"-"+o:o}h.abs=function(){var t=new this.constructor(this);return t.s=1,t},h.cmp=function(t){var e,r=this,n=r.c,i=(t=new r.constructor(t)).c,s=r.s,o=t.s,a=r.e,u=t.e;if(!n[0]||!i[0])return n[0]?s:i[0]?-o:0;if(s!=o)return s;if(e=s<0,a!=u)return a>u^e?1:-1;for(o=(a=n.length)<(u=i.length)?a:u,s=-1;++s<o;)if(n[s]!=i[s])return n[s]>i[s]^e?1:-1;return a==u?0:a>u^e?1:-1},h.div=function(t){var e=this,r=e.constructor,n=e.c,i=(t=new r(t)).c,o=e.s==t.s?1:-1,a=r.DP;if(a!==~~a||a<0||a>s)throw Error(u);if(!i[0])throw Error(l);if(!n[0])return new r(0*o);var c,h,d,g,m,y=i.slice(),w=c=i.length,b=n.length,A=n.slice(0,c),v=A.length,E=t,_=E.c=[],x=0,C=a+(E.e=e.e-t.e)+1;for(E.s=o,o=C<0?0:C,y.unshift(0);v++<c;)A.push(0);do{for(d=0;d<10;d++){if(c!=(v=A.length))g=c>v?1:-1;else for(m=-1,g=0;++m<c;)if(i[m]!=A[m]){g=i[m]>A[m]?1:-1;break}if(!(g<0))break;for(h=v==c?i:y;v;){if(A[--v]<h[v]){for(m=v;m&&!A[--m];)A[m]=9;--A[m],A[v]+=10}A[v]-=h[v]}for(;!A[0];)A.shift()}_[x++]=g?d:++d,A[0]&&g?A[v]=n[w]||0:A=[n[w]]}while((w++<b||A[0]!==f)&&o--);return _[0]||1==x||(_.shift(),E.e--),x>C&&p(E,a,r.RM,A[0]!==f),E},h.eq=function(t){return!this.cmp(t)},h.gt=function(t){return this.cmp(t)>0},h.gte=function(t){return this.cmp(t)>-1},h.lt=function(t){return this.cmp(t)<0},h.lte=function(t){return this.cmp(t)<1},h.minus=h.sub=function(t){var e,r,n,i,s=this,o=s.constructor,a=s.s,u=(t=new o(t)).s;if(a!=u)return t.s=-u,s.plus(t);var c=s.c.slice(),l=s.e,h=t.c,f=t.e;if(!c[0]||!h[0])return h[0]?(t.s=-u,t):new o(c[0]?s:0);if(a=l-f){for((i=a<0)?(a=-a,n=c):(f=l,n=h),n.reverse(),u=a;u--;)n.push(0);n.reverse()}else for(r=((i=c.length<h.length)?c:h).length,a=u=0;u<r;u++)if(c[u]!=h[u]){i=c[u]<h[u];break}if(i&&(n=c,c=h,h=n,t.s=-t.s),(u=(r=h.length)-(e=c.length))>0)for(;u--;)c[e++]=0;for(u=e;r>a;){if(c[--r]<h[r]){for(e=r;e&&!c[--e];)c[e]=9;--c[e],c[r]+=10}c[r]-=h[r]}for(;0===c[--u];)c.pop();for(;0===c[0];)c.shift(),--f;return c[0]||(t.s=1,c=[f=0]),t.c=c,t.e=f,t},h.mod=function(t){var e,r=this,n=r.constructor,i=r.s,s=(t=new n(t)).s;if(!t.c[0])throw Error(l);return r.s=t.s=1,e=1==t.cmp(r),r.s=i,t.s=s,e?new n(r):(i=n.DP,s=n.RM,n.DP=n.RM=0,r=r.div(t),n.DP=i,n.RM=s,this.minus(r.times(t)))},h.plus=h.add=function(t){var e,r=this,n=r.constructor,i=r.s,s=(t=new n(t)).s;if(i!=s)return t.s=-s,r.minus(t);var o=r.e,a=r.c,u=t.e,c=t.c;if(!a[0]||!c[0])return c[0]?t:new n(a[0]?r:0*i);if(a=a.slice(),i=o-u){for(i>0?(u=o,e=c):(i=-i,e=a),e.reverse();i--;)e.push(0);e.reverse()}for(a.length-c.length<0&&(e=c,c=a,a=e),i=c.length,s=0;i;a[i]%=10)s=(a[--i]=a[i]+c[i]+s)/10|0;for(s&&(a.unshift(s),++u),i=a.length;0===a[--i];)a.pop();return t.c=a,t.e=u,t},h.pow=function(t){var e=this,r=new e.constructor(1),n=r,i=t<0;if(t!==~~t||t<-1e6||t>1e6)throw Error(a+"exponent");for(i&&(t=-t);1&t&&(n=n.times(e)),t>>=1;)e=e.times(e);return i?r.div(n):n},h.round=function(t,e){var r=this.constructor;if(t===f)t=0;else if(t!==~~t||t<-s||t>s)throw Error(u);return p(new r(this),t,e===f?r.RM:e)},h.sqrt=function(){var t,e,r,n=this,i=n.constructor,s=n.s,a=n.e,u=new i(.5);if(!n.c[0])return new i(n);if(s<0)throw Error(o+"No square root");0===(s=Math.sqrt(n+""))||s===1/0?((e=n.c.join("")).length+a&1||(e+="0"),a=((a+1)/2|0)-(a<0||1&a),t=new i(((s=Math.sqrt(e))==1/0?"1e":(s=s.toExponential()).slice(0,s.indexOf("e")+1))+a)):t=new i(s),a=t.e+(i.DP+=4);do{r=t,t=u.times(r.plus(n.div(r)))}while(r.c.slice(0,a).join("")!==t.c.slice(0,a).join(""));return p(t,i.DP-=4,i.RM)},h.times=h.mul=function(t){var e,r=this,n=r.constructor,i=r.c,s=(t=new n(t)).c,o=i.length,a=s.length,u=r.e,c=t.e;if(t.s=r.s==t.s?1:-1,!i[0]||!s[0])return new n(0*t.s);for(t.e=u+c,o<a&&(e=i,i=s,s=e,c=o,o=a,a=c),e=new Array(c=o+a);c--;)e[c]=0;for(u=a;u--;){for(a=0,c=o+u;c>u;)a=e[c]+s[u]*i[c-u-1]+a,e[c--]=a%10,a=a/10|0;e[c]=(e[c]+a)%10}for(a?++t.e:e.shift(),u=e.length;!e[--u];)e.pop();return t.c=e,t},h.toExponential=function(t){return g(this,1,t,t)},h.toFixed=function(t){return g(this,2,t,this.e+t)},h.toPrecision=function(t){return g(this,3,t,t-1)},h.toString=function(){return g(this)},h.valueOf=h.toJSON=function(){return g(this,4)},(i=function t(){function e(r){var n=this;if(!(n instanceof e))return r===f?t():new e(r);r instanceof e?(n.s=r.s,n.e=r.e,n.c=r.c.slice()):function(t,e){var r,n,i;if(0===e&&1/e<0)e="-0";else if(!d.test(e+=""))throw Error(a+"number");for(t.s="-"==e.charAt(0)?(e=e.slice(1),-1):1,(r=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(r<0&&(r=n),r+=+e.slice(n+1),e=e.substring(0,n)):r<0&&(r=e.length),i=e.length,n=0;n<i&&"0"==e.charAt(n);)++n;if(n==i)t.c=[t.e=0];else{for(;i>0&&"0"==e.charAt(--i););for(t.e=r-n-1,t.c=[],r=0;n<=i;)t.c[r++]=+e.charAt(n++)}}(n,r),n.constructor=e}return e.prototype=h,e.DP=20,e.RM=1,e.NE=-7,e.PE=21,e.version="5.2.2",e}()).default=i.Big=i,void 0===(n=function(){return i}.call(e,r,e,t))||(t.exports=n)}()},937:t=>{t.exports&&(t.exports=function(t){"use strict";return t.prototype.toFormat=function(t,e,r){if(!this.e&&0!==this.e)return this.toString();var n,i,s,o,a,u,c,l,h,f,d,p,g,m,y,w=this.format||{},b=this.constructor.format||{};if(t!=a?"object"==typeof t?(r=t,t=a):e!=a?"object"==typeof e?(r=e,e=a):"object"!=typeof r&&(r={}):r={}:r={},l=(n=this.toFixed(t,e).split("."))[0],h=n[1],u=(c=this.s<0?l.slice(1):l).length,(f=r.decimalSeparator)==a&&(f=w.decimalSeparator)==a&&(f=b.decimalSeparator)==a&&(f="."),(d=r.groupSeparator)==a&&(d=w.groupSeparator)==a&&(d=b.groupSeparator),d&&((p=r.groupSize)==a&&(p=w.groupSize)==a&&(p=b.groupSize)==a&&(p=0),(g=r.secondaryGroupSize)==a&&(g=w.secondaryGroupSize)==a&&(g=b.secondaryGroupSize)==a&&(g=0),g?(i=+g,u-=s=+p):(i=+p,s=+g),i>0&&u>0)){for(o=u%i||i,l=c.substr(0,o);o<u;o+=i)l+=d+c.substr(o,i);s>0&&(l+=d+c.slice(o)),this.s<0&&(l="-"+l)}return h?((m=r.fractionGroupSeparator)==a&&(m=w.fractionGroupSeparator)==a&&(m=b.fractionGroupSeparator),m&&((y=r.fractionGroupSize)==a&&(y=w.fractionGroupSize)==a&&(y=b.fractionGroupSize)==a&&(y=0),(y=+y)&&(h=h.replace(new RegExp("\\d{"+y+"}\\B","g"),"$&"+m))),l+f+h):l},t.format={decimalSeparator:".",groupSeparator:",",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:"",fractionGroupSize:0},t})},951:function(t){t.exports=function(){"use strict";var t=Math.imul,e=Math.clz32,r=Math.abs,n=Math.max,i=Math.floor;class s extends Array{constructor(t,e){if(super(t),this.sign=e,t>s.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded")}static BigInt(t){var e=Number.isFinite;if("number"==typeof t){if(0===t)return s.__zero();if(s.__isOneDigitInt(t))return 0>t?s.__oneDigit(-t,!0):s.__oneDigit(t,!1);if(!e(t)||i(t)!==t)throw new RangeError("The number "+t+" cannot be converted to BigInt because it is not an integer");return s.__fromDouble(t)}if("string"==typeof t){const e=s.__fromString(t);if(null===e)throw new SyntaxError("Cannot convert "+t+" to a BigInt");return e}if("boolean"==typeof t)return!0===t?s.__oneDigit(1,!1):s.__zero();if("object"==typeof t){if(t.constructor===s)return t;const e=s.__toPrimitive(t);return s.BigInt(e)}throw new TypeError("Cannot convert "+t+" to a BigInt")}toDebugString(){const t=["BigInt["];for(const e of this)t.push((e?(e>>>0).toString(16):e)+", ");return t.push("]"),t.join("")}toString(t=10){if(2>t||36<t)throw new RangeError("toString() radix argument must be between 2 and 36");return 0===this.length?"0":t&t-1?s.__toStringGeneric(this,t,!1):s.__toStringBasePowerOfTwo(this,t)}static toNumber(t){const e=t.length;if(0===e)return 0;if(1===e){const e=t.__unsignedDigit(0);return t.sign?-e:e}const r=t.__digit(e-1),n=s.__clz30(r),i=30*e-n;if(1024<i)return t.sign?-1/0:1/0;let o=i-1,a=r,u=e-1;const c=n+3;let l=32===c?0:a<<c;l>>>=12;const h=c-12;let f=12<=c?0:a<<20+c,d=20+c;for(0<h&&0<u&&(u--,a=t.__digit(u),l|=a>>>30-h,f=a<<h+2,d=h+2);0<d&&0<u;)u--,a=t.__digit(u),f|=30<=d?a<<d-30:a>>>30-d,d-=30;const p=s.__decideRounding(t,d,u,a);if((1===p||0===p&&!(1&~f))&&(f=f+1>>>0,0===f&&(l++,0!=l>>>20&&(l=0,o++,1023<o))))return t.sign?-1/0:1/0;const g=t.sign?-2147483648:0;return o=o+1023<<20,s.__kBitConversionInts[1]=g|o|l,s.__kBitConversionInts[0]=f,s.__kBitConversionDouble[0]}static unaryMinus(t){if(0===t.length)return t;const e=t.__copy();return e.sign=!t.sign,e}static bitwiseNot(t){return t.sign?s.__absoluteSubOne(t).__trim():s.__absoluteAddOne(t,!0)}static exponentiate(t,e){if(e.sign)throw new RangeError("Exponent must be positive");if(0===e.length)return s.__oneDigit(1,!1);if(0===t.length)return t;if(1===t.length&&1===t.__digit(0))return!t.sign||1&e.__digit(0)?t:s.unaryMinus(t);if(1<e.length)throw new RangeError("BigInt too big");let r=e.__unsignedDigit(0);if(1===r)return t;if(r>=s.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===t.length&&2===t.__digit(0)){const e=1+(0|r/30),n=t.sign&&!!(1&r),i=new s(e,n);i.__initializeDigits();const o=1<<r%30;return i.__setDigit(e-1,o),i}let n=null,i=t;for(!!(1&r)&&(n=t),r>>=1;0!==r;r>>=1)i=s.multiply(i,i),1&r&&(n=null===n?i:s.multiply(n,i));return n}static multiply(t,e){if(0===t.length)return t;if(0===e.length)return e;let r=t.length+e.length;30<=t.__clzmsd()+e.__clzmsd()&&r--;const n=new s(r,t.sign!==e.sign);n.__initializeDigits();for(let r=0;r<t.length;r++)s.__multiplyAccumulate(e,t.__digit(r),n,r);return n.__trim()}static divide(t,e){if(0===e.length)throw new RangeError("Division by zero");if(0>s.__absoluteCompare(t,e))return s.__zero();const r=t.sign!==e.sign,n=e.__unsignedDigit(0);let i;if(1===e.length&&32767>=n){if(1===n)return r===t.sign?t:s.unaryMinus(t);i=s.__absoluteDivSmall(t,n,null)}else i=s.__absoluteDivLarge(t,e,!0,!1);return i.sign=r,i.__trim()}static remainder(t,e){if(0===e.length)throw new RangeError("Division by zero");if(0>s.__absoluteCompare(t,e))return t;const r=e.__unsignedDigit(0);if(1===e.length&&32767>=r){if(1===r)return s.__zero();const e=s.__absoluteModSmall(t,r);return 0===e?s.__zero():s.__oneDigit(e,t.sign)}const n=s.__absoluteDivLarge(t,e,!1,!0);return n.sign=t.sign,n.__trim()}static add(t,e){const r=t.sign;return r===e.sign?s.__absoluteAdd(t,e,r):0<=s.__absoluteCompare(t,e)?s.__absoluteSub(t,e,r):s.__absoluteSub(e,t,!r)}static subtract(t,e){const r=t.sign;return r===e.sign?0<=s.__absoluteCompare(t,e)?s.__absoluteSub(t,e,r):s.__absoluteSub(e,t,!r):s.__absoluteAdd(t,e,r)}static leftShift(t,e){return 0===e.length||0===t.length?t:e.sign?s.__rightShiftByAbsolute(t,e):s.__leftShiftByAbsolute(t,e)}static signedRightShift(t,e){return 0===e.length||0===t.length?t:e.sign?s.__leftShiftByAbsolute(t,e):s.__rightShiftByAbsolute(t,e)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(t,e){return 0>s.__compareToBigInt(t,e)}static lessThanOrEqual(t,e){return 0>=s.__compareToBigInt(t,e)}static greaterThan(t,e){return 0<s.__compareToBigInt(t,e)}static greaterThanOrEqual(t,e){return 0<=s.__compareToBigInt(t,e)}static equal(t,e){if(t.sign!==e.sign)return!1;if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(t.__digit(r)!==e.__digit(r))return!1;return!0}static notEqual(t,e){return!s.equal(t,e)}static bitwiseAnd(t,e){if(!t.sign&&!e.sign)return s.__absoluteAnd(t,e).__trim();if(t.sign&&e.sign){const r=n(t.length,e.length)+1;let i=s.__absoluteSubOne(t,r);const o=s.__absoluteSubOne(e);return i=s.__absoluteOr(i,o,i),s.__absoluteAddOne(i,!0,i).__trim()}return t.sign&&([t,e]=[e,t]),s.__absoluteAndNot(t,s.__absoluteSubOne(e)).__trim()}static bitwiseXor(t,e){if(!t.sign&&!e.sign)return s.__absoluteXor(t,e).__trim();if(t.sign&&e.sign){const r=n(t.length,e.length),i=s.__absoluteSubOne(t,r),o=s.__absoluteSubOne(e);return s.__absoluteXor(i,o,i).__trim()}const r=n(t.length,e.length)+1;t.sign&&([t,e]=[e,t]);let i=s.__absoluteSubOne(e,r);return i=s.__absoluteXor(i,t,i),s.__absoluteAddOne(i,!0,i).__trim()}static bitwiseOr(t,e){const r=n(t.length,e.length);if(!t.sign&&!e.sign)return s.__absoluteOr(t,e).__trim();if(t.sign&&e.sign){let n=s.__absoluteSubOne(t,r);const i=s.__absoluteSubOne(e);return n=s.__absoluteAnd(n,i,n),s.__absoluteAddOne(n,!0,n).__trim()}t.sign&&([t,e]=[e,t]);let i=s.__absoluteSubOne(e,r);return i=s.__absoluteAndNot(i,t,i),s.__absoluteAddOne(i,!0,i).__trim()}static asIntN(t,e){if(0===e.length)return e;if(0>(t=i(t)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===t)return s.__zero();if(t>=s.__kMaxLengthBits)return e;const r=0|(t+29)/30;if(e.length<r)return e;const n=e.__unsignedDigit(r-1),o=1<<(t-1)%30;if(e.length===r&&n<o)return e;if((n&o)!==o)return s.__truncateToNBits(t,e);if(!e.sign)return s.__truncateAndSubFromPowerOfTwo(t,e,!0);if(!(n&o-1)){for(let n=r-2;0<=n;n--)if(0!==e.__digit(n))return s.__truncateAndSubFromPowerOfTwo(t,e,!1);return e.length===r&&n===o?e:s.__truncateToNBits(t,e)}return s.__truncateAndSubFromPowerOfTwo(t,e,!1)}static asUintN(t,e){if(0===e.length)return e;if(0>(t=i(t)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===t)return s.__zero();if(e.sign){if(t>s.__kMaxLengthBits)throw new RangeError("BigInt too big");return s.__truncateAndSubFromPowerOfTwo(t,e,!1)}if(t>=s.__kMaxLengthBits)return e;const r=0|(t+29)/30;if(e.length<r)return e;const n=t%30;if(e.length==r){if(0===n)return e;if(0==e.__digit(r-1)>>>n)return e}return s.__truncateToNBits(t,e)}static ADD(t,e){if(t=s.__toPrimitive(t),e=s.__toPrimitive(e),"string"==typeof t)return"string"!=typeof e&&(e=e.toString()),t+e;if("string"==typeof e)return t.toString()+e;if(t=s.__toNumeric(t),e=s.__toNumeric(e),s.__isBigInt(t)&&s.__isBigInt(e))return s.add(t,e);if("number"==typeof t&&"number"==typeof e)return t+e;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(t,e){return s.__compare(t,e,0)}static LE(t,e){return s.__compare(t,e,1)}static GT(t,e){return s.__compare(t,e,2)}static GE(t,e){return s.__compare(t,e,3)}static EQ(t,e){for(;;){if(s.__isBigInt(t))return s.__isBigInt(e)?s.equal(t,e):s.EQ(e,t);if("number"==typeof t){if(s.__isBigInt(e))return s.__equalToNumber(e,t);if("object"!=typeof e)return t==e;e=s.__toPrimitive(e)}else if("string"==typeof t){if(s.__isBigInt(e))return null!==(t=s.__fromString(t))&&s.equal(t,e);if("object"!=typeof e)return t==e;e=s.__toPrimitive(e)}else if("boolean"==typeof t){if(s.__isBigInt(e))return s.__equalToNumber(e,+t);if("object"!=typeof e)return t==e;e=s.__toPrimitive(e)}else if("symbol"==typeof t){if(s.__isBigInt(e))return!1;if("object"!=typeof e)return t==e;e=s.__toPrimitive(e)}else{if("object"!=typeof t)return t==e;if("object"==typeof e&&e.constructor!==s)return t==e;t=s.__toPrimitive(t)}}}static NE(t,e){return!s.EQ(t,e)}static __zero(){return new s(0,!1)}static __oneDigit(t,e){const r=new s(1,e);return r.__setDigit(0,t),r}__copy(){const t=new s(this.length,this.sign);for(let e=0;e<this.length;e++)t[e]=this[e];return t}__trim(){let t=this.length,e=this[t-1];for(;0===e;)t--,e=this[t-1],this.pop();return 0===t&&(this.sign=!1),this}__initializeDigits(){for(let t=0;t<this.length;t++)this[t]=0}static __decideRounding(t,e,r,n){if(0<e)return-1;let i;if(0>e)i=-e-1;else{if(0===r)return-1;r--,n=t.__digit(r),i=29}let s=1<<i;if(0==(n&s))return-1;if(s-=1,0!=(n&s))return 1;for(;0<r;)if(r--,0!==t.__digit(r))return 1;return 0}static __fromDouble(t){s.__kBitConversionDouble[0]=t;const e=(2047&s.__kBitConversionInts[1]>>>20)-1023,r=1+(0|e/30),n=new s(r,0>t);let i=1048575&s.__kBitConversionInts[1]|1048576,o=s.__kBitConversionInts[0];const a=e%30;let u,c=0;if(20>a){const t=20-a;c=t+32,u=i>>>t,i=i<<32-t|o>>>t,o<<=32-t}else if(20===a)c=32,u=i,i=o,o=0;else{const t=a-20;c=32-t,u=i<<t|o>>>32-t,i=o<<t,o=0}n.__setDigit(r-1,u);for(let t=r-2;0<=t;t--)0<c?(c-=30,u=i>>>2,i=i<<30|o>>>2,o<<=30):u=0,n.__setDigit(t,u);return n.__trim()}static __isWhitespace(t){return!!(13>=t&&9<=t)||(159>=t?32==t:131071>=t?160==t||5760==t:196607>=t?10>=(t&=131071)||40==t||41==t||47==t||95==t||4096==t:65279==t)}static __fromString(t,e=0){let r=0;const n=t.length;let i=0;if(i===n)return s.__zero();let o=t.charCodeAt(i);for(;s.__isWhitespace(o);){if(++i===n)return s.__zero();o=t.charCodeAt(i)}if(43===o){if(++i===n)return null;o=t.charCodeAt(i),r=1}else if(45===o){if(++i===n)return null;o=t.charCodeAt(i),r=-1}if(0===e){if(e=10,48===o){if(++i===n)return s.__zero();if(o=t.charCodeAt(i),88===o||120===o){if(e=16,++i===n)return null;o=t.charCodeAt(i)}else if(79===o||111===o){if(e=8,++i===n)return null;o=t.charCodeAt(i)}else if(66===o||98===o){if(e=2,++i===n)return null;o=t.charCodeAt(i)}}}else if(16===e&&48===o){if(++i===n)return s.__zero();if(o=t.charCodeAt(i),88===o||120===o){if(++i===n)return null;o=t.charCodeAt(i)}}if(0!=r&&10!==e)return null;for(;48===o;){if(++i===n)return s.__zero();o=t.charCodeAt(i)}const a=n-i;let u=s.__kMaxBitsPerChar[e],c=s.__kBitsPerCharTableMultiplier-1;if(a>1073741824/u)return null;const l=u*a+c>>>s.__kBitsPerCharTableShift,h=new s(0|(l+29)/30,!1),f=10>e?e:10,d=10<e?e-10:0;if(e&e-1){h.__initializeDigits();let r=!1,a=0;do{let l=0,p=1;for(;;){let s;if(o-48>>>0<f)s=o-48;else{if(!((32|o)-97>>>0<d)){r=!0;break}s=(32|o)-87}const u=p*e;if(1073741823<u)break;if(p=u,l=l*e+s,a++,++i===n){r=!0;break}o=t.charCodeAt(i)}c=30*s.__kBitsPerCharTableMultiplier-1;const g=0|(u*a+c>>>s.__kBitsPerCharTableShift)/30;h.__inplaceMultiplyAdd(p,l,g)}while(!r)}else{u>>=s.__kBitsPerCharTableShift;const e=[],r=[];let a=!1;do{let s=0,c=0;for(;;){let e;if(o-48>>>0<f)e=o-48;else{if(!((32|o)-97>>>0<d)){a=!0;break}e=(32|o)-87}if(c+=u,s=s<<u|e,++i===n){a=!0;break}if(o=t.charCodeAt(i),30<c+u)break}e.push(s),r.push(c)}while(!a);s.__fillFromParts(h,e,r)}if(i!==n){if(!s.__isWhitespace(o))return null;for(i++;i<n;i++)if(o=t.charCodeAt(i),!s.__isWhitespace(o))return null}return h.sign=-1==r,h.__trim()}static __fillFromParts(t,e,r){let n=0,i=0,s=0;for(let o=e.length-1;0<=o;o--){const a=e[o],u=r[o];i|=a<<s,s+=u,30===s?(t.__setDigit(n++,i),s=0,i=0):30<s&&(t.__setDigit(n++,1073741823&i),s-=30,i=a>>>u-s)}if(0!==i){if(n>=t.length)throw new Error("implementation bug");t.__setDigit(n++,i)}for(;n<t.length;n++)t.__setDigit(n,0)}static __toStringBasePowerOfTwo(t,e){const r=t.length;let n=e-1;n=(85&n>>>1)+(85&n),n=(51&n>>>2)+(51&n),n=(15&n>>>4)+(15&n);const i=n,o=e-1,a=t.__digit(r-1);let u=0|(30*r-s.__clz30(a)+i-1)/i;if(t.sign&&u++,268435456<u)throw new Error("string too long");const c=Array(u);let l=u-1,h=0,f=0;for(let e=0;e<r-1;e++){const r=t.__digit(e),n=(h|r<<f)&o;c[l--]=s.__kConversionChars[n];const a=i-f;for(h=r>>>a,f=30-a;f>=i;)c[l--]=s.__kConversionChars[h&o],h>>>=i,f-=i}const d=(h|a<<f)&o;for(c[l--]=s.__kConversionChars[d],h=a>>>i-f;0!==h;)c[l--]=s.__kConversionChars[h&o],h>>>=i;if(t.sign&&(c[l--]="-"),-1!=l)throw new Error("implementation bug");return c.join("")}static __toStringGeneric(t,e,r){const n=t.length;if(0===n)return"";if(1===n){let n=t.__unsignedDigit(0).toString(e);return!1===r&&t.sign&&(n="-"+n),n}const i=30*n-s.__clz30(t.__digit(n-1)),o=s.__kMaxBitsPerChar[e]-1;let a=i*s.__kBitsPerCharTableMultiplier;a+=o-1,a=0|a/o;const u=a+1>>1,c=s.exponentiate(s.__oneDigit(e,!1),s.__oneDigit(u,!1));let l,h;const f=c.__unsignedDigit(0);if(1===c.length&&32767>=f){l=new s(t.length,!1),l.__initializeDigits();let r=0;for(let e=2*t.length-1;0<=e;e--){const n=r<<15|t.__halfDigit(e);l.__setHalfDigit(e,0|n/f),r=0|n%f}h=r.toString(e)}else{const r=s.__absoluteDivLarge(t,c,!0,!0);l=r.quotient;const n=r.remainder.__trim();h=s.__toStringGeneric(n,e,!0)}l.__trim();let d=s.__toStringGeneric(l,e,!0);for(;h.length<u;)h="0"+h;return!1===r&&t.sign&&(d="-"+d),d+h}static __unequalSign(t){return t?-1:1}static __absoluteGreater(t){return t?-1:1}static __absoluteLess(t){return t?1:-1}static __compareToBigInt(t,e){const r=t.sign;if(r!==e.sign)return s.__unequalSign(r);const n=s.__absoluteCompare(t,e);return 0<n?s.__absoluteGreater(r):0>n?s.__absoluteLess(r):0}static __compareToNumber(t,e){if(s.__isOneDigitInt(e)){const n=t.sign,i=0>e;if(n!==i)return s.__unequalSign(n);if(0===t.length){if(i)throw new Error("implementation bug");return 0===e?0:-1}if(1<t.length)return s.__absoluteGreater(n);const o=r(e),a=t.__unsignedDigit(0);return a>o?s.__absoluteGreater(n):a<o?s.__absoluteLess(n):0}return s.__compareToDouble(t,e)}static __compareToDouble(t,e){if(e!=e)return e;if(e===1/0)return-1;if(e===-1/0)return 1;const r=t.sign;if(r!==0>e)return s.__unequalSign(r);if(0===e)throw new Error("implementation bug: should be handled elsewhere");if(0===t.length)return-1;s.__kBitConversionDouble[0]=e;const n=2047&s.__kBitConversionInts[1]>>>20;if(2047==n)throw new Error("implementation bug: handled elsewhere");const i=n-1023;if(0>i)return s.__absoluteGreater(r);const o=t.length;let a=t.__digit(o-1);const u=s.__clz30(a),c=30*o-u,l=i+1;if(c<l)return s.__absoluteLess(r);if(c>l)return s.__absoluteGreater(r);let h=1048576|1048575&s.__kBitConversionInts[1],f=s.__kBitConversionInts[0];const d=29-u;if(d!==(0|(c-1)%30))throw new Error("implementation bug");let p,g=0;if(20>d){const t=20-d;g=t+32,p=h>>>t,h=h<<32-t|f>>>t,f<<=32-t}else if(20===d)g=32,p=h,h=f,f=0;else{const t=d-20;g=32-t,p=h<<t|f>>>32-t,h=f<<t,f=0}if(a>>>=0,p>>>=0,a>p)return s.__absoluteGreater(r);if(a<p)return s.__absoluteLess(r);for(let e=o-2;0<=e;e--){0<g?(g-=30,p=h>>>2,h=h<<30|f>>>2,f<<=30):p=0;const n=t.__unsignedDigit(e);if(n>p)return s.__absoluteGreater(r);if(n<p)return s.__absoluteLess(r)}if(0!==h||0!==f){if(0===g)throw new Error("implementation bug");return s.__absoluteLess(r)}return 0}static __equalToNumber(t,e){return s.__isOneDigitInt(e)?0===e?0===t.length:1===t.length&&t.sign===0>e&&t.__unsignedDigit(0)===r(e):0===s.__compareToDouble(t,e)}static __comparisonResultToBool(t,e){return 0===e?0>t:1===e?0>=t:2===e?0<t:3===e?0<=t:void 0}static __compare(t,e,r){if(t=s.__toPrimitive(t),e=s.__toPrimitive(e),"string"==typeof t&&"string"==typeof e)switch(r){case 0:return t<e;case 1:return t<=e;case 2:return t>e;case 3:return t>=e}if(s.__isBigInt(t)&&"string"==typeof e)return null!==(e=s.__fromString(e))&&s.__comparisonResultToBool(s.__compareToBigInt(t,e),r);if("string"==typeof t&&s.__isBigInt(e))return null!==(t=s.__fromString(t))&&s.__comparisonResultToBool(s.__compareToBigInt(t,e),r);if(t=s.__toNumeric(t),e=s.__toNumeric(e),s.__isBigInt(t)){if(s.__isBigInt(e))return s.__comparisonResultToBool(s.__compareToBigInt(t,e),r);if("number"!=typeof e)throw new Error("implementation bug");return s.__comparisonResultToBool(s.__compareToNumber(t,e),r)}if("number"!=typeof t)throw new Error("implementation bug");if(s.__isBigInt(e))return s.__comparisonResultToBool(s.__compareToNumber(e,t),2^r);if("number"!=typeof e)throw new Error("implementation bug");return 0===r?t<e:1===r?t<=e:2===r?t>e:3===r?t>=e:void 0}__clzmsd(){return s.__clz30(this.__digit(this.length-1))}static __absoluteAdd(t,e,r){if(t.length<e.length)return s.__absoluteAdd(e,t,r);if(0===t.length)return t;if(0===e.length)return t.sign===r?t:s.unaryMinus(t);let n=t.length;(0===t.__clzmsd()||e.length===t.length&&0===e.__clzmsd())&&n++;const i=new s(n,r);let o=0,a=0;for(;a<e.length;a++){const r=t.__digit(a)+e.__digit(a)+o;o=r>>>30,i.__setDigit(a,1073741823&r)}for(;a<t.length;a++){const e=t.__digit(a)+o;o=e>>>30,i.__setDigit(a,1073741823&e)}return a<i.length&&i.__setDigit(a,o),i.__trim()}static __absoluteSub(t,e,r){if(0===t.length)return t;if(0===e.length)return t.sign===r?t:s.unaryMinus(t);const n=new s(t.length,r);let i=0,o=0;for(;o<e.length;o++){const r=t.__digit(o)-e.__digit(o)-i;i=1&r>>>30,n.__setDigit(o,1073741823&r)}for(;o<t.length;o++){const e=t.__digit(o)-i;i=1&e>>>30,n.__setDigit(o,1073741823&e)}return n.__trim()}static __absoluteAddOne(t,e,r=null){const n=t.length;null===r?r=new s(n,e):r.sign=e;let i=1;for(let e=0;e<n;e++){const n=t.__digit(e)+i;i=n>>>30,r.__setDigit(e,1073741823&n)}return 0!=i&&r.__setDigitGrow(n,1),r}static __absoluteSubOne(t,e){const r=t.length,n=new s(e=e||r,!1);let i=1;for(let e=0;e<r;e++){const r=t.__digit(e)-i;i=1&r>>>30,n.__setDigit(e,1073741823&r)}if(0!=i)throw new Error("implementation bug");for(let t=r;t<e;t++)n.__setDigit(t,0);return n}static __absoluteAnd(t,e,r=null){let n=t.length,i=e.length,o=i;if(n<i){o=n;const r=t,s=n;t=e,n=i,e=r,i=s}let a=o;null===r?r=new s(a,!1):a=r.length;let u=0;for(;u<o;u++)r.__setDigit(u,t.__digit(u)&e.__digit(u));for(;u<a;u++)r.__setDigit(u,0);return r}static __absoluteAndNot(t,e,r=null){const n=t.length,i=e.length;let o=i;n<i&&(o=n);let a=n;null===r?r=new s(a,!1):a=r.length;let u=0;for(;u<o;u++)r.__setDigit(u,t.__digit(u)&~e.__digit(u));for(;u<n;u++)r.__setDigit(u,t.__digit(u));for(;u<a;u++)r.__setDigit(u,0);return r}static __absoluteOr(t,e,r=null){let n=t.length,i=e.length,o=i;if(n<i){o=n;const r=t,s=n;t=e,n=i,e=r,i=s}let a=n;null===r?r=new s(a,!1):a=r.length;let u=0;for(;u<o;u++)r.__setDigit(u,t.__digit(u)|e.__digit(u));for(;u<n;u++)r.__setDigit(u,t.__digit(u));for(;u<a;u++)r.__setDigit(u,0);return r}static __absoluteXor(t,e,r=null){let n=t.length,i=e.length,o=i;if(n<i){o=n;const r=t,s=n;t=e,n=i,e=r,i=s}let a=n;null===r?r=new s(a,!1):a=r.length;let u=0;for(;u<o;u++)r.__setDigit(u,t.__digit(u)^e.__digit(u));for(;u<n;u++)r.__setDigit(u,t.__digit(u));for(;u<a;u++)r.__setDigit(u,0);return r}static __absoluteCompare(t,e){const r=t.length-e.length;if(0!=r)return r;let n=t.length-1;for(;0<=n&&t.__digit(n)===e.__digit(n);)n--;return 0>n?0:t.__unsignedDigit(n)>e.__unsignedDigit(n)?1:-1}static __multiplyAccumulate(t,e,r,n){if(0===e)return;const i=32767&e,o=e>>>15;let a=0,u=0;for(let e,c=0;c<t.length;c++,n++){e=r.__digit(n);const l=t.__digit(c),h=32767&l,f=l>>>15,d=s.__imul(h,i),p=s.__imul(h,o),g=s.__imul(f,i);e+=u+d+a,a=e>>>30,e&=1073741823,e+=((32767&p)<<15)+((32767&g)<<15),a+=e>>>30,u=s.__imul(f,o)+(p>>>15)+(g>>>15),r.__setDigit(n,1073741823&e)}for(;0!=a||0!==u;n++){let t=r.__digit(n);t+=a+u,u=0,a=t>>>30,r.__setDigit(n,1073741823&t)}}static __internalMultiplyAdd(t,e,r,n,i){let o=r,a=0;for(let r=0;r<n;r++){const n=t.__digit(r),u=s.__imul(32767&n,e),c=s.__imul(n>>>15,e),l=u+((32767&c)<<15)+a+o;o=l>>>30,a=c>>>15,i.__setDigit(r,1073741823&l)}if(i.length>n)for(i.__setDigit(n++,o+a);n<i.length;)i.__setDigit(n++,0);else if(0!==o+a)throw new Error("implementation bug")}__inplaceMultiplyAdd(t,e,r){r>this.length&&(r=this.length);const n=32767&t,i=t>>>15;let o=0,a=e;for(let t=0;t<r;t++){const e=this.__digit(t),r=32767&e,u=e>>>15,c=s.__imul(r,n),l=s.__imul(r,i),h=s.__imul(u,n);let f=a+c+o;o=f>>>30,f&=1073741823,f+=((32767&l)<<15)+((32767&h)<<15),o+=f>>>30,a=s.__imul(u,i)+(l>>>15)+(h>>>15),this.__setDigit(t,1073741823&f)}if(0!=o||0!==a)throw new Error("implementation bug")}static __absoluteDivSmall(t,e,r=null){null===r&&(r=new s(t.length,!1));let n=0;for(let i,s=2*t.length-1;0<=s;s-=2){i=(n<<15|t.__halfDigit(s))>>>0;const o=0|i/e;n=0|i%e,i=(n<<15|t.__halfDigit(s-1))>>>0;const a=0|i/e;n=0|i%e,r.__setDigit(s>>>1,o<<15|a)}return r}static __absoluteModSmall(t,e){let r=0;for(let n=2*t.length-1;0<=n;n--)r=0|((r<<15|t.__halfDigit(n))>>>0)%e;return r}static __absoluteDivLarge(t,e,r,n){const i=e.__halfDigitLength(),o=e.length,a=t.__halfDigitLength()-i;let u=null;r&&(u=new s(a+2>>>1,!1),u.__initializeDigits());const c=new s(i+2>>>1,!1);c.__initializeDigits();const l=s.__clz15(e.__halfDigit(i-1));0<l&&(e=s.__specialLeftShift(e,l,0));const h=s.__specialLeftShift(t,l,1),f=e.__halfDigit(i-1);let d=0;for(let t,n=a;0<=n;n--){t=32767;const a=h.__halfDigit(n+i);if(a!==f){const r=(a<<15|h.__halfDigit(n+i-1))>>>0;t=0|r/f;let o=0|r%f;const u=e.__halfDigit(i-2),c=h.__halfDigit(n+i-2);for(;s.__imul(t,u)>>>0>(o<<16|c)>>>0&&(t--,o+=f,!(32767<o)););}s.__internalMultiplyAdd(e,t,0,o,c);let l=h.__inplaceSub(c,n,i+1);0!==l&&(l=h.__inplaceAdd(e,n,i),h.__setHalfDigit(n+i,32767&h.__halfDigit(n+i)+l),t--),r&&(1&n?d=t<<15:u.__setDigit(n>>>1,d|t))}if(n)return h.__inplaceRightShift(l),r?{quotient:u,remainder:h}:h;if(r)return u;throw new Error("unreachable")}static __clz15(t){return s.__clz30(t)-15}__inplaceAdd(t,e,r){let n=0;for(let i=0;i<r;i++){const r=this.__halfDigit(e+i)+t.__halfDigit(i)+n;n=r>>>15,this.__setHalfDigit(e+i,32767&r)}return n}__inplaceSub(t,e,r){let n=0;if(1&e){e>>=1;let i=this.__digit(e),s=32767&i,o=0;for(;o<r-1>>>1;o++){const r=t.__digit(o),a=(i>>>15)-(32767&r)-n;n=1&a>>>15,this.__setDigit(e+o,(32767&a)<<15|32767&s),i=this.__digit(e+o+1),s=(32767&i)-(r>>>15)-n,n=1&s>>>15}const a=t.__digit(o),u=(i>>>15)-(32767&a)-n;if(n=1&u>>>15,this.__setDigit(e+o,(32767&u)<<15|32767&s),e+o+1>=this.length)throw new RangeError("out of bounds");!(1&r)&&(i=this.__digit(e+o+1),s=(32767&i)-(a>>>15)-n,n=1&s>>>15,this.__setDigit(e+t.length,1073709056&i|32767&s))}else{e>>=1;let i=0;for(;i<t.length-1;i++){const r=this.__digit(e+i),s=t.__digit(i),o=(32767&r)-(32767&s)-n;n=1&o>>>15;const a=(r>>>15)-(s>>>15)-n;n=1&a>>>15,this.__setDigit(e+i,(32767&a)<<15|32767&o)}const s=this.__digit(e+i),o=t.__digit(i),a=(32767&s)-(32767&o)-n;n=1&a>>>15;let u=0;!(1&r)&&(u=(s>>>15)-(o>>>15)-n,n=1&u>>>15),this.__setDigit(e+i,(32767&u)<<15|32767&a)}return n}__inplaceRightShift(t){if(0===t)return;let e=this.__digit(0)>>>t;const r=this.length-1;for(let n=0;n<r;n++){const r=this.__digit(n+1);this.__setDigit(n,1073741823&r<<30-t|e),e=r>>>t}this.__setDigit(r,e)}static __specialLeftShift(t,e,r){const n=t.length,i=new s(n+r,!1);if(0===e){for(let e=0;e<n;e++)i.__setDigit(e,t.__digit(e));return 0<r&&i.__setDigit(n,0),i}let o=0;for(let r=0;r<n;r++){const n=t.__digit(r);i.__setDigit(r,1073741823&n<<e|o),o=n>>>30-e}return 0<r&&i.__setDigit(n,o),i}static __leftShiftByAbsolute(t,e){const r=s.__toShiftAmount(e);if(0>r)throw new RangeError("BigInt too big");const n=0|r/30,i=r%30,o=t.length,a=0!==i&&0!=t.__digit(o-1)>>>30-i,u=o+n+(a?1:0),c=new s(u,t.sign);if(0===i){let e=0;for(;e<n;e++)c.__setDigit(e,0);for(;e<u;e++)c.__setDigit(e,t.__digit(e-n))}else{let e=0;for(let t=0;t<n;t++)c.__setDigit(t,0);for(let r=0;r<o;r++){const s=t.__digit(r);c.__setDigit(r+n,1073741823&s<<i|e),e=s>>>30-i}if(a)c.__setDigit(o+n,e);else if(0!==e)throw new Error("implementation bug")}return c.__trim()}static __rightShiftByAbsolute(t,e){const r=t.length,n=t.sign,i=s.__toShiftAmount(e);if(0>i)return s.__rightShiftByMaximum(n);const o=0|i/30,a=i%30;let u=r-o;if(0>=u)return s.__rightShiftByMaximum(n);let c=!1;if(n)if(t.__digit(o)&(1<<a)-1)c=!0;else for(let e=0;e<o;e++)if(0!==t.__digit(e)){c=!0;break}c&&0===a&&0==~t.__digit(r-1)&&u++;let l=new s(u,n);if(0===a){l.__setDigit(u-1,0);for(let e=o;e<r;e++)l.__setDigit(e-o,t.__digit(e))}else{let e=t.__digit(o)>>>a;const n=r-o-1;for(let r=0;r<n;r++){const n=t.__digit(r+o+1);l.__setDigit(r,1073741823&n<<30-a|e),e=n>>>a}l.__setDigit(n,e)}return c&&(l=s.__absoluteAddOne(l,!0,l)),l.__trim()}static __rightShiftByMaximum(t){return t?s.__oneDigit(1,!0):s.__zero()}static __toShiftAmount(t){if(1<t.length)return-1;const e=t.__unsignedDigit(0);return e>s.__kMaxLengthBits?-1:e}static __toPrimitive(t,e="default"){if("object"!=typeof t)return t;if(t.constructor===s)return t;if("undefined"!=typeof Symbol&&"symbol"==typeof Symbol.toPrimitive){const r=t[Symbol.toPrimitive];if(r){const t=r(e);if("object"!=typeof t)return t;throw new TypeError("Cannot convert object to primitive value")}}const r=t.valueOf;if(r){const e=r.call(t);if("object"!=typeof e)return e}const n=t.toString;if(n){const e=n.call(t);if("object"!=typeof e)return e}throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(t){return s.__isBigInt(t)?t:+t}static __isBigInt(t){return"object"==typeof t&&null!==t&&t.constructor===s}static __truncateToNBits(t,e){const r=0|(t+29)/30,n=new s(r,e.sign),i=r-1;for(let t=0;t<i;t++)n.__setDigit(t,e.__digit(t));let o=e.__digit(i);if(0!=t%30){const e=32-t%30;o=o<<e>>>e}return n.__setDigit(i,o),n.__trim()}static __truncateAndSubFromPowerOfTwo(t,e,r){var n=Math.min;const i=0|(t+29)/30,o=new s(i,r);let a=0;const u=i-1;let c=0;for(const t=n(u,e.length);a<t;a++){const t=0-e.__digit(a)-c;c=1&t>>>30,o.__setDigit(a,1073741823&t)}for(;a<u;a++)o.__setDigit(a,1073741823&-c);let l=u<e.length?e.__digit(u):0;const h=t%30;let f;if(0==h)f=0-l-c,f&=1073741823;else{const t=32-h;l=l<<t>>>t;const e=1<<32-t;f=e-l-c,f&=e-1}return o.__setDigit(u,f),o.__trim()}__digit(t){return this[t]}__unsignedDigit(t){return this[t]>>>0}__setDigit(t,e){this[t]=0|e}__setDigitGrow(t,e){this[t]=0|e}__halfDigitLength(){const t=this.length;return 32767>=this.__unsignedDigit(t-1)?2*t-1:2*t}__halfDigit(t){return 32767&this[t>>>1]>>>15*(1&t)}__setHalfDigit(t,e){const r=t>>>1,n=this.__digit(r),i=1&t?32767&n|e<<15:1073709056&n|32767&e;this.__setDigit(r,i)}static __digitPow(t,e){let r=1;for(;0<e;)1&e&&(r*=t),e>>>=1,t*=t;return r}static __isOneDigitInt(t){return(1073741823&t)===t}}return s.__kMaxLength=33554432,s.__kMaxLengthBits=s.__kMaxLength<<5,s.__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],s.__kBitsPerCharTableShift=5,s.__kBitsPerCharTableMultiplier=1<<s.__kBitsPerCharTableShift,s.__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"],s.__kBitConversionBuffer=new ArrayBuffer(8),s.__kBitConversionDouble=new Float64Array(s.__kBitConversionBuffer),s.__kBitConversionInts=new Int32Array(s.__kBitConversionBuffer),s.__clz30=e?function(t){return e(t)-2}:function(t){var e=Math.LN2,r=Math.log;return 0===t?30:0|29-(0|r(t>>>0)/e)},s.__imul=t||function(t,e){return 0|t*e},s}()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={id:n,loaded:!1,exports:{}};return t[n].call(s.exports,s,s.exports,r),s.loaded=!0,s.exports}r.amdO={},r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nmd=t=>(t.paths=[],t.children||(t.children=[]),t);var n={};return(()=>{"use strict";r.r(n),r.d(n,{DEFAULT_SWAP_SETTINGS:()=>mh,LoaderStatuses:()=>t,NETWORKS:()=>wh,SwapSdkController:()=>yh,SwapService:()=>gh,WalletService:()=>xu,createKaspaComSwapController:()=>bh});var t,e={};function i(t,e,r){const n=e.split("|").map(t=>t.trim());for(let r=0;r<n.length;r++)switch(e){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof t===e)return}const i=new Error(`invalid value for type ${e}`);throw i.code="INVALID_ARGUMENT",i.argument=`value.${r}`,i.value=t,i}async function s(t){const e=Object.keys(t);return(await Promise.all(e.map(e=>Promise.resolve(t[e])))).reduce((t,r,n)=>(t[e[n]]=r,t),{})}function o(t,e,r){for(let n in e){let s=e[n];const o=r?r[n]:null;o&&i(s,o,n),Object.defineProperty(t,n,{enumerable:!0,value:s,writable:!1})}}function a(t,e){if(null==t)return"null";if(null==e&&(e=new Set),"object"==typeof t){if(e.has(t))return"[Circular]";e.add(t)}if(Array.isArray(t))return"[ "+t.map(t=>a(t,e)).join(", ")+" ]";if(t instanceof Uint8Array){const e="0123456789abcdef";let r="0x";for(let n=0;n<t.length;n++)r+=e[t[n]>>4],r+=e[15&t[n]];return r}if("object"==typeof t&&"function"==typeof t.toJSON)return a(t.toJSON(),e);switch(typeof t){case"boolean":case"number":case"symbol":return t.toString();case"bigint":return BigInt(t).toString();case"string":return JSON.stringify(t);case"object":{const r=Object.keys(t);return r.sort(),"{ "+r.map(r=>`${a(r,e)}: ${a(t[r],e)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function u(t,e){return t&&t.code===e}function c(t){return u(t,"CALL_EXCEPTION")}function l(t,e,r){let n,i=t;{const n=[];if(r){if("message"in r||"code"in r||"name"in r)throw new Error(`value will overwrite populated values: ${a(r)}`);for(const t in r){if("shortMessage"===t)continue;const e=r[t];n.push(t+"="+a(e))}}n.push(`code=${e}`),n.push("version=6.15.0"),n.length&&(t+=" ("+n.join(", ")+")")}switch(e){case"INVALID_ARGUMENT":n=new TypeError(t);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":n=new RangeError(t);break;default:n=new Error(t)}return o(n,{code:e}),r&&Object.assign(n,r),null==n.shortMessage&&o(n,{shortMessage:i}),n}function h(t,e,r,n){if(!t)throw l(e,r,n)}function f(t,e,r,n){h(t,e,"INVALID_ARGUMENT",{argument:r,value:n})}function d(t,e,r){null==r&&(r=""),r&&(r=": "+r),h(t>=e,"missing argument"+r,"MISSING_ARGUMENT",{count:t,expectedCount:e}),h(t<=e,"too many arguments"+r,"UNEXPECTED_ARGUMENT",{count:t,expectedCount:e})}r.r(e),r.d(e,{OG:()=>Js,My:()=>Ls,Ph:()=>Hs,lX:()=>qs,Id:()=>Vs,fg:()=>Zs,qj:()=>Qs,aT:()=>Gs,lq:()=>zs,z:()=>js,Q5:()=>Ys}),function(t){t[t.CALCULATING_QUOTE=1]="CALCULATING_QUOTE",t[t.APPROVING=2]="APPROVING",t[t.SWAPPING=3]="SWAPPING"}(t||(t={}));const p=["NFD","NFC","NFKD","NFKC"].reduce((t,e)=>{try{if("test"!=="test".normalize(e))throw new Error("bad");if("NFD"===e){if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken")}t.push(e)}catch(t){}return t},[]);function g(t,e,r){if(null==r&&(r=""),t!==e){let t=r,e="new";r&&(t+=".",e+=" "+r),h(!1,`private constructor; use ${t}from* methods`,"UNSUPPORTED_OPERATION",{operation:e})}}function m(t,e,r){if(t instanceof Uint8Array)return r?new Uint8Array(t):t;if("string"==typeof t&&t.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){const e=new Uint8Array((t.length-2)/2);let r=2;for(let n=0;n<e.length;n++)e[n]=parseInt(t.substring(r,r+2),16),r+=2;return e}f(!1,"invalid BytesLike value",e||"value",t)}function y(t,e){return m(t,e,!1)}function w(t,e){return m(t,e,!0)}function b(t,e){return!("string"!=typeof t||!t.match(/^0x[0-9A-Fa-f]*$/)||"number"==typeof e&&t.length!==2+2*e||!0===e&&t.length%2!=0)}function A(t){return b(t,!0)||t instanceof Uint8Array}const v="0123456789abcdef";function E(t){const e=y(t);let r="0x";for(let t=0;t<e.length;t++){const n=e[t];r+=v[(240&n)>>4]+v[15&n]}return r}function _(t){return"0x"+t.map(t=>E(t).substring(2)).join("")}function x(t){return b(t,!0)?(t.length-2)/2:y(t).length}function C(t,e,r){const n=y(t);return null!=r&&r>n.length&&h(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:n,length:n.length,offset:r}),E(n.slice(null==e?0:e,null==r?n.length:r))}function N(t,e,r){const n=y(t);h(e>=n.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(n),length:e,offset:e+1});const i=new Uint8Array(e);return i.fill(0),r?i.set(n,e-n.length):i.set(n,0),E(i)}function B(t,e){return N(t,e,!0)}const P=BigInt(0),I=BigInt(1),k=9007199254740991;function O(t,e){const r=R(t,"value"),n=BigInt(L(e,"width"));return h(r>>n===P,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:t}),r>>n-I?-((~r&(I<<n)-I)+I):r}function M(t,e){let r=S(t,"value");const n=BigInt(L(e,"width")),i=I<<n-I;return r<P?(r=-r,h(r<=i,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:t}),(~r&(I<<n)-I)+I):(h(r<i,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:t}),r)}function T(t,e){const r=R(t,"value"),n=BigInt(L(e,"bits"));return r&(I<<n)-I}function S(t,e){switch(typeof t){case"bigint":return t;case"number":return f(Number.isInteger(t),"underflow",e||"value",t),f(t>=-k&&t<=k,"overflow",e||"value",t),BigInt(t);case"string":try{if(""===t)throw new Error("empty string");return"-"===t[0]&&"-"!==t[1]?-BigInt(t.substring(1)):BigInt(t)}catch(r){f(!1,`invalid BigNumberish string: ${r.message}`,e||"value",t)}}f(!1,"invalid BigNumberish value",e||"value",t)}function R(t,e){const r=S(t,e);return h(r>=P,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:t}),r}const D="0123456789abcdef";function F(t){if(t instanceof Uint8Array){let e="0x0";for(const r of t)e+=D[r>>4],e+=D[15&r];return BigInt(e)}return S(t)}function L(t,e){switch(typeof t){case"bigint":return f(t>=-k&&t<=k,"overflow",e||"value",t),Number(t);case"number":return f(Number.isInteger(t),"underflow",e||"value",t),f(t>=-k&&t<=k,"overflow",e||"value",t),t;case"string":try{if(""===t)throw new Error("empty string");return L(BigInt(t),e)}catch(r){f(!1,`invalid numeric string: ${r.message}`,e||"value",t)}}f(!1,"invalid numeric value",e||"value",t)}function U(t,e){let r=R(t,"value").toString(16);if(null==e)r.length%2&&(r="0"+r);else{const n=L(e,"width");for(h(2*n>=r.length,`value exceeds width (${n} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:t});r.length<2*n;)r="0"+r}return"0x"+r}function G(t){const e=R(t,"value");if(e===P)return new Uint8Array([]);let r=e.toString(16);r.length%2&&(r="0"+r);const n=new Uint8Array(r.length/2);for(let t=0;t<n.length;t++){const e=2*t;n[t]=parseInt(r.substring(e,e+2),16)}return n}function H(t){let e=E(A(t)?t:G(t)).substring(2);for(;e.startsWith("0");)e=e.substring(1);return""===e&&(e="0"),"0x"+e}const q=32,z=new Uint8Array(q),j=["then"],Q={},V=new WeakMap;function J(t){return V.get(t)}function K(t,e){V.set(t,e)}function W(t,e){const r=new Error(`deferred error during ABI decoding triggered accessing ${t}`);throw r.error=e,r}function Z(t,e,r){return t.indexOf(null)>=0?e.map((t,e)=>t instanceof X?Z(J(t),t,r):t):t.reduce((t,n,i)=>{let s=e.getValue(n);return n in t||(r&&s instanceof X&&(s=Z(J(s),s,r)),t[n]=s),t},{})}class X extends Array{#t;constructor(...t){const e=t[0];let r=t[1],n=(t[2]||[]).slice(),i=!0;e!==Q&&(r=t,n=[],i=!1),super(r.length),r.forEach((t,e)=>{this[e]=t});const s=n.reduce((t,e)=>("string"==typeof e&&t.set(e,(t.get(e)||0)+1),t),new Map);if(K(this,Object.freeze(r.map((t,e)=>{const r=n[e];return null!=r&&1===s.get(r)?r:null}))),this.#t=[],null==this.#t&&this.#t,!i)return;Object.freeze(this);const o=new Proxy(this,{get:(t,e,r)=>{if("string"==typeof e){if(e.match(/^[0-9]+$/)){const r=L(e,"%index");if(r<0||r>=this.length)throw new RangeError("out of result range");const n=t[r];return n instanceof Error&&W(`index ${r}`,n),n}if(j.indexOf(e)>=0)return Reflect.get(t,e,r);const n=t[e];if(n instanceof Function)return function(...e){return n.apply(this===r?t:this,e)};if(!(e in t))return t.getValue.apply(this===r?t:this,[e])}return Reflect.get(t,e,r)}});return K(o,J(this)),o}toArray(t){const e=[];return this.forEach((r,n)=>{r instanceof Error&&W(`index ${n}`,r),t&&r instanceof X&&(r=r.toArray(t)),e.push(r)}),e}toObject(t){const e=J(this);return e.reduce((r,n,i)=>(h(null!=n,`value at index ${i} unnamed`,"UNSUPPORTED_OPERATION",{operation:"toObject()"}),Z(e,this,t)),{})}slice(t,e){null==t&&(t=0),t<0&&(t+=this.length)<0&&(t=0),null==e&&(e=this.length),e<0&&(e+=this.length)<0&&(e=0),e>this.length&&(e=this.length);const r=J(this),n=[],i=[];for(let s=t;s<e;s++)n.push(this[s]),i.push(r[s]);return new X(Q,n,i)}filter(t,e){const r=J(this),n=[],i=[];for(let s=0;s<this.length;s++){const o=this[s];o instanceof Error&&W(`index ${s}`,o),t.call(e,o,s,this)&&(n.push(o),i.push(r[s]))}return new X(Q,n,i)}map(t,e){const r=[];for(let n=0;n<this.length;n++){const i=this[n];i instanceof Error&&W(`index ${n}`,i),r.push(t.call(e,i,n,this))}return r}getValue(t){const e=J(this).indexOf(t);if(-1===e)return;const r=this[e];return r instanceof Error&&W(`property ${JSON.stringify(t)}`,r.error),r}static fromItems(t,e){return new X(Q,t,e)}}function Y(t){let e=G(t);return h(e.length<=q,"value out-of-bounds","BUFFER_OVERRUN",{buffer:e,length:q,offset:e.length}),e.length!==q&&(e=w(_([z.slice(e.length%q),e]))),e}class ${name;type;localName;dynamic;constructor(t,e,r,n){o(this,{name:t,type:e,localName:r,dynamic:n},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(t,e){f(!1,t,this.localName,e)}}class tt{#e;#r;constructor(){this.#e=[],this.#r=0}get data(){return _(this.#e)}get length(){return this.#r}#n(t){return this.#e.push(t),this.#r+=t.length,t.length}appendWriter(t){return this.#n(w(t.data))}writeBytes(t){let e=w(t);const r=e.length%q;return r&&(e=w(_([e,z.slice(r)]))),this.#n(e)}writeValue(t){return this.#n(Y(t))}writeUpdatableValue(){const t=this.#e.length;return this.#e.push(z),this.#r+=q,e=>{this.#e[t]=Y(e)}}}class et{allowLoose;#e;#i;#s;#o;#a;constructor(t,e,r){o(this,{allowLoose:!!e}),this.#e=w(t),this.#s=0,this.#o=null,this.#a=null!=r?r:1024,this.#i=0}get data(){return E(this.#e)}get dataLength(){return this.#e.length}get consumed(){return this.#i}get bytes(){return new Uint8Array(this.#e)}#u(t){if(this.#o)return this.#o.#u(t);this.#s+=t,h(this.#a<1||this.#s<=this.#a*this.dataLength,`compressed ABI data exceeds inflation ratio of ${this.#a} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,"BUFFER_OVERRUN",{buffer:w(this.#e),offset:this.#i,length:t,info:{bytesRead:this.#s,dataLength:this.dataLength}})}#c(t,e,r){let n=Math.ceil(e/q)*q;return this.#i+n>this.#e.length&&(this.allowLoose&&r&&this.#i+e<=this.#e.length?n=e:h(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:w(this.#e),length:this.#e.length,offset:this.#i+n})),this.#e.slice(this.#i,this.#i+n)}subReader(t){const e=new et(this.#e.slice(this.#i+t),this.allowLoose,this.#a);return e.#o=this,e}readBytes(t,e){let r=this.#c(0,t,!!e);return this.#u(t),this.#i+=r.length,r.slice(0,t)}readValue(){return F(this.readBytes(q))}readIndex(){return L(F(this.readBytes(q)))}}function rt(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function nt(t,...e){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function it(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function st(t,e){nt(t);const r=e.outputLen;if(t.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}const ot=BigInt(2**32-1),at=BigInt(32);function ut(t,e=!1){return e?{h:Number(t&ot),l:Number(t>>at&ot)}:{h:0|Number(t>>at&ot),l:0|Number(t&ot)}}function ct(t,e=!1){let r=new Uint32Array(t.length),n=new Uint32Array(t.length);for(let i=0;i<t.length;i++){const{h:s,l:o}=ut(t[i],e);[r[i],n[i]]=[s,o]}return[r,n]}const lt=(t,e,r)=>t<<r|e>>>32-r,ht=(t,e,r)=>e<<r|t>>>32-r,ft=(t,e,r)=>e<<r-32|t>>>64-r,dt=(t,e,r)=>t<<r-32|e>>>64-r,pt={fromBig:ut,split:ct,toBig:(t,e)=>BigInt(t>>>0)<<at|BigInt(e>>>0),shrSH:(t,e,r)=>t>>>r,shrSL:(t,e,r)=>t<<32-r|e>>>r,rotrSH:(t,e,r)=>t>>>r|e<<32-r,rotrSL:(t,e,r)=>t<<32-r|e>>>r,rotrBH:(t,e,r)=>t<<64-r|e>>>r-32,rotrBL:(t,e,r)=>t>>>r-32|e<<64-r,rotr32H:(t,e)=>e,rotr32L:(t,e)=>t,rotlSH:lt,rotlSL:ht,rotlBH:ft,rotlBL:dt,add:function(t,e,r,n){const i=(e>>>0)+(n>>>0);return{h:t+r+(i/2**32|0)|0,l:0|i}},add3L:(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),add3H:(t,e,r,n)=>e+r+n+(t/2**32|0)|0,add4L:(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0),add4H:(t,e,r,n,i)=>e+r+n+i+(t/2**32|0)|0,add5H:(t,e,r,n,i,s)=>e+r+n+i+s+(t/2**32|0)|0,add5L:(t,e,r,n,i)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(i>>>0)},gt="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,mt=t=>t instanceof Uint8Array,yt=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),wt=(t,e)=>t<<32-e|t>>>e;if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");function bt(t){if("string"==typeof t&&(t=function(t){if("string"!=typeof t)throw new Error("utf8ToBytes expected string, got "+typeof t);return new Uint8Array((new TextEncoder).encode(t))}(t)),!mt(t))throw new Error("expected Uint8Array, got "+typeof t);return t}class At{clone(){return this._cloneInto()}}function vt(t){const e=e=>t().update(bt(e)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}function Et(t=32){if(gt&&"function"==typeof gt.getRandomValues)return gt.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}const[_t,xt,Ct]=[[],[],[]],Nt=BigInt(0),Bt=BigInt(1),Pt=BigInt(2),It=BigInt(7),kt=BigInt(256),Ot=BigInt(113);for(let t=0,e=Bt,r=1,n=0;t<24;t++){[r,n]=[n,(2*r+3*n)%5],_t.push(2*(5*n+r)),xt.push((t+1)*(t+2)/2%64);let i=Nt;for(let t=0;t<7;t++)e=(e<<Bt^(e>>It)*Ot)%kt,e&Pt&&(i^=Bt<<(Bt<<BigInt(t))-Bt);Ct.push(i)}const[Mt,Tt]=ct(Ct,!0),St=(t,e,r)=>r>32?ft(t,e,r):lt(t,e,r),Rt=(t,e,r)=>r>32?dt(t,e,r):ht(t,e,r);class Dt extends At{constructor(t,e,r,n=!1,i=24){if(super(),this.blockLen=t,this.suffix=e,this.outputLen=r,this.enableXOF=n,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,rt(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var s;this.state=new Uint8Array(200),this.state32=(s=this.state,new Uint32Array(s.buffer,s.byteOffset,Math.floor(s.byteLength/4)))}keccak(){!function(t,e=24){const r=new Uint32Array(10);for(let n=24-e;n<24;n++){for(let e=0;e<10;e++)r[e]=t[e]^t[e+10]^t[e+20]^t[e+30]^t[e+40];for(let e=0;e<10;e+=2){const n=(e+8)%10,i=(e+2)%10,s=r[i],o=r[i+1],a=St(s,o,1)^r[n],u=Rt(s,o,1)^r[n+1];for(let r=0;r<50;r+=10)t[e+r]^=a,t[e+r+1]^=u}let e=t[2],i=t[3];for(let r=0;r<24;r++){const n=xt[r],s=St(e,i,n),o=Rt(e,i,n),a=_t[r];e=t[a],i=t[a+1],t[a]=s,t[a+1]=o}for(let e=0;e<50;e+=10){for(let n=0;n<10;n++)r[n]=t[e+n];for(let n=0;n<10;n++)t[e+n]^=~r[(n+2)%10]&r[(n+4)%10]}t[0]^=Mt[n],t[1]^=Tt[n]}r.fill(0)}(this.state32,this.rounds),this.posOut=0,this.pos=0}update(t){it(this);const{blockLen:e,state:r}=this,n=(t=bt(t)).length;for(let i=0;i<n;){const s=Math.min(e-this.pos,n-i);for(let e=0;e<s;e++)r[this.pos++]^=t[i++];this.pos===e&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:e,pos:r,blockLen:n}=this;t[r]^=e,128&e&&r===n-1&&this.keccak(),t[n-1]^=128,this.keccak()}writeInto(t){it(this,!1),nt(t),this.finish();const e=this.state,{blockLen:r}=this;for(let n=0,i=t.length;n<i;){this.posOut>=r&&this.keccak();const s=Math.min(r-this.posOut,i-n);t.set(e.subarray(this.posOut,this.posOut+s),n),this.posOut+=s,n+=s}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return rt(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(st(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){const{blockLen:e,suffix:r,outputLen:n,rounds:i,enableXOF:s}=this;return t||(t=new Dt(e,r,n,s,i)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=i,t.suffix=r,t.outputLen=n,t.enableXOF=s,t.destroyed=this.destroyed,t}}const Ft=((t,e,r)=>vt(()=>new Dt(e,t,r)))(1,136,32);let Lt=!1;const Ut=function(t){return Ft(t)};let Gt=Ut;function Ht(t){const e=y(t,"data");return E(Gt(e))}Ht._=Ut,Ht.lock=function(){Lt=!0},Ht.register=function(t){if(Lt)throw new TypeError("keccak256 is locked");Gt=t},Object.freeze(Ht);const qt=BigInt(0),zt=BigInt(36);function jt(t){const e=(t=t.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let t=0;t<40;t++)r[t]=e[t].charCodeAt(0);const n=y(Ht(r));for(let t=0;t<40;t+=2)n[t>>1]>>4>=8&&(e[t]=e[t].toUpperCase()),(15&n[t>>1])>=8&&(e[t+1]=e[t+1].toUpperCase());return"0x"+e.join("")}const Qt={};for(let t=0;t<10;t++)Qt[String(t)]=String(t);for(let t=0;t<26;t++)Qt[String.fromCharCode(65+t)]=String(10+t);const Vt=function(){const t={};for(let e=0;e<36;e++)t["0123456789abcdefghijklmnopqrstuvwxyz"[e]]=BigInt(e);return t}();function Jt(t){if(f("string"==typeof t,"invalid address","address",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/)){t.startsWith("0x")||(t="0x"+t);const e=jt(t);return f(!t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||e===t,"bad address checksum","address",t),e}if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){f(t.substring(2,4)===function(t){let e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+"00").split("").map(t=>Qt[t]).join("");for(;e.length>=15;){let t=e.substring(0,15);e=parseInt(t,10)%97+e.substring(t.length)}let r=String(98-parseInt(e,10)%97);for(;r.length<2;)r="0"+r;return r}(t),"bad icap checksum","address",t);let e=function(t){t=t.toLowerCase();let e=qt;for(let r=0;r<t.length;r++)e=e*zt+Vt[t[r]];return e}(t.substring(4)).toString(16);for(;e.length<40;)e="0"+e;return jt("0x"+e)}f(!1,"invalid address","address",t)}const Kt={};function Wt(t,e){let r=!1;return e<0&&(r=!0,e*=-1),new Yt(Kt,`${r?"":"u"}int${e}`,t,{signed:r,width:e})}function Zt(t,e){return new Yt(Kt,`bytes${e||""}`,t,{size:e})}const Xt=Symbol.for("_ethers_typed");class Yt{type;value;#l;_typedSymbol;constructor(t,e,r,n){null==n&&(n=null),g(Kt,t,"Typed"),o(this,{_typedSymbol:Xt,type:e,value:r}),this.#l=n,this.format()}format(){if("array"===this.type)throw new Error("");if("dynamicArray"===this.type)throw new Error("");return"tuple"===this.type?`tuple(${this.value.map(t=>t.format()).join(",")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return"string"===this.type}get tupleName(){if("tuple"!==this.type)throw TypeError("not a tuple");return this.#l}get arrayLength(){if("array"!==this.type)throw TypeError("not an array");return!0===this.#l?-1:!1===this.#l?this.value.length:null}static from(t,e){return new Yt(Kt,t,e)}static uint8(t){return Wt(t,8)}static uint16(t){return Wt(t,16)}static uint24(t){return Wt(t,24)}static uint32(t){return Wt(t,32)}static uint40(t){return Wt(t,40)}static uint48(t){return Wt(t,48)}static uint56(t){return Wt(t,56)}static uint64(t){return Wt(t,64)}static uint72(t){return Wt(t,72)}static uint80(t){return Wt(t,80)}static uint88(t){return Wt(t,88)}static uint96(t){return Wt(t,96)}static uint104(t){return Wt(t,104)}static uint112(t){return Wt(t,112)}static uint120(t){return Wt(t,120)}static uint128(t){return Wt(t,128)}static uint136(t){return Wt(t,136)}static uint144(t){return Wt(t,144)}static uint152(t){return Wt(t,152)}static uint160(t){return Wt(t,160)}static uint168(t){return Wt(t,168)}static uint176(t){return Wt(t,176)}static uint184(t){return Wt(t,184)}static uint192(t){return Wt(t,192)}static uint200(t){return Wt(t,200)}static uint208(t){return Wt(t,208)}static uint216(t){return Wt(t,216)}static uint224(t){return Wt(t,224)}static uint232(t){return Wt(t,232)}static uint240(t){return Wt(t,240)}static uint248(t){return Wt(t,248)}static uint256(t){return Wt(t,256)}static uint(t){return Wt(t,256)}static int8(t){return Wt(t,-8)}static int16(t){return Wt(t,-16)}static int24(t){return Wt(t,-24)}static int32(t){return Wt(t,-32)}static int40(t){return Wt(t,-40)}static int48(t){return Wt(t,-48)}static int56(t){return Wt(t,-56)}static int64(t){return Wt(t,-64)}static int72(t){return Wt(t,-72)}static int80(t){return Wt(t,-80)}static int88(t){return Wt(t,-88)}static int96(t){return Wt(t,-96)}static int104(t){return Wt(t,-104)}static int112(t){return Wt(t,-112)}static int120(t){return Wt(t,-120)}static int128(t){return Wt(t,-128)}static int136(t){return Wt(t,-136)}static int144(t){return Wt(t,-144)}static int152(t){return Wt(t,-152)}static int160(t){return Wt(t,-160)}static int168(t){return Wt(t,-168)}static int176(t){return Wt(t,-176)}static int184(t){return Wt(t,-184)}static int192(t){return Wt(t,-192)}static int200(t){return Wt(t,-200)}static int208(t){return Wt(t,-208)}static int216(t){return Wt(t,-216)}static int224(t){return Wt(t,-224)}static int232(t){return Wt(t,-232)}static int240(t){return Wt(t,-240)}static int248(t){return Wt(t,-248)}static int256(t){return Wt(t,-256)}static int(t){return Wt(t,-256)}static bytes1(t){return Zt(t,1)}static bytes2(t){return Zt(t,2)}static bytes3(t){return Zt(t,3)}static bytes4(t){return Zt(t,4)}static bytes5(t){return Zt(t,5)}static bytes6(t){return Zt(t,6)}static bytes7(t){return Zt(t,7)}static bytes8(t){return Zt(t,8)}static bytes9(t){return Zt(t,9)}static bytes10(t){return Zt(t,10)}static bytes11(t){return Zt(t,11)}static bytes12(t){return Zt(t,12)}static bytes13(t){return Zt(t,13)}static bytes14(t){return Zt(t,14)}static bytes15(t){return Zt(t,15)}static bytes16(t){return Zt(t,16)}static bytes17(t){return Zt(t,17)}static bytes18(t){return Zt(t,18)}static bytes19(t){return Zt(t,19)}static bytes20(t){return Zt(t,20)}static bytes21(t){return Zt(t,21)}static bytes22(t){return Zt(t,22)}static bytes23(t){return Zt(t,23)}static bytes24(t){return Zt(t,24)}static bytes25(t){return Zt(t,25)}static bytes26(t){return Zt(t,26)}static bytes27(t){return Zt(t,27)}static bytes28(t){return Zt(t,28)}static bytes29(t){return Zt(t,29)}static bytes30(t){return Zt(t,30)}static bytes31(t){return Zt(t,31)}static bytes32(t){return Zt(t,32)}static address(t){return new Yt(Kt,"address",t)}static bool(t){return new Yt(Kt,"bool",!!t)}static bytes(t){return new Yt(Kt,"bytes",t)}static string(t){return new Yt(Kt,"string",t)}static array(t,e){throw new Error("not implemented yet")}static tuple(t,e){throw new Error("not implemented yet")}static overrides(t){return new Yt(Kt,"overrides",Object.assign({},t))}static isTyped(t){return t&&"object"==typeof t&&"_typedSymbol"in t&&t._typedSymbol===Xt}static dereference(t,e){if(Yt.isTyped(t)){if(t.type!==e)throw new Error(`invalid type: expecetd ${e}, got ${t.type}`);return t.value}return t}}class $t extends ${constructor(t){super("address","address",t,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(t,e){let r=Yt.dereference(e,"string");try{r=Jt(r)}catch(t){return this._throwError(t.message,e)}return t.writeValue(r)}decode(t){return Jt(U(t.readValue(),20))}}class te extends ${coder;constructor(t){super(t.name,t.type,"_",t.dynamic),this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,e){return this.coder.encode(t,e)}decode(t){return this.coder.decode(t)}}function ee(t,e,r){let n=[];if(Array.isArray(r))n=r;else if(r&&"object"==typeof r){let t={};n=e.map(e=>{const n=e.localName;return h(n,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:e},value:r}),h(!t[n],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:e},value:r}),t[n]=!0,r[n]})}else f(!1,"invalid tuple value","tuple",r);f(e.length===n.length,"types/value length mismatch","tuple",r);let i=new tt,s=new tt,o=[];e.forEach((t,e)=>{let r=n[e];if(t.dynamic){let e=s.length;t.encode(s,r);let n=i.writeUpdatableValue();o.push(t=>{n(t+e)})}else t.encode(i,r)}),o.forEach(t=>{t(i.length)});let a=t.appendWriter(i);return a+=t.appendWriter(s),a}function re(t,e){let r=[],n=[],i=t.subReader(0);return e.forEach(e=>{let s=null;if(e.dynamic){let r=t.readIndex(),n=i.subReader(r);try{s=e.decode(n)}catch(t){if(u(t,"BUFFER_OVERRUN"))throw t;s=t,s.baseType=e.name,s.name=e.localName,s.type=e.type}}else try{s=e.decode(t)}catch(t){if(u(t,"BUFFER_OVERRUN"))throw t;s=t,s.baseType=e.name,s.name=e.localName,s.type=e.type}if(null==s)throw new Error("investigate");r.push(s),n.push(e.localName||null)}),X.fromItems(r,n)}class ne extends ${coder;length;constructor(t,e,r){super("array",t.type+"["+(e>=0?e:"")+"]",r,-1===e||t.dynamic),o(this,{coder:t,length:e})}defaultValue(){const t=this.coder.defaultValue(),e=[];for(let r=0;r<this.length;r++)e.push(t);return e}encode(t,e){const r=Yt.dereference(e,"array");Array.isArray(r)||this._throwError("expected array value",r);let n=this.length;-1===n&&(n=r.length,t.writeValue(r.length)),d(r.length,n,"coder array"+(this.localName?" "+this.localName:""));let i=[];for(let t=0;t<r.length;t++)i.push(this.coder);return ee(t,i,r)}decode(t){let e=this.length;-1===e&&(e=t.readIndex(),h(e*q<=t.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:t.bytes,offset:e*q,length:t.dataLength}));let r=[];for(let t=0;t<e;t++)r.push(new te(this.coder));return re(t,r)}}class ie extends ${constructor(t){super("bool","bool",t,!1)}defaultValue(){return!1}encode(t,e){const r=Yt.dereference(e,"bool");return t.writeValue(r?1:0)}decode(t){return!!t.readValue()}}class se extends ${constructor(t,e){super(t,t,e,!0)}defaultValue(){return"0x"}encode(t,e){e=w(e);let r=t.writeValue(e.length);return r+=t.writeBytes(e),r}decode(t){return t.readBytes(t.readIndex(),!0)}}class oe extends se{constructor(t){super("bytes",t)}decode(t){return E(super.decode(t))}}class ae extends ${size;constructor(t,e){let r="bytes"+String(t);super(r,r,e,!1),o(this,{size:t},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(t,e){let r=w(Yt.dereference(e,this.type));return r.length!==this.size&&this._throwError("incorrect data length",e),t.writeBytes(r)}decode(t){return E(t.readBytes(this.size))}}const ue=new Uint8Array([]);class ce extends ${constructor(t){super("null","",t,!1)}defaultValue(){return null}encode(t,e){return null!=e&&this._throwError("not null",e),t.writeBytes(ue)}decode(t){return t.readBytes(0),null}}const le=BigInt(0),he=BigInt(1),fe=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class de extends ${size;signed;constructor(t,e,r){const n=(e?"int":"uint")+8*t;super(n,n,r,!1),o(this,{size:t,signed:e},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(t,e){let r=S(Yt.dereference(e,this.type)),n=T(fe,256);if(this.signed){let t=T(n,8*this.size-1);(r>t||r<-(t+he))&&this._throwError("value out-of-bounds",e),r=M(r,256)}else(r<le||r>T(n,8*this.size))&&this._throwError("value out-of-bounds",e);return t.writeValue(r)}decode(t){let e=T(t.readValue(),8*this.size);return this.signed&&(e=O(e,8*this.size)),e}}function pe(t,e,r,n,i){if("BAD_PREFIX"===t||"UNEXPECTED_CONTINUE"===t){let t=0;for(let n=e+1;n<r.length&&r[n]>>6==2;n++)t++;return t}return"OVERRUN"===t?r.length-e-1:0}const ge=Object.freeze({error:function(t,e,r,n,i){f(!1,`invalid codepoint at offset ${e}; ${t}`,"bytes",r)},ignore:pe,replace:function(t,e,r,n,i){return"OVERLONG"===t?(f("number"==typeof i,"invalid bad code point for replacement","badCodepoint",i),n.push(i),0):(n.push(65533),pe(t,e,r))}});function me(t,e){f("string"==typeof t,"invalid string value","str",t),null!=e&&(function(t){h(p.indexOf(t)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:t}})}(e),t=t.normalize(e));let r=[];for(let e=0;e<t.length;e++){const n=t.charCodeAt(e);if(n<128)r.push(n);else if(n<2048)r.push(n>>6|192),r.push(63&n|128);else if(55296==(64512&n)){e++;const i=t.charCodeAt(e);f(e<t.length&&56320==(64512&i),"invalid surrogate pair","str",t);const s=65536+((1023&n)<<10)+(1023&i);r.push(s>>18|240),r.push(s>>12&63|128),r.push(s>>6&63|128),r.push(63&s|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return new Uint8Array(r)}function ye(t,e){return function(t,e){null==e&&(e=ge.error);const r=y(t,"bytes"),n=[];let i=0;for(;i<r.length;){const t=r[i++];if(!(t>>7)){n.push(t);continue}let s=null,o=null;if(192==(224&t))s=1,o=127;else if(224==(240&t))s=2,o=2047;else{if(240!=(248&t)){i+=e(128==(192&t)?"UNEXPECTED_CONTINUE":"BAD_PREFIX",i-1,r,n);continue}s=3,o=65535}if(i-1+s>=r.length){i+=e("OVERRUN",i-1,r,n);continue}let a=t&(1<<8-s-1)-1;for(let t=0;t<s;t++){let t=r[i];if(128!=(192&t)){i+=e("MISSING_CONTINUE",i,r,n),a=null;break}a=a<<6|63&t,i++}null!==a&&(a>1114111?i+=e("OUT_OF_RANGE",i-1-s,r,n,a):a>=55296&&a<=57343?i+=e("UTF16_SURROGATE",i-1-s,r,n,a):a<=o?i+=e("OVERLONG",i-1-s,r,n,a):n.push(a))}return n}(t,e).map(t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10&1023),56320+(1023&t)))).join("")}class we extends se{constructor(t){super("string",t)}defaultValue(){return""}encode(t,e){return super.encode(t,me(Yt.dereference(e,"string")))}decode(t){return ye(super.decode(t))}}class be extends ${coders;constructor(t,e){let r=!1;const n=[];t.forEach(t=>{t.dynamic&&(r=!0),n.push(t.type)}),super("tuple","tuple("+n.join(",")+")",e,r),o(this,{coders:Object.freeze(t.slice())})}defaultValue(){const t=[];this.coders.forEach(e=>{t.push(e.defaultValue())});const e=this.coders.reduce((t,e)=>{const r=e.localName;return r&&(t[r]||(t[r]=0),t[r]++),t},{});return this.coders.forEach((r,n)=>{let i=r.localName;i&&1===e[i]&&("length"===i&&(i="_length"),null==t[i]&&(t[i]=t[n]))}),Object.freeze(t)}encode(t,e){const r=Yt.dereference(e,"tuple");return ee(t,this.coders,r)}decode(t){return re(t,this.coders)}}function Ae(t){return Ht(me(t))}function ve(t){const e=new Set;return t.forEach(t=>e.add(t)),Object.freeze(e)}const Ee=ve("external public payable override".split(" ")),_e="constant external internal payable private public pure view override",xe=ve(_e.split(" ")),Ce="constructor error event fallback function receive struct",Ne=ve(Ce.split(" ")),Be="calldata memory storage payable indexed",Pe=ve(Be.split(" ")),Ie=ve([Ce,Be,"tuple returns",_e].join(" ").split(" ")),ke={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},Oe=new RegExp("^(\\s*)"),Me=new RegExp("^([0-9]+)"),Te=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),Se=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),Re=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");class De{#i;#h;get offset(){return this.#i}get length(){return this.#h.length-this.#i}constructor(t){this.#i=0,this.#h=t.slice()}clone(){return new De(this.#h)}reset(){this.#i=0}#f(t=0,e=0){return new De(this.#h.slice(t,e).map(e=>Object.freeze(Object.assign({},e,{match:e.match-t,linkBack:e.linkBack-t,linkNext:e.linkNext-t}))))}popKeyword(t){const e=this.peek();if("KEYWORD"!==e.type||!t.has(e.text))throw new Error(`expected keyword ${e.text}`);return this.pop().text}popType(t){if(this.peek().type!==t){const e=this.peek();throw new Error(`expected ${t}; got ${e.type} ${JSON.stringify(e.text)}`)}return this.pop().text}popParen(){const t=this.peek();if("OPEN_PAREN"!==t.type)throw new Error("bad start");const e=this.#f(this.#i+1,t.match+1);return this.#i=t.match+1,e}popParams(){const t=this.peek();if("OPEN_PAREN"!==t.type)throw new Error("bad start");const e=[];for(;this.#i<t.match-1;){const t=this.peek().linkNext;e.push(this.#f(this.#i+1,t)),this.#i=t}return this.#i=t.match+1,e}peek(){if(this.#i>=this.#h.length)throw new Error("out-of-bounds");return this.#h[this.#i]}peekKeyword(t){const e=this.peekType("KEYWORD");return null!=e&&t.has(e)?e:null}peekType(t){if(0===this.length)return null;const e=this.peek();return e.type===t?e.text:null}pop(){const t=this.peek();return this.#i++,t}toString(){const t=[];for(let e=this.#i;e<this.#h.length;e++){const r=this.#h[e];t.push(`${r.type}:${r.text}`)}return`<TokenString ${t.join(" ")}>`}}function Fe(t){const e=[],r=e=>{const r=s<t.length?JSON.stringify(t[s]):"$EOI";throw new Error(`invalid token ${r} at ${s}: ${e}`)};let n=[],i=[],s=0;for(;s<t.length;){let o=t.substring(s),a=o.match(Oe);a&&(s+=a[1].length,o=t.substring(s));const u={depth:n.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:s,value:-1};e.push(u);let c=ke[o[0]]||"";if(c){if(u.type=c,u.text=o[0],s++,"OPEN_PAREN"===c)n.push(e.length-1),i.push(e.length-1);else if("CLOSE_PAREN"==c)0===n.length&&r("no matching open bracket"),u.match=n.pop(),e[u.match].match=e.length-1,u.depth--,u.linkBack=i.pop(),e[u.linkBack].linkNext=e.length-1;else if("COMMA"===c)u.linkBack=i.pop(),e[u.linkBack].linkNext=e.length-1,i.push(e.length-1);else if("OPEN_BRACKET"===c)u.type="BRACKET";else if("CLOSE_BRACKET"===c){let t=e.pop().text;if(e.length>0&&"NUMBER"===e[e.length-1].type){const r=e.pop().text;t=r+t,e[e.length-1].value=L(r)}if(0===e.length||"BRACKET"!==e[e.length-1].type)throw new Error("missing opening bracket");e[e.length-1].text+=t}}else if(a=o.match(Te),a){if(u.text=a[1],s+=u.text.length,Ie.has(u.text)){u.type="KEYWORD";continue}if(u.text.match(Re)){u.type="TYPE";continue}u.type="ID"}else{if(a=o.match(Me),!a)throw new Error(`unexpected token ${JSON.stringify(o[0])} at position ${s}`);u.text=a[1],u.type="NUMBER",s+=u.text.length}}return new De(e.map(t=>Object.freeze(t)))}function Le(t,e){let r=[];for(const n in e.keys())t.has(n)&&r.push(n);if(r.length>1)throw new Error(`conflicting types: ${r.join(", ")}`)}function Ue(t,e){if(e.peekKeyword(Ne)){const r=e.pop().text;if(r!==t)throw new Error(`expected ${t}, got ${r}`)}return e.popType("ID")}function Ge(t,e){const r=new Set;for(;;){const n=t.peekType("KEYWORD");if(null==n||e&&!e.has(n))break;if(t.pop(),r.has(n))throw new Error(`duplicate keywords: ${JSON.stringify(n)}`);r.add(n)}return Object.freeze(r)}function He(t){let e=Ge(t,xe);return Le(e,ve("constant payable nonpayable".split(" "))),Le(e,ve("pure view payable nonpayable".split(" "))),e.has("view")?"view":e.has("pure")?"pure":e.has("payable")?"payable":e.has("nonpayable")?"nonpayable":e.has("constant")?"view":"nonpayable"}function qe(t,e){return t.popParams().map(t=>rr.from(t,e))}function ze(t){if(t.peekType("AT")){if(t.pop(),t.peekType("NUMBER"))return S(t.pop().text);throw new Error("invalid gas")}return null}function je(t){if(t.length)throw new Error(`unexpected tokens at offset ${t.offset}: ${t.toString()}`)}const Qe=new RegExp(/^(.*)\[([0-9]*)\]$/);function Ve(t){const e=t.match(Re);if(f(e,"invalid type","type",t),"uint"===t)return"uint256";if("int"===t)return"int256";if(e[2]){const r=parseInt(e[2]);f(0!==r&&r<=32,"invalid bytes length","type",t)}else if(e[3]){const r=parseInt(e[3]);f(0!==r&&r<=256&&r%8==0,"invalid numeric width","type",t)}return t}const Je={},Ke=Symbol.for("_ethers_internal"),We="_ParamTypeInternal",Ze="_ErrorInternal",Xe="_EventInternal",Ye="_ConstructorInternal",$e="_FallbackInternal",tr="_FunctionInternal",er="_StructInternal";class rr{name;type;baseType;indexed;components;arrayLength;arrayChildren;constructor(t,e,r,n,i,s,a,u){if(g(t,Je,"ParamType"),Object.defineProperty(this,Ke,{value:We}),s&&(s=Object.freeze(s.slice())),"array"===n){if(null==a||null==u)throw new Error("")}else if(null!=a||null!=u)throw new Error("");if("tuple"===n){if(null==s)throw new Error("")}else if(null!=s)throw new Error("");o(this,{name:e,type:r,baseType:n,indexed:i,components:s,arrayLength:a,arrayChildren:u})}format(t){if(null==t&&(t="sighash"),"json"===t){const e=this.name||"";if(this.isArray()){const t=JSON.parse(this.arrayChildren.format("json"));return t.name=e,t.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(t)}const r={type:"tuple"===this.baseType?"tuple":this.type,name:e};return"boolean"==typeof this.indexed&&(r.indexed=this.indexed),this.isTuple()&&(r.components=this.components.map(e=>JSON.parse(e.format(t)))),JSON.stringify(r)}let e="";return this.isArray()?(e+=this.arrayChildren.format(t),e+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?e+="("+this.components.map(e=>e.format(t)).join("full"===t?", ":",")+")":e+=this.type,"sighash"!==t&&(!0===this.indexed&&(e+=" indexed"),"full"===t&&this.name&&(e+=" "+this.name)),e}isArray(){return"array"===this.baseType}isTuple(){return"tuple"===this.baseType}isIndexable(){return null!=this.indexed}walk(t,e){if(this.isArray()){if(!Array.isArray(t))throw new Error("invalid array value");if(-1!==this.arrayLength&&t.length!==this.arrayLength)throw new Error("array is wrong length");const r=this;return t.map(t=>r.arrayChildren.walk(t,e))}if(this.isTuple()){if(!Array.isArray(t))throw new Error("invalid tuple value");if(t.length!==this.components.length)throw new Error("array is wrong length");const r=this;return t.map((t,n)=>r.components[n].walk(t,e))}return e(this.type,t)}#d(t,e,r,n){if(this.isArray()){if(!Array.isArray(e))throw new Error("invalid array value");if(-1!==this.arrayLength&&e.length!==this.arrayLength)throw new Error("array is wrong length");const i=this.arrayChildren,s=e.slice();return s.forEach((e,n)=>{i.#d(t,e,r,t=>{s[n]=t})}),void n(s)}if(this.isTuple()){const i=this.components;let s;if(Array.isArray(e))s=e.slice();else{if(null==e||"object"!=typeof e)throw new Error("invalid tuple value");s=i.map(t=>{if(!t.name)throw new Error("cannot use object value with unnamed components");if(!(t.name in e))throw new Error(`missing value for component ${t.name}`);return e[t.name]})}if(s.length!==this.components.length)throw new Error("array is wrong length");return s.forEach((e,n)=>{i[n].#d(t,e,r,t=>{s[n]=t})}),void n(s)}const i=r(this.type,e);i.then?t.push(async function(){n(await i)}()):n(i)}async walkAsync(t,e){const r=[],n=[t];return this.#d(r,t,e,t=>{n[0]=t}),r.length&&await Promise.all(r),n[0]}static from(t,e){if(rr.isParamType(t))return t;if("string"==typeof t)try{return rr.from(Fe(t),e)}catch(e){f(!1,"invalid param type","obj",t)}else if(t instanceof De){let r="",n="",i=null;Ge(t,ve(["tuple"])).has("tuple")||t.peekType("OPEN_PAREN")?(n="tuple",i=t.popParams().map(t=>rr.from(t)),r=`tuple(${i.map(t=>t.format()).join(",")})`):(r=Ve(t.popType("TYPE")),n=r);let s=null,o=null;for(;t.length&&t.peekType("BRACKET");){const e=t.pop();s=new rr(Je,"",r,n,null,i,o,s),o=e.value,r+=e.text,n="array",i=null}let a=null;if(Ge(t,Pe).has("indexed")){if(!e)throw new Error("");a=!0}const u=t.peekType("ID")?t.pop().text:"";if(t.length)throw new Error("leftover tokens");return new rr(Je,u,r,n,a,i,o,s)}const r=t.name;f(!r||"string"==typeof r&&r.match(Se),"invalid name","obj.name",r);let n=t.indexed;null!=n&&(f(e,"parameter cannot be indexed","obj.indexed",t.indexed),n=!!n);let i=t.type,s=i.match(Qe);if(s){const e=parseInt(s[2]||"-1"),o=rr.from({type:s[1],components:t.components});return new rr(Je,r||"",i,"array",n,null,e,o)}if("tuple"===i||i.startsWith("tuple(")||i.startsWith("(")){const e=null!=t.components?t.components.map(t=>rr.from(t)):null;return new rr(Je,r||"",i,"tuple",n,e,null,null)}return i=Ve(t.type),new rr(Je,r||"",i,i,n,null,null,null)}static isParamType(t){return t&&t[Ke]===We}}class nr{type;inputs;constructor(t,e,r){g(t,Je,"Fragment"),o(this,{type:e,inputs:r=Object.freeze(r.slice())})}static from(t){if("string"==typeof t){try{nr.from(JSON.parse(t))}catch(t){}return nr.from(Fe(t))}if(t instanceof De)switch(t.peekKeyword(Ne)){case"constructor":return ur.from(t);case"error":return or.from(t);case"event":return ar.from(t);case"fallback":case"receive":return cr.from(t);case"function":return lr.from(t);case"struct":return hr.from(t)}else if("object"==typeof t){switch(t.type){case"constructor":return ur.from(t);case"error":return or.from(t);case"event":return ar.from(t);case"fallback":case"receive":return cr.from(t);case"function":return lr.from(t);case"struct":return hr.from(t)}h(!1,`unsupported type: ${t.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}f(!1,"unsupported frgament object","obj",t)}static isConstructor(t){return ur.isFragment(t)}static isError(t){return or.isFragment(t)}static isEvent(t){return ar.isFragment(t)}static isFunction(t){return lr.isFragment(t)}static isStruct(t){return hr.isFragment(t)}}class ir extends nr{name;constructor(t,e,r,n){super(t,e,n),f("string"==typeof r&&r.match(Se),"invalid identifier","name",r),n=Object.freeze(n.slice()),o(this,{name:r})}}function sr(t,e){return"("+e.map(e=>e.format(t)).join("full"===t?", ":",")+")"}class or extends ir{constructor(t,e,r){super(t,"error",e,r),Object.defineProperty(this,Ke,{value:Ze})}get selector(){return Ae(this.format("sighash")).substring(0,10)}format(t){if(null==t&&(t="sighash"),"json"===t)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(e=>JSON.parse(e.format(t)))});const e=[];return"sighash"!==t&&e.push("error"),e.push(this.name+sr(t,this.inputs)),e.join(" ")}static from(t){if(or.isFragment(t))return t;if("string"==typeof t)return or.from(Fe(t));if(t instanceof De){const e=Ue("error",t),r=qe(t);return je(t),new or(Je,e,r)}return new or(Je,t.name,t.inputs?t.inputs.map(rr.from):[])}static isFragment(t){return t&&t[Ke]===Ze}}class ar extends ir{anonymous;constructor(t,e,r,n){super(t,"event",e,r),Object.defineProperty(this,Ke,{value:Xe}),o(this,{anonymous:n})}get topicHash(){return Ae(this.format("sighash"))}format(t){if(null==t&&(t="sighash"),"json"===t)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(e=>JSON.parse(e.format(t)))});const e=[];return"sighash"!==t&&e.push("event"),e.push(this.name+sr(t,this.inputs)),"sighash"!==t&&this.anonymous&&e.push("anonymous"),e.join(" ")}static getTopicHash(t,e){return e=(e||[]).map(t=>rr.from(t)),new ar(Je,t,e,!1).topicHash}static from(t){if(ar.isFragment(t))return t;if("string"==typeof t)try{return ar.from(Fe(t))}catch(e){f(!1,"invalid event fragment","obj",t)}else if(t instanceof De){const e=Ue("event",t),r=qe(t,!0),n=!!Ge(t,ve(["anonymous"])).has("anonymous");return je(t),new ar(Je,e,r,n)}return new ar(Je,t.name,t.inputs?t.inputs.map(t=>rr.from(t,!0)):[],!!t.anonymous)}static isFragment(t){return t&&t[Ke]===Xe}}class ur extends nr{payable;gas;constructor(t,e,r,n,i){super(t,e,r),Object.defineProperty(this,Ke,{value:Ye}),o(this,{payable:n,gas:i})}format(t){if(h(null!=t&&"sighash"!==t,"cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),"json"===t)return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:null!=this.gas?this.gas:void 0,inputs:this.inputs.map(e=>JSON.parse(e.format(t)))});const e=[`constructor${sr(t,this.inputs)}`];return this.payable&&e.push("payable"),null!=this.gas&&e.push(`@${this.gas.toString()}`),e.join(" ")}static from(t){if(ur.isFragment(t))return t;if("string"==typeof t)try{return ur.from(Fe(t))}catch(e){f(!1,"invalid constuctor fragment","obj",t)}else if(t instanceof De){Ge(t,ve(["constructor"]));const e=qe(t),r=!!Ge(t,Ee).has("payable"),n=ze(t);return je(t),new ur(Je,"constructor",e,r,n)}return new ur(Je,"constructor",t.inputs?t.inputs.map(rr.from):[],!!t.payable,null!=t.gas?t.gas:null)}static isFragment(t){return t&&t[Ke]===Ye}}class cr extends nr{payable;constructor(t,e,r){super(t,"fallback",e),Object.defineProperty(this,Ke,{value:$e}),o(this,{payable:r})}format(t){const e=0===this.inputs.length?"receive":"fallback";if("json"===t){const t=this.payable?"payable":"nonpayable";return JSON.stringify({type:e,stateMutability:t})}return`${e}()${this.payable?" payable":""}`}static from(t){if(cr.isFragment(t))return t;if("string"==typeof t)try{return cr.from(Fe(t))}catch(e){f(!1,"invalid fallback fragment","obj",t)}else if(t instanceof De){const e=t.toString();if(f(t.peekKeyword(ve(["fallback","receive"])),"type must be fallback or receive","obj",e),"receive"===t.popKeyword(ve(["fallback","receive"]))){const e=qe(t);return f(0===e.length,"receive cannot have arguments","obj.inputs",e),Ge(t,ve(["payable"])),je(t),new cr(Je,[],!0)}let r=qe(t);r.length?f(1===r.length&&"bytes"===r[0].type,"invalid fallback inputs","obj.inputs",r.map(t=>t.format("minimal")).join(", ")):r=[rr.from("bytes")];const n=He(t);if(f("nonpayable"===n||"payable"===n,"fallback cannot be constants","obj.stateMutability",n),Ge(t,ve(["returns"])).has("returns")){const e=qe(t);f(1===e.length&&"bytes"===e[0].type,"invalid fallback outputs","obj.outputs",e.map(t=>t.format("minimal")).join(", "))}return je(t),new cr(Je,r,"payable"===n)}if("receive"===t.type)return new cr(Je,[],!0);if("fallback"===t.type){const e=[rr.from("bytes")],r="payable"===t.stateMutability;return new cr(Je,e,r)}f(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[Ke]===$e}}class lr extends ir{constant;outputs;stateMutability;payable;gas;constructor(t,e,r,n,i,s){super(t,"function",e,n),Object.defineProperty(this,Ke,{value:tr}),o(this,{constant:"view"===r||"pure"===r,gas:s,outputs:i=Object.freeze(i.slice()),payable:"payable"===r,stateMutability:r})}get selector(){return Ae(this.format("sighash")).substring(0,10)}format(t){if(null==t&&(t="sighash"),"json"===t)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:null!=this.gas?this.gas:void 0,inputs:this.inputs.map(e=>JSON.parse(e.format(t))),outputs:this.outputs.map(e=>JSON.parse(e.format(t)))});const e=[];return"sighash"!==t&&e.push("function"),e.push(this.name+sr(t,this.inputs)),"sighash"!==t&&("nonpayable"!==this.stateMutability&&e.push(this.stateMutability),this.outputs&&this.outputs.length&&(e.push("returns"),e.push(sr(t,this.outputs))),null!=this.gas&&e.push(`@${this.gas.toString()}`)),e.join(" ")}static getSelector(t,e){return e=(e||[]).map(t=>rr.from(t)),new lr(Je,t,"view",e,[],null).selector}static from(t){if(lr.isFragment(t))return t;if("string"==typeof t)try{return lr.from(Fe(t))}catch(e){f(!1,"invalid function fragment","obj",t)}else if(t instanceof De){const e=Ue("function",t),r=qe(t),n=He(t);let i=[];Ge(t,ve(["returns"])).has("returns")&&(i=qe(t));const s=ze(t);return je(t),new lr(Je,e,n,r,i,s)}let e=t.stateMutability;return null==e&&(e="payable","boolean"==typeof t.constant?(e="view",t.constant||(e="payable","boolean"!=typeof t.payable||t.payable||(e="nonpayable"))):"boolean"!=typeof t.payable||t.payable||(e="nonpayable")),new lr(Je,t.name,e,t.inputs?t.inputs.map(rr.from):[],t.outputs?t.outputs.map(rr.from):[],null!=t.gas?t.gas:null)}static isFragment(t){return t&&t[Ke]===tr}}class hr extends ir{constructor(t,e,r){super(t,"struct",e,r),Object.defineProperty(this,Ke,{value:er})}format(){throw new Error("@TODO")}static from(t){if("string"==typeof t)try{return hr.from(Fe(t))}catch(e){f(!1,"invalid struct fragment","obj",t)}else if(t instanceof De){const e=Ue("struct",t),r=qe(t);return je(t),new hr(Je,e,r)}return new hr(Je,t.name,t.inputs?t.inputs.map(rr.from):[])}static isFragment(t){return t&&t[Ke]===er}}const fr=new Map;fr.set(0,"GENERIC_PANIC"),fr.set(1,"ASSERT_FALSE"),fr.set(17,"OVERFLOW"),fr.set(18,"DIVIDE_BY_ZERO"),fr.set(33,"ENUM_RANGE_ERROR"),fr.set(34,"BAD_STORAGE_DATA"),fr.set(49,"STACK_UNDERFLOW"),fr.set(50,"ARRAY_RANGE_ERROR"),fr.set(65,"OUT_OF_MEMORY"),fr.set(81,"UNINITIALIZED_FUNCTION_CALL");const dr=new RegExp(/^bytes([0-9]*)$/),pr=new RegExp(/^(u?int)([0-9]*)$/);let gr=null,mr=1024;class yr{#p(t){if(t.isArray())return new ne(this.#p(t.arrayChildren),t.arrayLength,t.name);if(t.isTuple())return new be(t.components.map(t=>this.#p(t)),t.name);switch(t.baseType){case"address":return new $t(t.name);case"bool":return new ie(t.name);case"string":return new we(t.name);case"bytes":return new oe(t.name);case"":return new ce(t.name)}let e=t.type.match(pr);if(e){let r=parseInt(e[2]||"256");return f(0!==r&&r<=256&&r%8==0,"invalid "+e[1]+" bit length","param",t),new de(r/8,"int"===e[1],t.name)}if(e=t.type.match(dr),e){let r=parseInt(e[1]);return f(0!==r&&r<=32,"invalid bytes length","param",t),new ae(r,t.name)}f(!1,"invalid type","type",t.type)}getDefaultValue(t){const e=t.map(t=>this.#p(rr.from(t)));return new be(e,"_").defaultValue()}encode(t,e){d(e.length,t.length,"types/values length mismatch");const r=t.map(t=>this.#p(rr.from(t))),n=new be(r,"_"),i=new tt;return n.encode(i,e),i.data}decode(t,e,r){const n=t.map(t=>this.#p(rr.from(t)));return new be(n,"_").decode(new et(e,r,mr))}static _setDefaultMaxInflation(t){f("number"==typeof t&&Number.isInteger(t),"invalid defaultMaxInflation factor","value",t),mr=t}static defaultAbiCoder(){return null==gr&&(gr=new yr),gr}static getBuiltinCallException(t,e,r){return function(t,e,r,n){let i="missing revert data",s=null,o=null;if(r){i="execution reverted";const t=y(r);if(r=E(r),0===t.length)i+=" (no data present; likely require(false) occurred",s="require(false)";else if(t.length%32!=4)i+=" (could not decode reason; invalid data length)";else if("0x08c379a0"===E(t.slice(0,4)))try{s=n.decode(["string"],t.slice(4))[0],o={signature:"Error(string)",name:"Error",args:[s]},i+=`: ${JSON.stringify(s)}`}catch(t){i+=" (could not decode reason; invalid string data)"}else if("0x4e487b71"===E(t.slice(0,4)))try{const e=Number(n.decode(["uint256"],t.slice(4))[0]);o={signature:"Panic(uint256)",name:"Panic",args:[e]},s=`Panic due to ${fr.get(e)||"UNKNOWN"}(${e})`,i+=`: ${s}`}catch(t){i+=" (could not decode panic code)"}else i+=" (unknown custom error)"}const a={to:e.to?Jt(e.to):null,data:e.data||"0x"};return e.from&&(a.from=Jt(e.from)),l(i,"CALL_EXCEPTION",{action:t,data:r,reason:s,transaction:a,invocation:null,revert:o})}(t,e,r,yr.defaultAbiCoder())}}function wr(t){return t&&"function"==typeof t.getAddress}async function br(t,e){const r=await e;return null!=r&&"0x0000000000000000000000000000000000000000"!==r||(h("string"!=typeof t,"unconfigured name","UNCONFIGURED_NAME",{value:t}),f(!1,"invalid AddressLike value; did not resolve to a value address","target",t)),Jt(r)}function Ar(t,e){return"string"==typeof t?t.match(/^0x[0-9a-f]{40}$/i)?Jt(t):(h(null!=e,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),br(t,e.resolveName(t))):wr(t)?br(t,t.getAddress()):t&&"function"==typeof t.then?br(t,t):void f(!1,"unsupported addressable value","target",t)}const vr=new Uint8Array(32);vr.fill(0);const Er=BigInt(-1),_r=BigInt(0),xr=BigInt(1),Cr=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Nr=U(xr,32),Br=U(_r,32),Pr={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},Ir=["name","version","chainId","verifyingContract","salt"];function kr(t){return function(e){return f("string"==typeof e,`invalid domain value for ${JSON.stringify(t)}`,`domain.${t}`,e),e}}const Or={name:kr("name"),version:kr("version"),chainId:function(t){const e=S(t,"domain.chainId");return f(e>=0,"invalid chain ID","domain.chainId",t),Number.isSafeInteger(e)?Number(e):H(e)},verifyingContract:function(t){try{return Jt(t).toLowerCase()}catch(t){}f(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",t)},salt:function(t){const e=y(t,"domain.salt");return f(32===e.length,'invalid domain value "salt"',"domain.salt",t),E(e)}};function Mr(t){{const e=t.match(/^(u?)int(\d+)$/);if(e){const r=""===e[1],n=parseInt(e[2]);f(n%8==0&&0!==n&&n<=256&&e[2]===String(n),"invalid numeric width","type",t);const i=T(Cr,r?n-1:n),s=r?(i+xr)*Er:_r;return function(e){const n=S(e,"value");return f(n>=s&&n<=i,`value out-of-bounds for ${t}`,"value",n),U(r?M(n,256):n,32)}}}{const e=t.match(/^bytes(\d+)$/);if(e){const r=parseInt(e[1]);return f(0!==r&&r<=32&&e[1]===String(r),"invalid bytes width","type",t),function(e){return f(y(e).length===r,`invalid length for ${t}`,"value",e),function(t){const e=y(t),r=e.length%32;return r?_([e,vr.slice(r)]):E(e)}(e)}}}switch(t){case"address":return function(t){return B(Jt(t),32)};case"bool":return function(t){return t?Nr:Br};case"bytes":return function(t){return Ht(t)};case"string":return function(t){return Ae(t)}}return null}function Tr(t,e){return`${t}(${e.map(({name:t,type:e})=>e+" "+t).join(",")})`}function Sr(t){const e=t.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);return e?{base:e[1],index:e[2]+e[4],array:{base:e[1],prefix:e[1]+e[2],count:e[5]?parseInt(e[5]):-1}}:{base:t}}class Rr{primaryType;#g;get types(){return JSON.parse(this.#g)}#m;#y;constructor(t){this.#m=new Map,this.#y=new Map;const e=new Map,r=new Map,n=new Map,i={};Object.keys(t).forEach(s=>{i[s]=t[s].map(({name:e,type:r})=>{let{base:n,index:i}=Sr(r);return"int"!==n||t.int||(n="int256"),"uint"!==n||t.uint||(n="uint256"),{name:e,type:n+(i||"")}}),e.set(s,new Set),r.set(s,[]),n.set(s,new Set)}),this.#g=JSON.stringify(i);for(const n in i){const s=new Set;for(const o of i[n]){f(!s.has(o.name),`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(n)}`,"types",t),s.add(o.name);const i=Sr(o.type).base;f(i!==n,`circular type reference to ${JSON.stringify(i)}`,"types",t),Mr(i)||(f(r.has(i),`unknown type ${JSON.stringify(i)}`,"types",t),r.get(i).push(n),e.get(n).add(i))}}const s=Array.from(r.keys()).filter(t=>0===r.get(t).length);f(0!==s.length,"missing primary type","types",t),f(1===s.length,`ambiguous primary types or unused types: ${s.map(t=>JSON.stringify(t)).join(", ")}`,"types",t),o(this,{primaryType:s[0]}),function i(s,o){f(!o.has(s),`circular type reference to ${JSON.stringify(s)}`,"types",t),o.add(s);for(const t of e.get(s))if(r.has(t)){i(t,o);for(const e of o)n.get(e).add(t)}o.delete(s)}(this.primaryType,new Set);for(const[t,e]of n){const r=Array.from(e);r.sort(),this.#m.set(t,Tr(t,i[t])+r.map(t=>Tr(t,i[t])).join(""))}}getEncoder(t){let e=this.#y.get(t);return e||(e=this.#w(t),this.#y.set(t,e)),e}#w(t){{const e=Mr(t);if(e)return e}const e=Sr(t).array;if(e){const t=e.prefix,r=this.getEncoder(t);return n=>{f(-1===e.count||e.count===n.length,`array length mismatch; expected length ${e.count}`,"value",n);let i=n.map(r);return this.#m.has(t)&&(i=i.map(Ht)),Ht(_(i))}}const r=this.types[t];if(r){const e=Ae(this.#m.get(t));return t=>{const n=r.map(({name:e,type:r})=>{const n=this.getEncoder(r)(t[e]);return this.#m.has(r)?Ht(n):n});return n.unshift(e),_(n)}}f(!1,`unknown type: ${t}`,"type",t)}encodeType(t){const e=this.#m.get(t);return f(e,`unknown type: ${JSON.stringify(t)}`,"name",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return Ht(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,r){if(Mr(t))return r(t,e);const n=Sr(t).array;if(n)return f(-1===n.count||n.count===e.length,`array length mismatch; expected length ${n.count}`,"value",e),e.map(t=>this._visit(n.prefix,t,r));const i=this.types[t];if(i)return i.reduce((t,{name:n,type:i})=>(t[n]=this._visit(i,e[n],r),t),{});f(!1,`unknown type: ${t}`,"type",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(t){return new Rr(t)}static getPrimaryType(t){return Rr.from(t).primaryType}static hashStruct(t,e,r){return Rr.from(e).hashStruct(t,r)}static hashDomain(t){const e=[];for(const r in t){if(null==t[r])continue;const n=Pr[r];f(n,`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",t),e.push({name:r,type:n})}return e.sort((t,e)=>Ir.indexOf(t.name)-Ir.indexOf(e.name)),Rr.hashStruct("EIP712Domain",{EIP712Domain:e},t)}static encode(t,e,r){return _(["0x1901",Rr.hashDomain(t),Rr.from(e).hash(r)])}static hash(t,e,r){return Ht(Rr.encode(t,e,r))}static async resolveNames(t,e,r,n){t=Object.assign({},t);for(const e in t)null==t[e]&&delete t[e];const i={};t.verifyingContract&&!b(t.verifyingContract,20)&&(i[t.verifyingContract]="0x");const s=Rr.from(e);s.visit(r,(t,e)=>("address"!==t||b(e,20)||(i[e]="0x"),e));for(const t in i)i[t]=await n(t);return t.verifyingContract&&i[t.verifyingContract]&&(t.verifyingContract=i[t.verifyingContract]),{domain:t,value:r=s.visit(r,(t,e)=>"address"===t&&i[e]?i[e]:e)}}static getPayload(t,e,r){Rr.hashDomain(t);const n={},i=[];Ir.forEach(e=>{const r=t[e];null!=r&&(n[e]=Or[e](r),i.push({name:e,type:Pr[e]}))});const s=Rr.from(e);e=s.types;const o=Object.assign({},e);return f(null==o.EIP712Domain,"types must not contain EIP712Domain type","types.EIP712Domain",e),o.EIP712Domain=i,s.encode(r),{types:o,domain:n,primaryType:s.primaryType,message:s.visit(r,(t,e)=>{if(t.match(/^bytes(\d*)/))return E(y(e));if(t.match(/^u?int/))return S(e).toString();switch(t){case"address":return e.toLowerCase();case"bool":return!!e;case"string":return f("string"==typeof e,"invalid string","value",e),e}f(!1,"unsupported type","type",t)})}}}function Dr(t,e){return{address:Jt(t),storageKeys:e.map((t,e)=>(f(b(t,32),"invalid slot",`storageKeys[${e}]`,t),t.toLowerCase()))}}function Fr(t){if(Array.isArray(t))return t.map((e,r)=>Array.isArray(e)?(f(2===e.length,"invalid slot set",`value[${r}]`,e),Dr(e[0],e[1])):(f(null!=e&&"object"==typeof e,"invalid address-slot set","value",t),Dr(e.address,e.storageKeys)));f(null!=t&&"object"==typeof t,"invalid access list","value",t);const e=Object.keys(t).map(e=>{const r=t[e].reduce((t,e)=>(t[e]=!0,t),{});return Dr(e,Object.keys(r).sort())});return e.sort((t,e)=>t.address.localeCompare(e.address)),e}const Lr="0x0000000000000000000000000000000000000000000000000000000000000000",Ur=BigInt(0),Gr=BigInt(1),Hr=BigInt(2),qr=BigInt(27),zr=BigInt(28),jr=BigInt(35),Qr={};function Vr(t){return B(G(t),32)}class Jr{#b;#A;#v;#E;get r(){return this.#b}set r(t){f(32===x(t),"invalid r","value",t),this.#b=E(t)}get s(){return f(parseInt(this.#A.substring(0,3))<8,"non-canonical s; use ._s","s",this.#A),this.#A}set s(t){f(32===x(t),"invalid s","value",t),this.#A=E(t)}get _s(){return this.#A}isValid(){return parseInt(this.#A.substring(0,3))<8}get v(){return this.#v}set v(t){const e=L(t,"value");f(27===e||28===e,"invalid v","v",t),this.#v=e}get networkV(){return this.#E}get legacyChainId(){const t=this.networkV;return null==t?null:Jr.getChainId(t)}get yParity(){return 27===this.v?0:1}get yParityAndS(){const t=y(this.s);return this.yParity&&(t[0]|=128),E(t)}get compactSerialized(){return _([this.r,this.yParityAndS])}get serialized(){return _([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(t,e,r,n){g(t,Qr,"Signature"),this.#b=e,this.#A=r,this.#v=n,this.#E=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this._s}"${this.isValid()?"":', valid: "false"'}, yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const t=new Jr(Qr,this.r,this._s,this.v);return this.networkV&&(t.#E=this.networkV),t}toJSON(){const t=this.networkV;return{_type:"signature",networkV:null!=t?t.toString():null,r:this.r,s:this._s,v:this.v}}static getChainId(t){const e=S(t,"v");return e==qr||e==zr?Ur:(f(e>=jr,"invalid EIP-155 v","v",t),(e-jr)/Hr)}static getChainIdV(t,e){return S(t)*Hr+BigInt(35+e-27)}static getNormalizedV(t){const e=S(t);return e===Ur||e===qr?27:e===Gr||e===zr?28:(f(e>=jr,"invalid v","v",t),e&Gr?27:28)}static from(t){function e(e,r){f(e,r,"signature",t)}if(null==t)return new Jr(Qr,Lr,Lr,27);if("string"==typeof t){const r=y(t,"signature");if(64===r.length){const t=E(r.slice(0,32)),e=r.slice(32,64),n=128&e[0]?28:27;return e[0]&=127,new Jr(Qr,t,E(e),n)}if(65===r.length){const t=E(r.slice(0,32)),e=E(r.slice(32,64)),n=Jr.getNormalizedV(r[64]);return new Jr(Qr,t,e,n)}e(!1,"invalid raw signature length")}if(t instanceof Jr)return t.clone();const r=t.r;e(null!=r,"missing r");const n=Vr(r),i=function(t,r){if(null!=t)return Vr(t);if(null!=r){e(b(r,32),"invalid yParityAndS");const t=y(r);return t[0]&=127,E(t)}e(!1,"missing s")}(t.s,t.yParityAndS),{networkV:s,v:o}=function(t,r,n){if(null!=t){const e=S(t);return{networkV:e>=jr?e:void 0,v:Jr.getNormalizedV(e)}}if(null!=r)return e(b(r,32),"invalid yParityAndS"),{v:128&y(r)[0]?28:27};if(null!=n){switch(L(n,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}e(!1,"invalid yParity")}e(!1,"missing v")}(t.v,t.yParityAndS,t.yParity),a=new Jr(Qr,n,i,o);return s&&(a.#E=s),e(null==t.yParity||L(t.yParity,"sig.yParity")===a.yParity,"yParity mismatch"),e(null==t.yParityAndS||t.yParityAndS===a.yParityAndS,"yParityAndS mismatch"),a}}function Kr(t){return{address:Jt(t.address),nonce:S(null!=t.nonce?t.nonce:0),chainId:S(null!=t.chainId?t.chainId:0),signature:Jr.from(t.signature)}}function Wr(t){return async function(e,r){h(null==r||!r.cancelled,"request cancelled before sending","CANCELLED");const n=e.url.split(":")[0].toLowerCase();h("http"===n||"https"===n,`unsupported protocol ${n}`,"UNSUPPORTED_OPERATION",{info:{protocol:n},operation:"request"}),h("https"===n||!e.credentials||e.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let i=null;const s=new AbortController,o=setTimeout(()=>{i=l("request timeout","TIMEOUT"),s.abort()},e.timeout);r&&r.addListener(()=>{i=l("request cancelled","CANCELLED"),s.abort()});const a=Object.assign({},t,{method:e.method,headers:new Headers(Array.from(e)),body:e.body||void 0,signal:s.signal});let u;try{u=await fetch(e.url,a)}catch(t){if(clearTimeout(o),i)throw i;throw t}clearTimeout(o);const c={};u.headers.forEach((t,e)=>{c[e.toLowerCase()]=t});const f=await u.arrayBuffer(),d=null==f?null:new Uint8Array(f);return{statusCode:u.status,statusMessage:u.statusText,headers:c,body:d}}}Wr({});let Zr=Wr();const Xr=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),Yr=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let $r=!1;async function tn(t,e){try{const e=t.match(Xr);if(!e)throw new Error("invalid data");return new un(200,"OK",{"content-type":e[1]||"text/plain"},e[2]?function(t){t=atob(t);const e=new Uint8Array(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return y(e)}(e[3]):me(e[3].replace(/%([0-9a-f][0-9a-f])/gi,(t,e)=>String.fromCharCode(parseInt(e,16)))))}catch(e){return new un(599,"BAD REQUEST (invalid data: URI)",{},null,new an(t))}}function en(t){return async function(e,r){try{const r=e.match(Yr);if(!r)throw new Error("invalid link");return new an(`${t}${r[2]}`)}catch(t){return new un(599,"BAD REQUEST (invalid IPFS URI)",{},null,new an(e))}}}const rn={data:tn,ipfs:en("https://gateway.ipfs.io/ipfs/")},nn=new WeakMap;class sn{#_;#x;constructor(t){this.#_=[],this.#x=!1,nn.set(t,()=>{if(!this.#x){this.#x=!0;for(const t of this.#_)setTimeout(()=>{t()},0);this.#_=[]}})}addListener(t){h(!this.#x,"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),this.#_.push(t)}get cancelled(){return this.#x}checkSignal(){h(!this.cancelled,"cancelled","CANCELLED",{})}}function on(t){if(null==t)throw new Error("missing signal; should not happen");return t.checkSignal(),t}class an{#C;#N;#B;#P;#I;#k;#O;#M;#T;#S;#R;#D;#F;#L;#U;get url(){return this.#k}set url(t){this.#k=String(t)}get body(){return null==this.#O?null:new Uint8Array(this.#O)}set body(t){if(null==t)this.#O=void 0,this.#M=void 0;else if("string"==typeof t)this.#O=me(t),this.#M="text/plain";else if(t instanceof Uint8Array)this.#O=t,this.#M="application/octet-stream";else{if("object"!=typeof t)throw new Error("invalid body");this.#O=me(JSON.stringify(t)),this.#M="application/json"}}hasBody(){return null!=this.#O}get method(){return this.#P?this.#P:this.hasBody()?"POST":"GET"}set method(t){null==t&&(t=""),this.#P=String(t).toUpperCase()}get headers(){const t=Object.assign({},this.#B);return this.#T&&(t.authorization=`Basic ${function(t){const e=y(t);let r="";for(let t=0;t<e.length;t++)r+=String.fromCharCode(e[t]);return btoa(r)}(me(this.#T))}`),this.allowGzip&&(t["accept-encoding"]="gzip"),null==t["content-type"]&&this.#M&&(t["content-type"]=this.#M),this.body&&(t["content-length"]=String(this.body.length)),t}getHeader(t){return this.headers[t.toLowerCase()]}setHeader(t,e){this.#B[String(t).toLowerCase()]=String(e)}clearHeaders(){this.#B={}}[Symbol.iterator](){const t=this.headers,e=Object.keys(t);let r=0;return{next:()=>{if(r<e.length){const n=e[r++];return{value:[n,t[n]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return this.#T||null}setCredentials(t,e){f(!t.match(/:/),"invalid basic authentication username","username","[REDACTED]"),this.#T=`${t}:${e}`}get allowGzip(){return this.#N}set allowGzip(t){this.#N=!!t}get allowInsecureAuthentication(){return!!this.#C}set allowInsecureAuthentication(t){this.#C=!!t}get timeout(){return this.#I}set timeout(t){f(t>=0,"timeout must be non-zero","timeout",t),this.#I=t}get preflightFunc(){return this.#S||null}set preflightFunc(t){this.#S=t}get processFunc(){return this.#R||null}set processFunc(t){this.#R=t}get retryFunc(){return this.#D||null}set retryFunc(t){this.#D=t}get getUrlFunc(){return this.#U||Zr}set getUrlFunc(t){this.#U=t}constructor(t){this.#k=String(t),this.#C=!1,this.#N=!0,this.#B={},this.#P="",this.#I=3e5,this.#L={slotInterval:250,maxAttempts:12},this.#U=null}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${this.#O?E(this.#O):"null"}>`}setThrottleParams(t){null!=t.slotInterval&&(this.#L.slotInterval=t.slotInterval),null!=t.maxAttempts&&(this.#L.maxAttempts=t.maxAttempts)}async#G(t,e,r,n,i){if(t>=this.#L.maxAttempts)return i.makeServerError("exceeded maximum retry limit");h(cn()<=e,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:n}),r>0&&await function(t){return new Promise(e=>setTimeout(e,t))}(r);let s=this.clone();const o=(s.url.split(":")[0]||"").toLowerCase();if(o in rn){const t=await rn[o](s.url,on(n.#F));if(t instanceof un){let e=t;if(this.processFunc){on(n.#F);try{e=await this.processFunc(s,e)}catch(t){null!=t.throttle&&"number"==typeof t.stall||e.makeServerError("error in post-processing function",t).assertOk()}}return e}s=t}this.preflightFunc&&(s=await this.preflightFunc(s));const a=await this.getUrlFunc(s,on(n.#F));let u=new un(a.statusCode,a.statusMessage,a.headers,a.body,n);if(301===u.statusCode||302===u.statusCode){try{const r=u.headers.location||"";return s.redirect(r).#G(t+1,e,0,n,u)}catch(t){}return u}if(429===u.statusCode&&(null==this.retryFunc||await this.retryFunc(s,u,t))){const r=u.headers["retry-after"];let i=this.#L.slotInterval*Math.trunc(Math.random()*Math.pow(2,t));return"string"==typeof r&&r.match(/^[1-9][0-9]*$/)&&(i=parseInt(r)),s.clone().#G(t+1,e,i,n,u)}if(this.processFunc){on(n.#F);try{u=await this.processFunc(s,u)}catch(r){null!=r.throttle&&"number"==typeof r.stall||u.makeServerError("error in post-processing function",r).assertOk();let i=this.#L.slotInterval*Math.trunc(Math.random()*Math.pow(2,t));return r.stall>=0&&(i=r.stall),s.clone().#G(t+1,e,i,n,u)}}return u}send(){return h(null==this.#F,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),this.#F=new sn(this),this.#G(0,cn()+this.timeout,0,this,new un(0,"",{},null,this))}cancel(){h(null!=this.#F,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const t=nn.get(this);if(!t)throw new Error("missing signal; should not happen");t()}redirect(t){const e=this.url.split(":")[0].toLowerCase(),r=t.split(":")[0].toLowerCase();h("GET"===this.method&&("https"!==e||"http"!==r)&&t.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(t)})`});const n=new an(t);return n.method="GET",n.allowGzip=this.allowGzip,n.timeout=this.timeout,n.#B=Object.assign({},this.#B),this.#O&&(n.#O=new Uint8Array(this.#O)),n.#M=this.#M,n}clone(){const t=new an(this.url);return t.#P=this.#P,this.#O&&(t.#O=this.#O),t.#M=this.#M,t.#B=Object.assign({},this.#B),t.#T=this.#T,this.allowGzip&&(t.allowGzip=!0),t.timeout=this.timeout,this.allowInsecureAuthentication&&(t.allowInsecureAuthentication=!0),t.#S=this.#S,t.#R=this.#R,t.#D=this.#D,t.#L=Object.assign({},this.#L),t.#U=this.#U,t}static lockConfig(){$r=!0}static getGateway(t){return rn[t.toLowerCase()]||null}static registerGateway(t,e){if("http"===(t=t.toLowerCase())||"https"===t)throw new Error(`cannot intercept ${t}; use registerGetUrl`);if($r)throw new Error("gateways locked");rn[t]=e}static registerGetUrl(t){if($r)throw new Error("gateways locked");Zr=t}static createGetUrlFunc(t){return Wr(t)}static createDataGateway(){return tn}static createIpfsGatewayFunc(t){return en(t)}}class un{#H;#q;#B;#O;#z;#j;toString(){return`<FetchResponse status=${this.statusCode} body=${this.#O?E(this.#O):"null"}>`}get statusCode(){return this.#H}get statusMessage(){return this.#q}get headers(){return Object.assign({},this.#B)}get body(){return null==this.#O?null:new Uint8Array(this.#O)}get bodyText(){try{return null==this.#O?"":ye(this.#O)}catch(t){h(!1,"response body is not valid UTF-8 data","UNSUPPORTED_OPERATION",{operation:"bodyText",info:{response:this}})}}get bodyJson(){try{return JSON.parse(this.bodyText)}catch(t){h(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){const t=this.headers,e=Object.keys(t);let r=0;return{next:()=>{if(r<e.length){const n=e[r++];return{value:[n,t[n]],done:!1}}return{value:void 0,done:!0}}}}constructor(t,e,r,n,i){this.#H=t,this.#q=e,this.#B=Object.keys(r).reduce((t,e)=>(t[e.toLowerCase()]=String(r[e]),t),{}),this.#O=null==n?null:new Uint8Array(n),this.#z=i||null,this.#j={message:""}}makeServerError(t,e){let r;r=t?`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${t})`:`CLIENT ESCALATED SERVER ERROR (${t=`${this.statusCode} ${this.statusMessage}`})`;const n=new un(599,r,this.headers,this.body,this.#z||void 0);return n.#j={message:t,error:e},n}throwThrottleError(t,e){null==e?e=-1:f(Number.isInteger(e)&&e>=0,"invalid stall timeout","stall",e);const r=new Error(t||"throttling requests");throw o(r,{stall:e,throttle:!0}),r}getHeader(t){return this.headers[t.toLowerCase()]}hasBody(){return null!=this.#O}get request(){return this.#z}ok(){return""===this.#j.message&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:t,error:e}=this.#j;""===t&&(t=`server response ${this.statusCode} ${this.statusMessage}`);let r=null;this.request&&(r=this.request.url);let n=null;try{this.#O&&(n=ye(this.#O))}catch(t){}h(!1,t,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:e,info:{requestUrl:r,responseBody:n,responseStatus:`${this.statusCode} ${this.statusMessage}`}})}}function cn(){return(new Date).getTime()}const ln="0x0000000000000000000000000000000000000000";class hn{fragment;name;signature;topic;args;constructor(t,e,r){const n=t.name,i=t.format();o(this,{fragment:t,name:n,signature:i,topic:e,args:r})}}class fn{fragment;name;args;signature;selector;value;constructor(t,e,r,n){const i=t.name,s=t.format();o(this,{fragment:t,name:i,args:r,signature:s,selector:e,value:n})}}class dn{fragment;name;args;signature;selector;constructor(t,e,r){const n=t.name,i=t.format();o(this,{fragment:t,name:n,args:r,signature:i,selector:e})}}class pn{hash;_isIndexed;static isIndexed(t){return!(!t||!t._isIndexed)}constructor(t){o(this,{hash:t,_isIndexed:!0})}}const gn={0:"generic panic",1:"assert(false)",17:"arithmetic overflow",18:"division or modulo by zero",33:"enum overflow",34:"invalid encoded storage byte array accessed",49:"out-of-bounds array access; popping on an empty array",50:"out-of-bounds access of an array or bytesN",65:"out of memory",81:"uninitialized function"},mn={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:t=>`reverted with reason string ${JSON.stringify(t)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:t=>{let e="unknown panic code";return t>=0&&t<=255&&gn[t.toString()]&&(e=gn[t.toString()]),`reverted with panic code 0x${t.toString(16)} (${e})`}}};class yn{fragments;deploy;fallback;receive;#Q;#V;#J;#K;constructor(t){let e=[];e="string"==typeof t?JSON.parse(t):t,this.#J=new Map,this.#Q=new Map,this.#V=new Map;const r=[];for(const t of e)try{r.push(nr.from(t))}catch(e){console.log(`[Warning] Invalid Fragment ${JSON.stringify(t)}:`,e.message)}o(this,{fragments:Object.freeze(r)});let n=null,i=!1;this.#K=this.getAbiCoder(),this.fragments.forEach((t,e)=>{let r;switch(t.type){case"constructor":return this.deploy?void console.log("duplicate definition - constructor"):void o(this,{deploy:t});case"fallback":return void(0===t.inputs.length?i=!0:(f(!n||t.payable!==n.payable,"conflicting fallback fragments",`fragments[${e}]`,t),n=t,i=n.payable));case"function":r=this.#J;break;case"event":r=this.#V;break;case"error":r=this.#Q;break;default:return}const s=t.format();r.has(s)||r.set(s,t)}),this.deploy||o(this,{deploy:ur.from("constructor()")}),o(this,{fallback:n,receive:i})}format(t){const e=t?"minimal":"full";return this.fragments.map(t=>t.format(e))}formatJson(){const t=this.fragments.map(t=>t.format("json"));return JSON.stringify(t.map(t=>JSON.parse(t)))}getAbiCoder(){return yr.defaultAbiCoder()}#W(t,e,r){if(b(t)){const e=t.toLowerCase();for(const t of this.#J.values())if(e===t.selector)return t;return null}if(-1===t.indexOf("(")){const n=[];for(const[e,r]of this.#J)e.split("(")[0]===t&&n.push(r);if(e){const t=e.length>0?e[e.length-1]:null;let r=e.length,i=!0;Yt.isTyped(t)&&"overrides"===t.type&&(i=!1,r--);for(let t=n.length-1;t>=0;t--){const e=n[t].inputs.length;e===r||i&&e===r-1||n.splice(t,1)}for(let t=n.length-1;t>=0;t--){const r=n[t].inputs;for(let i=0;i<e.length;i++)if(Yt.isTyped(e[i])){if(i>=r.length){if("overrides"===e[i].type)continue;n.splice(t,1);break}if(e[i].type!==r[i].baseType){n.splice(t,1);break}}}}if(1===n.length&&e&&e.length!==n[0].inputs.length){const t=e[e.length-1];(null==t||Array.isArray(t)||"object"!=typeof t)&&n.splice(0,1)}return 0===n.length?null:(n.length>1&&r&&f(!1,`ambiguous function description (i.e. matches ${n.map(t=>JSON.stringify(t.format())).join(", ")})`,"key",t),n[0])}return this.#J.get(lr.from(t).format())||null}getFunctionName(t){const e=this.#W(t,null,!1);return f(e,"no matching function","key",t),e.name}hasFunction(t){return!!this.#W(t,null,!1)}getFunction(t,e){return this.#W(t,e||null,!0)}forEachFunction(t){const e=Array.from(this.#J.keys());e.sort((t,e)=>t.localeCompare(e));for(let r=0;r<e.length;r++){const n=e[r];t(this.#J.get(n),r)}}#Z(t,e,r){if(b(t)){const e=t.toLowerCase();for(const t of this.#V.values())if(e===t.topicHash)return t;return null}if(-1===t.indexOf("(")){const n=[];for(const[e,r]of this.#V)e.split("(")[0]===t&&n.push(r);if(e){for(let t=n.length-1;t>=0;t--)n[t].inputs.length<e.length&&n.splice(t,1);for(let t=n.length-1;t>=0;t--){const r=n[t].inputs;for(let i=0;i<e.length;i++)if(Yt.isTyped(e[i])&&e[i].type!==r[i].baseType){n.splice(t,1);break}}}return 0===n.length?null:(n.length>1&&r&&f(!1,`ambiguous event description (i.e. matches ${n.map(t=>JSON.stringify(t.format())).join(", ")})`,"key",t),n[0])}return this.#V.get(ar.from(t).format())||null}getEventName(t){const e=this.#Z(t,null,!1);return f(e,"no matching event","key",t),e.name}hasEvent(t){return!!this.#Z(t,null,!1)}getEvent(t,e){return this.#Z(t,e||null,!0)}forEachEvent(t){const e=Array.from(this.#V.keys());e.sort((t,e)=>t.localeCompare(e));for(let r=0;r<e.length;r++){const n=e[r];t(this.#V.get(n),r)}}getError(t,e){if(b(t)){const e=t.toLowerCase();if(mn[e])return or.from(mn[e].signature);for(const t of this.#Q.values())if(e===t.selector)return t;return null}if(-1===t.indexOf("(")){const e=[];for(const[r,n]of this.#Q)r.split("(")[0]===t&&e.push(n);return 0===e.length?"Error"===t?or.from("error Error(string)"):"Panic"===t?or.from("error Panic(uint256)"):null:(e.length>1&&f(!1,`ambiguous error description (i.e. ${e.map(t=>JSON.stringify(t.format())).join(", ")})`,"name",t),e[0])}if("Error(string)"===(t=or.from(t).format()))return or.from("error Error(string)");if("Panic(uint256)"===t)return or.from("error Panic(uint256)");return this.#Q.get(t)||null}forEachError(t){const e=Array.from(this.#Q.keys());e.sort((t,e)=>t.localeCompare(e));for(let r=0;r<e.length;r++){const n=e[r];t(this.#Q.get(n),r)}}_decodeParams(t,e){return this.#K.decode(t,e)}_encodeParams(t,e){return this.#K.encode(t,e)}encodeDeploy(t){return this._encodeParams(this.deploy.inputs,t||[])}decodeErrorResult(t,e){if("string"==typeof t){const e=this.getError(t);f(e,"unknown error","fragment",t),t=e}return f(C(e,0,4)===t.selector,`data signature does not match error ${t.name}.`,"data",e),this._decodeParams(t.inputs,C(e,4))}encodeErrorResult(t,e){if("string"==typeof t){const e=this.getError(t);f(e,"unknown error","fragment",t),t=e}return _([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionData(t,e){if("string"==typeof t){const e=this.getFunction(t);f(e,"unknown function","fragment",t),t=e}return f(C(e,0,4)===t.selector,`data signature does not match function ${t.name}.`,"data",e),this._decodeParams(t.inputs,C(e,4))}encodeFunctionData(t,e){if("string"==typeof t){const e=this.getFunction(t);f(e,"unknown function","fragment",t),t=e}return _([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionResult(t,e){if("string"==typeof t){const e=this.getFunction(t);f(e,"unknown function","fragment",t),t=e}let r="invalid length for result data";const n=w(e);if(n.length%32==0)try{return this.#K.decode(t.outputs,n)}catch(t){r="could not decode result data"}h(!1,r,"BAD_DATA",{value:E(n),info:{method:t.name,signature:t.format()}})}makeError(t,e){const r=y(t,"data"),n=yr.getBuiltinCallException("call",e,r);if(n.message.startsWith("execution reverted (unknown custom error)")){const t=E(r.slice(0,4)),e=this.getError(t);if(e)try{const t=this.#K.decode(e.inputs,r.slice(4));n.revert={name:e.name,signature:e.format(),args:t},n.reason=n.revert.signature,n.message=`execution reverted: ${n.reason}`}catch(t){n.message="execution reverted (coult not decode custom error)"}}const i=this.parseTransaction(e);return i&&(n.invocation={method:i.name,signature:i.signature,args:i.args}),n}encodeFunctionResult(t,e){if("string"==typeof t){const e=this.getFunction(t);f(e,"unknown function","fragment",t),t=e}return E(this.#K.encode(t.outputs,e||[]))}encodeFilterTopics(t,e){if("string"==typeof t){const e=this.getEvent(t);f(e,"unknown event","eventFragment",t),t=e}h(e.length<=t.inputs.length,`too many arguments for ${t.format()}`,"UNEXPECTED_ARGUMENT",{count:e.length,expectedCount:t.inputs.length});const r=[];t.anonymous||r.push(t.topicHash);const n=(t,e)=>"string"===t.type?Ae(e):"bytes"===t.type?Ht(E(e)):("bool"===t.type&&"boolean"==typeof e?e=e?"0x01":"0x00":t.type.match(/^u?int/)?e=U(e):t.type.match(/^bytes/)?e=N(e,32,!1):"address"===t.type&&this.#K.encode(["address"],[e]),B(E(e),32));for(e.forEach((e,i)=>{const s=t.inputs[i];s.indexed?null==e?r.push(null):"array"===s.baseType||"tuple"===s.baseType?f(!1,"filtering with tuples or arrays not supported","contract."+s.name,e):Array.isArray(e)?r.push(e.map(t=>n(s,t))):r.push(n(s,e)):f(null==e,"cannot filter non-indexed parameters; must be null","contract."+s.name,e)});r.length&&null===r[r.length-1];)r.pop();return r}encodeEventLog(t,e){if("string"==typeof t){const e=this.getEvent(t);f(e,"unknown event","eventFragment",t),t=e}const r=[],n=[],i=[];return t.anonymous||r.push(t.topicHash),f(e.length===t.inputs.length,"event arguments/values mismatch","values",e),t.inputs.forEach((t,s)=>{const o=e[s];if(t.indexed)if("string"===t.type)r.push(Ae(o));else if("bytes"===t.type)r.push(Ht(o));else{if("tuple"===t.baseType||"array"===t.baseType)throw new Error("not implemented");r.push(this.#K.encode([t.type],[o]))}else n.push(t),i.push(o)}),{data:this.#K.encode(n,i),topics:r}}decodeEventLog(t,e,r){if("string"==typeof t){const e=this.getEvent(t);f(e,"unknown event","eventFragment",t),t=e}if(null!=r&&!t.anonymous){const e=t.topicHash;f(b(r[0],32)&&r[0].toLowerCase()===e,"fragment/topic mismatch","topics[0]",r[0]),r=r.slice(1)}const n=[],i=[],s=[];t.inputs.forEach((t,e)=>{t.indexed?"string"===t.type||"bytes"===t.type||"tuple"===t.baseType||"array"===t.baseType?(n.push(rr.from({type:"bytes32",name:t.name})),s.push(!0)):(n.push(t),s.push(!1)):(i.push(t),s.push(!1))});const o=null!=r?this.#K.decode(n,_(r)):null,a=this.#K.decode(i,e,!0),u=[],c=[];let l=0,h=0;return t.inputs.forEach((t,e)=>{let r=null;if(t.indexed)if(null==o)r=new pn(null);else if(s[e])r=new pn(o[h++]);else try{r=o[h++]}catch(t){r=t}else try{r=a[l++]}catch(t){r=t}u.push(r),c.push(t.name||null)}),X.fromItems(u,c)}parseTransaction(t){const e=y(t.data,"tx.data"),r=S(null!=t.value?t.value:0,"tx.value"),n=this.getFunction(E(e.slice(0,4)));if(!n)return null;const i=this.#K.decode(n.inputs,e.slice(4));return new fn(n,n.selector,i,r)}parseCallResult(t){throw new Error("@TODO")}parseLog(t){const e=this.getEvent(t.topics[0]);return!e||e.anonymous?null:new hn(e,e.topicHash,this.decodeEventLog(e,t.data,t.topics))}parseError(t){const e=E(t),r=this.getError(C(e,0,4));if(!r)return null;const n=this.#K.decode(r.inputs,C(e,4));return new dn(r,r.selector,n)}static from(t){return t instanceof yn?t:"string"==typeof t?new yn(JSON.parse(t)):"function"==typeof t.formatJson?new yn(t.formatJson()):"function"==typeof t.format?new yn(t.format("json")):new yn(t)}}const wn=BigInt(0);function bn(t){return null==t?null:t}function An(t){return null==t?null:t.toString()}class vn{gasPrice;maxFeePerGas;maxPriorityFeePerGas;constructor(t,e,r){o(this,{gasPrice:bn(t),maxFeePerGas:bn(e),maxPriorityFeePerGas:bn(r)})}toJSON(){const{gasPrice:t,maxFeePerGas:e,maxPriorityFeePerGas:r}=this;return{_type:"FeeData",gasPrice:An(t),maxFeePerGas:An(e),maxPriorityFeePerGas:An(r)}}}function En(t){const e={};t.to&&(e.to=t.to),t.from&&(e.from=t.from),t.data&&(e.data=E(t.data));const r="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const n of r)n in t&&null!=t[n]&&(e[n]=S(t[n],`request.${n}`));const n="type,nonce".split(/,/);for(const r of n)r in t&&null!=t[r]&&(e[r]=L(t[r],`request.${r}`));return t.accessList&&(e.accessList=Fr(t.accessList)),t.authorizationList&&(e.authorizationList=t.authorizationList.slice()),"blockTag"in t&&(e.blockTag=t.blockTag),"enableCcipRead"in t&&(e.enableCcipRead=!!t.enableCcipRead),"customData"in t&&(e.customData=t.customData),"blobVersionedHashes"in t&&t.blobVersionedHashes&&(e.blobVersionedHashes=t.blobVersionedHashes.slice()),"kzg"in t&&(e.kzg=t.kzg),"blobs"in t&&t.blobs&&(e.blobs=t.blobs.map(t=>A(t)?E(t):Object.assign({},t))),e}class _n{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#X;constructor(t,e){this.#X=t.transactions.map(t=>"string"!=typeof t?new Nn(t,e):t),o(this,{provider:e,hash:bn(t.hash),number:t.number,timestamp:t.timestamp,parentHash:t.parentHash,parentBeaconBlockRoot:t.parentBeaconBlockRoot,nonce:t.nonce,difficulty:t.difficulty,gasLimit:t.gasLimit,gasUsed:t.gasUsed,blobGasUsed:t.blobGasUsed,excessBlobGas:t.excessBlobGas,miner:t.miner,prevRandao:bn(t.prevRandao),extraData:t.extraData,baseFeePerGas:bn(t.baseFeePerGas),stateRoot:t.stateRoot,receiptsRoot:t.receiptsRoot})}get transactions(){return this.#X.map(t=>"string"==typeof t?t:t.hash)}get prefetchedTransactions(){const t=this.#X.slice();return 0===t.length?[]:(h("object"==typeof t[0],"transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),t)}toJSON(){const{baseFeePerGas:t,difficulty:e,extraData:r,gasLimit:n,gasUsed:i,hash:s,miner:o,prevRandao:a,nonce:u,number:c,parentHash:l,parentBeaconBlockRoot:h,stateRoot:f,receiptsRoot:d,timestamp:p,transactions:g}=this;return{_type:"Block",baseFeePerGas:An(t),difficulty:An(e),extraData:r,gasLimit:An(n),gasUsed:An(i),blobGasUsed:An(this.blobGasUsed),excessBlobGas:An(this.excessBlobGas),hash:s,miner:o,prevRandao:a,nonce:u,number:c,parentHash:l,timestamp:p,parentBeaconBlockRoot:h,stateRoot:f,receiptsRoot:d,transactions:g}}[Symbol.iterator](){let t=0;const e=this.transactions;return{next:()=>t<this.length?{value:e[t++],done:!1}:{value:void 0,done:!0}}}get length(){return this.#X.length}get date(){return null==this.timestamp?null:new Date(1e3*this.timestamp)}async getTransaction(t){let e;if("number"==typeof t)e=this.#X[t];else{const r=t.toLowerCase();for(const t of this.#X){if("string"==typeof t){if(t!==r)continue;e=t;break}if(t.hash===r){e=t;break}}}if(null==e)throw new Error("no such tx");return"string"==typeof e?await this.provider.getTransaction(e):e}getPrefetchedTransaction(t){const e=this.prefetchedTransactions;if("number"==typeof t)return e[t];t=t.toLowerCase();for(const r of e)if(r.hash===t)return r;f(!1,"no matching transaction","indexOrHash",t)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw new Error("");return{orphan:"drop-block",hash:this.hash,number:this.number}}}class xn{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(t,e){this.provider=e;const r=Object.freeze(t.topics.slice());o(this,{transactionHash:t.transactionHash,blockHash:t.blockHash,blockNumber:t.blockNumber,removed:t.removed,address:t.address,data:t.data,topics:r,index:t.index,transactionIndex:t.transactionIndex})}toJSON(){const{address:t,blockHash:e,blockNumber:r,data:n,index:i,removed:s,topics:o,transactionHash:a,transactionIndex:u}=this;return{_type:"log",address:t,blockHash:e,blockNumber:r,data:n,index:i,removed:s,topics:o,transactionHash:a,transactionIndex:u}}async getBlock(){const t=await this.provider.getBlock(this.blockHash);return h(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransaction(){const t=await this.provider.getTransaction(this.transactionHash);return h(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransactionReceipt(){const t=await this.provider.getTransactionReceipt(this.transactionHash);return h(!!t,"failed to find transaction receipt","UNKNOWN_ERROR",{}),t}removedEvent(){return{orphan:"drop-log",log:{transactionHash:(t=this).transactionHash,blockHash:t.blockHash,blockNumber:t.blockNumber,address:t.address,data:t.data,topics:Object.freeze(t.topics.slice()),index:t.index}};var t}}class Cn{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#Y;constructor(t,e){this.#Y=Object.freeze(t.logs.map(t=>new xn(t,e)));let r=wn;null!=t.effectiveGasPrice?r=t.effectiveGasPrice:null!=t.gasPrice&&(r=t.gasPrice),o(this,{provider:e,to:t.to,from:t.from,contractAddress:t.contractAddress,hash:t.hash,index:t.index,blockHash:t.blockHash,blockNumber:t.blockNumber,logsBloom:t.logsBloom,gasUsed:t.gasUsed,cumulativeGasUsed:t.cumulativeGasUsed,blobGasUsed:t.blobGasUsed,gasPrice:r,blobGasPrice:t.blobGasPrice,type:t.type,status:t.status,root:t.root})}get logs(){return this.#Y}toJSON(){const{to:t,from:e,contractAddress:r,hash:n,index:i,blockHash:s,blockNumber:o,logsBloom:a,logs:u,status:c,root:l}=this;return{_type:"TransactionReceipt",blockHash:s,blockNumber:o,contractAddress:r,cumulativeGasUsed:An(this.cumulativeGasUsed),from:e,gasPrice:An(this.gasPrice),blobGasUsed:An(this.blobGasUsed),blobGasPrice:An(this.blobGasPrice),gasUsed:An(this.gasUsed),hash:n,index:i,logs:u,logsBloom:a,root:l,status:c,to:t}}get length(){return this.logs.length}[Symbol.iterator](){let t=0;return{next:()=>t<this.length?{value:this.logs[t++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){const t=await this.provider.getBlock(this.blockHash);if(null==t)throw new Error("TODO");return t}async getTransaction(){const t=await this.provider.getTransaction(this.hash);if(null==t)throw new Error("TODO");return t}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return Pn(this)}reorderedEvent(t){return h(!t||t.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),Bn(this,t)}}class Nn{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#$;constructor(t,e){this.provider=e,this.blockNumber=null!=t.blockNumber?t.blockNumber:null,this.blockHash=null!=t.blockHash?t.blockHash:null,this.hash=t.hash,this.index=t.index,this.type=t.type,this.from=t.from,this.to=t.to||null,this.gasLimit=t.gasLimit,this.nonce=t.nonce,this.data=t.data,this.value=t.value,this.gasPrice=t.gasPrice,this.maxPriorityFeePerGas=null!=t.maxPriorityFeePerGas?t.maxPriorityFeePerGas:null,this.maxFeePerGas=null!=t.maxFeePerGas?t.maxFeePerGas:null,this.maxFeePerBlobGas=null!=t.maxFeePerBlobGas?t.maxFeePerBlobGas:null,this.chainId=t.chainId,this.signature=t.signature,this.accessList=null!=t.accessList?t.accessList:null,this.blobVersionedHashes=null!=t.blobVersionedHashes?t.blobVersionedHashes:null,this.authorizationList=null!=t.authorizationList?t.authorizationList:null,this.#$=-1}toJSON(){const{blockNumber:t,blockHash:e,index:r,hash:n,type:i,to:s,from:o,nonce:a,data:u,signature:c,accessList:l,blobVersionedHashes:h}=this;return{_type:"TransactionResponse",accessList:l,blockNumber:t,blockHash:e,blobVersionedHashes:h,chainId:An(this.chainId),data:u,from:o,gasLimit:An(this.gasLimit),gasPrice:An(this.gasPrice),hash:n,maxFeePerGas:An(this.maxFeePerGas),maxPriorityFeePerGas:An(this.maxPriorityFeePerGas),maxFeePerBlobGas:An(this.maxFeePerBlobGas),nonce:a,signature:c,to:s,index:r,type:i,value:An(this.value)}}async getBlock(){let t=this.blockNumber;if(null==t){const e=await this.getTransaction();e&&(t=e.blockNumber)}if(null==t)return null;const e=this.provider.getBlock(t);if(null==e)throw new Error("TODO");return e}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(null==this.blockNumber){const{tx:t,blockNumber:e}=await s({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});return null==t||null==t.blockNumber?0:e-t.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(t,e){const r=null==t?1:t,n=null==e?0:e;let i=this.#$,o=-1,a=-1===i;const c=async()=>{if(a)return null;const{blockNumber:t,nonce:e}=await s({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(e<this.nonce)return void(i=t);if(a)return null;const n=await this.getTransaction();if(!n||null==n.blockNumber)for(-1===o&&(o=i-3,o<this.#$&&(o=this.#$));o<=t;){if(a)return null;const e=await this.provider.getBlock(o,!0);if(null==e)return;for(const t of e)if(t===this.hash)return;for(let n=0;n<e.length;n++){const s=await e.getTransaction(n);if(s.from===this.from&&s.nonce===this.nonce){if(a)return null;const e=await this.provider.getTransactionReceipt(s.hash);if(null==e)return;if(t-e.blockNumber+1<r)return;let n="replaced";s.data===this.data&&s.to===this.to&&s.value===this.value?n="repriced":"0x"===s.data&&s.from===s.to&&s.value===wn&&(n="cancelled"),h(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:"replaced"===n||"cancelled"===n,reason:n,replacement:s.replaceableTransaction(i),hash:s.hash,receipt:e})}}o++}},f=t=>{if(null==t||0!==t.status)return t;h(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:t.to,from:t.from,data:""},receipt:t})},d=await this.provider.getTransactionReceipt(this.hash);if(0===r)return f(d);if(d){if(1===r||await d.confirmations()>=r)return f(d)}else if(await c(),0===r)return null;const p=new Promise((t,e)=>{const s=[],o=()=>{s.forEach(t=>t())};if(s.push(()=>{a=!0}),n>0){const t=setTimeout(()=>{o(),e(l("wait for transaction timeout","TIMEOUT"))},n);s.push(()=>{clearTimeout(t)})}const h=async n=>{if(await n.confirmations()>=r){o();try{t(f(n))}catch(t){e(t)}}};if(s.push(()=>{this.provider.off(this.hash,h)}),this.provider.on(this.hash,h),i>=0){const t=async()=>{try{await c()}catch(t){if(u(t,"TRANSACTION_REPLACED"))return o(),void e(t)}a||this.provider.once("block",t)};s.push(()=>{this.provider.off("block",t)}),this.provider.once("block",t)}});return await p}isMined(){return null!=this.blockHash}isLegacy(){return 0===this.type}isBerlin(){return 1===this.type}isLondon(){return 2===this.type}isCancun(){return 3===this.type}removedEvent(){return h(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Pn(this)}reorderedEvent(t){return h(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),h(!t||t.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Bn(this,t)}replaceableTransaction(t){f(Number.isInteger(t)&&t>=0,"invalid startBlock","startBlock",t);const e=new Nn(this,this.provider);return e.#$=t,e}}function Bn(t,e){return{orphan:"reorder-transaction",tx:t,other:e}}function Pn(t){return{orphan:"drop-transaction",tx:t}}class In{filter;emitter;#tt;constructor(t,e,r){this.#tt=e,o(this,{emitter:t,filter:r})}async removeListener(){null!=this.#tt&&await this.emitter.off(this.filter,this.#tt)}}class kn extends xn{interface;fragment;args;constructor(t,e,r){super(t,t.provider),o(this,{args:e.decodeEventLog(r,t.data,t.topics),fragment:r,interface:e})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class On extends xn{error;constructor(t,e){super(t,t.provider),o(this,{error:e})}}class Mn extends Cn{#et;constructor(t,e,r){super(r,e),this.#et=t}get logs(){return super.logs.map(t=>{const e=t.topics.length?this.#et.getEvent(t.topics[0]):null;if(e)try{return new kn(t,this.#et,e)}catch(e){return new On(t,e)}return t})}}class Tn extends Nn{#et;constructor(t,e,r){super(r,e),this.#et=t}async wait(t,e){const r=await super.wait(t,e);return null==r?null:new Mn(this.#et,this.provider,r)}}class Sn extends In{log;constructor(t,e,r,n){super(t,e,r),o(this,{log:n})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class Rn extends Sn{constructor(t,e,r,n,i){super(t,e,r,new kn(i,t.interface,n)),o(this,{args:t.interface.decodeEventLog(n,this.log.data,this.log.topics),fragment:n})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const Dn=BigInt(0);function Fn(t){return t&&"function"==typeof t.call}function Ln(t){return t&&"function"==typeof t.estimateGas}function Un(t){return t&&"function"==typeof t.resolveName}function Gn(t){return t&&"function"==typeof t.sendTransaction}function Hn(t){if(null!=t){if(Un(t))return t;if(t.provider)return t.provider}}class qn{#rt;fragment;constructor(t,e,r){if(o(this,{fragment:e}),e.inputs.length<r.length)throw new Error("too many arguments");const n=zn(t.runner,"resolveName"),i=Un(n)?n:null;this.#rt=async function(){const n=await Promise.all(e.inputs.map((t,e)=>null==r[e]?null:t.walkAsync(r[e],(t,e)=>"address"===t?Array.isArray(e)?Promise.all(e.map(t=>Ar(t,i))):Ar(e,i):e)));return t.interface.encodeFilterTopics(e,n)}()}getTopicFilter(){return this.#rt}}function zn(t,e){return null==t?null:"function"==typeof t[e]?t:t.provider&&"function"==typeof t.provider[e]?t.provider:null}function jn(t){return null==t?null:t.provider||null}async function Qn(t,e){const r=Yt.dereference(t,"overrides");f("object"==typeof r,"invalid overrides parameter","overrides",t);const n=En(r);return f(null==n.to||(e||[]).indexOf("to")>=0,"cannot override to","overrides.to",n.to),f(null==n.data||(e||[]).indexOf("data")>=0,"cannot override data","overrides.data",n.data),n.from&&(n.from=n.from),n}function Vn(t){const e=async function(e){const r=await Qn(e,["data"]);r.to=await t.getAddress(),r.from&&(r.from=await Ar(r.from,Hn(t.runner)));const n=t.interface,i=S(r.value||Dn,"overrides.value")===Dn,s="0x"===(r.data||"0x");return!n.fallback||n.fallback.payable||!n.receive||s||i||f(!1,"cannot send data to receive or send value to non-payable fallback","overrides",e),f(n.fallback||s,"cannot send data to receive-only contract","overrides.data",r.data),f(n.receive||n.fallback&&n.fallback.payable||i,"cannot send value to non-payable fallback","overrides.value",r.value),f(n.fallback||s,"cannot send data to receive-only contract","overrides.data",r.data),r},r=async function(r){const n=t.runner;h(Gn(n),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const i=await n.sendTransaction(await e(r)),s=jn(t.runner);return new Tn(t.interface,s,i)},n=async t=>await r(t);return o(n,{_contract:t,estimateGas:async function(r){const n=zn(t.runner,"estimateGas");return h(Ln(n),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await n.estimateGas(await e(r))},populateTransaction:e,send:r,staticCall:async function(r){const n=zn(t.runner,"call");h(Fn(n),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const i=await e(r);try{return await n.call(i)}catch(e){if(c(e)&&e.data)throw t.interface.makeError(e.data,i);throw e}}}),n}const Jn=Symbol.for("_ethersInternal_contract"),Kn=new WeakMap;function Wn(t){return Kn.get(t[Jn])}async function Zn(t,e){let r,n=null;if(Array.isArray(e)){const n=function(e){if(b(e,32))return e;const r=t.interface.getEvent(e);return f(r,"unknown fragment","name",e),r.topicHash};r=e.map(t=>null==t?null:Array.isArray(t)?t.map(n):n(t))}else"*"===e?r=[null]:"string"==typeof e?b(e,32)?r=[e]:(n=t.interface.getEvent(e),f(n,"unknown fragment","event",e),r=[n.topicHash]):(i=e)&&"object"==typeof i&&"getTopicFilter"in i&&"function"==typeof i.getTopicFilter&&i.fragment?r=await e.getTopicFilter():"fragment"in e?(n=e.fragment,r=[n.topicHash]):f(!1,"unknown event name","event",e);var i;return r=r.map(t=>{if(null==t)return null;if(Array.isArray(t)){const e=Array.from(new Set(t.map(t=>t.toLowerCase())).values());return 1===e.length?e[0]:(e.sort(),e)}return t.toLowerCase()}),{fragment:n,tag:r.map(t=>null==t?"null":Array.isArray(t)?t.join("|"):t).join("&"),topics:r}}async function Xn(t,e){const{subs:r}=Wn(t);return r.get((await Zn(t,e)).tag)||null}async function Yn(t,e,r){const n=jn(t.runner);h(n,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:e});const{fragment:i,tag:s,topics:o}=await Zn(t,r),{addr:a,subs:u}=Wn(t);let c=u.get(s);if(!c){const e={address:a||t,topics:o},l=e=>{let n=i;if(null==n)try{n=t.interface.getEvent(e.topics[0])}catch(t){}if(n){const s=n,o=i?t.interface.decodeEventLog(i,e.data,e.topics):[];ti(t,r,o,n=>new Rn(t,n,r,s,e))}else ti(t,r,[],n=>new Sn(t,n,r,e))};let h=[];c={tag:s,listeners:[],start:()=>{h.length||h.push(n.on(e,l))},stop:async()=>{if(0==h.length)return;let t=h;h=[],await Promise.all(t),n.off(e,l)}},u.set(s,c)}return c}let $n=Promise.resolve();async function ti(t,e,r,n){try{await $n}catch(t){}const i=async function(t,e,r,n){await $n;const i=await Xn(t,e);if(!i)return!1;const s=i.listeners.length;return i.listeners=i.listeners.filter(({listener:e,once:i})=>{const s=Array.from(r);n&&s.push(n(i?null:e));try{e.call(t,...s)}catch(t){}return!i}),0===i.listeners.length&&(i.stop(),Wn(t).subs.delete(i.tag)),s>0}(t,e,r,n);return $n=i,await i}const ei=["then"];class ri{target;interface;runner;filters;[Jn];fallback;constructor(t,e,r,n){f("string"==typeof t||wr(t),"invalid value for Contract target","target",t),null==r&&(r=null);const i=yn.from(e);let s;o(this,{target:t,runner:r,interface:i}),Object.defineProperty(this,Jn,{value:{}});let a=null,c=null;if(n){const t=jn(r);c=new Tn(this.interface,t,n)}let h=new Map;if("string"==typeof t)if(b(t))a=t,s=Promise.resolve(t);else{const e=zn(r,"resolveName");if(!Un(e))throw l("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});s=e.resolveName(t).then(e=>{if(null==e)throw l("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:t});return Wn(this).addr=e,e})}else s=t.getAddress().then(t=>{if(null==t)throw new Error("TODO");return Wn(this).addr=t,t});var d;d={addrPromise:s,addr:a,deployTx:c,subs:h},Kn.set(this[Jn],d);const p=new Proxy({},{get:(t,e,r)=>{if("symbol"==typeof e||ei.indexOf(e)>=0)return Reflect.get(t,e,r);try{return this.getEvent(e)}catch(t){if(!u(t,"INVALID_ARGUMENT")||"key"!==t.argument)throw t}},has:(t,e)=>ei.indexOf(e)>=0?Reflect.has(t,e):Reflect.has(t,e)||this.interface.hasEvent(String(e))});return o(this,{filters:p}),o(this,{fallback:i.receive||i.fallback?Vn(this):null}),new Proxy(this,{get:(t,e,r)=>{if("symbol"==typeof e||e in t||ei.indexOf(e)>=0)return Reflect.get(t,e,r);try{return t.getFunction(e)}catch(t){if(!u(t,"INVALID_ARGUMENT")||"key"!==t.argument)throw t}},has:(t,e)=>"symbol"==typeof e||e in t||ei.indexOf(e)>=0?Reflect.has(t,e):t.interface.hasFunction(e)})}connect(t){return new ri(this.target,this.interface,t)}attach(t){return new ri(t,this.interface,this.runner)}async getAddress(){return await Wn(this).addrPromise}async getDeployedCode(){const t=jn(this.runner);h(t,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const e=await t.getCode(await this.getAddress());return"0x"===e?null:e}async waitForDeployment(){const t=this.deploymentTransaction();if(t)return await t.wait(),this;if(null!=await this.getDeployedCode())return this;const e=jn(this.runner);return h(null!=e,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((t,r)=>{const n=async()=>{try{if(null!=await this.getDeployedCode())return t(this);e.once("block",n)}catch(t){r(t)}};n()})}deploymentTransaction(){return Wn(this).deployTx}getFunction(t){return"string"!=typeof t&&(t=t.format()),function(t,e){const r=function(...r){const n=t.interface.getFunction(e,r);return h(n,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e,args:r}}),n},n=async function(...e){const n=r(...e);let i={};if(n.inputs.length+1===e.length&&(i=await Qn(e.pop()),i.from&&(i.from=await Ar(i.from,Hn(t.runner)))),n.inputs.length!==e.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const o=await async function(t,e,r){const n=zn(t,"resolveName"),i=Un(n)?n:null;return await Promise.all(e.map((t,e)=>t.walkAsync(r[e],(t,e)=>(e=Yt.dereference(e,t),"address"===t?Ar(e,i):e))))}(t.runner,n.inputs,e);return Object.assign({},i,await s({to:t.getAddress(),data:t.interface.encodeFunctionData(n,o)}))},i=async function(...t){const e=await u(...t);return 1===e.length?e[0]:e},a=async function(...e){const r=t.runner;h(Gn(r),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const i=await r.sendTransaction(await n(...e)),s=jn(t.runner);return new Tn(t.interface,s,i)},u=async function(...e){const i=zn(t.runner,"call");h(Fn(i),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const s=await n(...e);let o="0x";try{o=await i.call(s)}catch(e){if(c(e)&&e.data)throw t.interface.makeError(e.data,s);throw e}const a=r(...e);return t.interface.decodeFunctionResult(a,o)},l=async(...t)=>r(...t).constant?await i(...t):await a(...t);return o(l,{name:t.interface.getFunctionName(e),_contract:t,_key:e,getFragment:r,estimateGas:async function(...e){const r=zn(t.runner,"estimateGas");return h(Ln(r),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await r.estimateGas(await n(...e))},populateTransaction:n,send:a,staticCall:i,staticCallResult:u}),Object.defineProperty(l,"fragment",{configurable:!1,enumerable:!0,get:()=>{const r=t.interface.getFunction(e);return h(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e}}),r}}),l}(this,t)}getEvent(t){return"string"!=typeof t&&(t=t.format()),function(t,e){const r=function(...r){const n=t.interface.getEvent(e,r);return h(n,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e,args:r}}),n},n=function(...e){return new qn(t,r(...e),e)};return o(n,{name:t.interface.getEventName(e),_contract:t,_key:e,getFragment:r}),Object.defineProperty(n,"fragment",{configurable:!1,enumerable:!0,get:()=>{const r=t.interface.getEvent(e);return h(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e}}),r}}),n}(this,t)}async queryTransaction(t){throw new Error("@TODO")}async queryFilter(t,e,r){null==e&&(e=0),null==r&&(r="latest");const{addr:n,addrPromise:i}=Wn(this),s=n||await i,{fragment:o,topics:a}=await Zn(this,t),u={address:s,topics:a,fromBlock:e,toBlock:r},c=jn(this.runner);return h(c,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await c.getLogs(u)).map(t=>{let e=o;if(null==e)try{e=this.interface.getEvent(t.topics[0])}catch(t){}if(e)try{return new kn(t,this.interface,e)}catch(e){return new On(t,e)}return new xn(t,c)})}async on(t,e){const r=await Yn(this,"on",t);return r.listeners.push({listener:e,once:!1}),r.start(),this}async once(t,e){const r=await Yn(this,"once",t);return r.listeners.push({listener:e,once:!0}),r.start(),this}async emit(t,...e){return await ti(this,t,e,null)}async listenerCount(t){if(t){const e=await Xn(this,t);return e?e.listeners.length:0}const{subs:e}=Wn(this);let r=0;for(const{listeners:t}of e.values())r+=t.length;return r}async listeners(t){if(t){const e=await Xn(this,t);return e?e.listeners.map(({listener:t})=>t):[]}const{subs:e}=Wn(this);let r=[];for(const{listeners:t}of e.values())r=r.concat(t.map(({listener:t})=>t));return r}async off(t,e){const r=await Xn(this,t);if(!r)return this;if(e){const t=r.listeners.map(({listener:t})=>t).indexOf(e);t>=0&&r.listeners.splice(t,1)}return null!=e&&0!==r.listeners.length||(r.stop(),Wn(this).subs.delete(r.tag)),this}async removeAllListeners(t){if(t){const e=await Xn(this,t);if(!e)return this;e.stop(),Wn(this).subs.delete(e.tag)}else{const{subs:t}=Wn(this);for(const{tag:e,stop:r}of t.values())r(),t.delete(e)}return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return await this.off(t,e)}static buildClass(t){return class extends ri{constructor(e,r=null){super(e,t,r)}}}static from(t,e,r){return null==r&&(r=null),new this(t,e,r)}}class ni extends(function(){return ri}()){}const ii=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]);function si(t){return function(t){let e=0;return()=>t[e++]}(function(t){let e=0;function r(){return t[e++]<<8|t[e++]}let n=r(),i=1,s=[0,1];for(let t=1;t<n;t++)s.push(i+=r());let o=r(),a=e;e+=o;let u=0,c=0;function l(){return 0==u&&(c=c<<8|t[e++],u=8),c>>--u&1}const h=2**31,f=h>>>1,d=f>>1,p=h-1;let g=0;for(let t=0;t<31;t++)g=g<<1|l();let m=[],y=0,w=h;for(;;){let t=Math.floor(((g-y+1)*i-1)/w),e=0,r=n;for(;r-e>1;){let n=e+r>>>1;t<s[n]?r=n:e=n}if(0==e)break;m.push(e);let o=y+Math.floor(w*s[e]/i),a=y+Math.floor(w*s[e+1]/i)-1;for(;0==((o^a)&f);)g=g<<1&p|l(),o=o<<1&p,a=a<<1&p|1;for(;o&~a&d;)g=g&f|g<<1&p>>>1|l(),o=o<<1^f,a=(a^f)<<1|f|1;y=o,w=1+a-o}let b=n-4;return m.map(e=>{switch(e-b){case 3:return b+65792+(t[a++]<<16|t[a++]<<8|t[a++]);case 2:return b+256+(t[a++]<<8|t[a++]);case 1:return b+t[a++];default:return e-1}})}(function(t){let e=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((t,r)=>e[t.charCodeAt(0)]=r);let r=t.length,n=new Uint8Array(6*r>>3);for(let i=0,s=0,o=0,a=0;i<r;i++)a=a<<6|e[t.charCodeAt(i)],o+=6,o>=8&&(n[s++]=a>>(o-=8));return n}(t)))}function oi(t){return 1&t?~t>>1:t>>1}function ai(t,e){let r=Array(t);for(let n=0,i=0;n<t;n++)r[n]=i+=oi(e());return r}function ui(t,e=0){let r=[];for(;;){let n=t(),i=t();if(!i)break;e+=n;for(let t=0;t<i;t++)r.push(e+t);e+=i+1}return r}function ci(t){return hi(()=>{let e=ui(t);if(e.length)return e})}function li(t){let e=[];for(;;){let r=t();if(0==r)break;e.push(di(r,t))}for(;;){let r=t()-1;if(r<0)break;e.push(pi(r,t))}return e.flat()}function hi(t){let e=[];for(;;){let r=t(e.length);if(!r)break;e.push(r)}return e}function fi(t,e,r){let n=Array(t).fill().map(()=>[]);for(let i=0;i<e;i++)ai(t,r).forEach((t,e)=>n[e].push(t));return n}function di(t,e){let r=1+e(),n=e(),i=hi(e);return fi(i.length,1+t,e).flatMap((t,e)=>{let[s,...o]=t;return Array(i[e]).fill().map((t,e)=>{let i=e*n;return[s+e*r,o.map(t=>t+i)]})})}function pi(t,e){return fi(1+e(),1+t,e).map(t=>[t[0],t.slice(1)])}function gi(t){return`{${function(t){return t.toString(16).toUpperCase().padStart(2,"0")}(t)}}`}function mi(t){let e=t.length;if(e<4096)return String.fromCodePoint(...t);let r=[];for(let n=0;n<e;)r.push(String.fromCodePoint(...t.slice(n,n+=4096)));return r.join("")}function yi(t,e){let r=t.length,n=r-e.length;for(let i=0;0==n&&i<r;i++)n=t[i]-e[i];return n}const wi=44032,bi=4352,Ai=4449,vi=4519;function Ei(t){return t>>24&255}function _i(t){return 16777215&t}let xi,Ci,Ni,Bi;function Pi(t){return t>=wi&&t<55204}function Ii(t,e){if(t>=bi&&t<4371&&e>=Ai&&e<4470)return wi+588*(t-bi)+28*(e-Ai);if(Pi(t)&&e>vi&&e<4547&&(t-wi)%28==0)return t+(e-vi);{let r=Bi.get(t);return r&&(r=r.get(e),r)?r:-1}}function ki(t){xi||function(){let t=si("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");xi=new Map(ci(t).flatMap((t,e)=>t.map(t=>[t,e+1<<24]))),Ci=new Set(ui(t)),Ni=new Map,Bi=new Map;for(let[e,r]of li(t)){if(!Ci.has(e)&&2==r.length){let[t,n]=r,i=Bi.get(t);i||(i=new Map,Bi.set(t,i)),i.set(n,e)}Ni.set(e,r.reverse())}}();let e=[],r=[],n=!1;function i(t){let r=xi.get(t);r&&(n=!0,t|=r),e.push(t)}for(let n of t)for(;;){if(n<128)e.push(n);else if(Pi(n)){let t=n-wi,e=t%588/28|0,r=t%28;i(bi+(t/588|0)),i(Ai+e),r>0&&i(vi+r)}else{let t=Ni.get(n);t?r.push(...t):i(n)}if(!r.length)break;n=r.pop()}if(n&&e.length>1){let t=Ei(e[0]);for(let r=1;r<e.length;r++){let n=Ei(e[r]);if(0==n||t<=n){t=n;continue}let i=r-1;for(;;){let r=e[i+1];if(e[i+1]=e[i],e[i]=r,!i)break;if(t=Ei(e[--i]),t<=n)break}t=Ei(e[r])}}return e}function Oi(t){return ki(t).map(_i)}function Mi(t){return function(t){let e=[],r=[],n=-1,i=0;for(let s of t){let t=Ei(s),o=_i(s);if(-1==n)0==t?n=o:e.push(o);else if(i>0&&i>=t)0==t?(e.push(n,...r),r.length=0,n=o):r.push(o),i=t;else{let s=Ii(n,o);s>=0?n=s:0==i&&0==t?(e.push(n),n=o):(r.push(o),i=t)}}return n>=0&&e.push(n,...r),e}(ki(t))}const Ti=t=>Array.from(t);function Si(t,e){return t.P.has(e)||t.Q.has(e)}class Ri extends Array{get is_emoji(){return!0}}let Di,Fi,Li,Ui,Gi,Hi,qi,zi,ji,Qi,Vi,Ji;function Ki(){if(Di)return;let t=si("AEEUdwmgDS8BxQKKAP4BOgDjATAAngDUAIMAoABoAOAAagCOAEQAhABMAHIAOwA9ACsANgAmAGIAHgAuACgAJwAXAC0AGgAjAB8ALwAUACkAEgAeAAkAGwARABkAFgA5ACgALQArADcAFQApABAAHgAiABAAGgAeABMAGAUhBe8BFxREN8sF2wC5AK5HAW8ArQkDzQCuhzc3NzcBP68NEfMABQdHBuw5BV8FYAA9MzkI9r4ZBg7QyQAWA9CeOwLNCjcCjqkChuA/lm+RAsXTAoP6ASfnEQDytQFJAjWVCkeXAOsA6godAB/cwdAUE0WlBCN/AQUCQRjFD/MRBjHxDQSJbw0jBzUAswBxme+tnIcAYwabAysG8QAjAEMMmxcDqgPKQyDXCMMxA7kUQwD3NXOrAKmFIAAfBC0D3x4BJQDBGdUFAhEgVD8JnwmQJiNWYUzrg0oAGwAUAB0AFnNcACkAFgBP9h3gPfsDOWDKneY2ChglX1UDYD30ABsAFAAdABZzIGRAnwDD8wAjAEEMzRbDqgMB2sAFYwXqAtCnAsS4AwpUJKRtFHsadUz9AMMVbwLpABM1NJEX0ZkCgYMBEyMAxRVvAukAEzUBUFAtmUwSAy4DBTER33EftQHfSwB5MxJ/AjkWKQLzL8E/cwBB6QH9LQDPDtO9ASNriQC5DQANAwCK21EFI91zHwCoL9kBqQcHBwcHKzUDowBvAQohPvU3fAQgHwCyAc8CKQMA5zMSezr7ULgFmDp/LzVQBgEGAi8FYQVgt8AFcTtlQhpCWEmfe5tmZ6IAExsDzQ8t+X8rBKtTAltbAn0jsy8Bl6utPWMDTR8Ei2kRANkDBrNHNysDBzECQWUAcwFpJ3kAiyUhAJ0BUb8AL3EfAbfNAz81KUsFWwF3YQZtAm0A+VEfAzEJDQBRSQCzAQBlAHsAM70GD/v3IZWHBwARKQAxALsjTwHZAeMPEzmXgIHwABIAGQA8AEUAQDt3gdvIEGcQZAkGTRFMdEIVEwK0D64L7REdDNkq09PgADSxB/MDWwfzA1sDWwfzB/MDWwfzA1sDWwNbA1scEvAi28gQZw9QBHUFlgWTBN4IiyZREYkHMAjaVBV0JhxPA00BBCMtSSQ7mzMTJUpMFE0LCAQ2SmyvfUADTzGzVP2QqgPTMlc5dAkGHnkSqAAyD3skNb1OhnpPcagKU0+2tYdJak5vAsY6sEAACikJm2/Dd1YGRRAfJ6kQ+ww3AbkBPw3xS9wE9QY/BM0fgRkdD9GVoAipLeEM8SbnLqWAXiP5KocF8Uv4POELUVFsD10LaQnnOmeBUgMlAREijwrhDT0IcRD3Cs1vDekRSQc9A9lJngCpBwULFR05FbkmFGKwCw05ewb/GvoLkyazEy17AAXXGiUGUQEtGwMA0y7rhbRaNVwgT2MGBwspI8sUrFAkDSlAu3hMGh8HGSWtApVDdEqLUToelyH6PEENai4XUYAH+TwJGVMLhTyiRq9FEhHWPpE9TCJNTDAEOYMsMyePCdMPiQy9fHYBXQklCbUMdRM1ERs3yQg9Bx0xlygnGQglRplgngT7owP3E9UDDwVDCUUHFwO5HDETMhUtBRGBKNsC9zbZLrcCk1aEARsFzw8pH+MQVEfkDu0InwJpA4cl7wAxFSUAGyKfCEdnAGOP3FMJLs8Iy2pwI3gDaxTrZRF3B5UOWwerHDcVwxzlcMxeD4YMKKezCV8BeQmdAWME5wgNNV+MpCBFZ1eLXBifIGVBQ14AAjUMaRWjRMGHfAKPD28SHwE5AXcHPQ0FAnsR8RFvEJkI74YINbkz/DopBFMhhyAVCisDU2zSCysm/Qz8bQGnEmYDEDRBd/Jnr2C6KBgBBx0yyUFkIfULlk/RDKAaxRhGVDIZ6AfDA/ca9yfuQVsGAwOnBxc6UTPyBMELbQiPCUMATQ6nGwfbGG4KdYzUATWPAbudA1uVhwJzkwY7Bw8Aaw+LBX3pACECqwinAAkA0wNbAD0CsQehAB0AiUUBQQMrMwEl6QKTA5cINc8BmTMB9y0EH8cMGQD7O25OAsO1AoBuZqYF4VwCkgJNOQFRKQQJUktVA7N15QDfAE8GF+NLARmvTs8e50cB43MvAMsA/wAJOQcJRQHRAfdxALsBYws1Caa3uQFR7S0AhwAZbwHbAo0A4QA5AIP1AVcAUQVd/QXXAlNNARU1HC9bZQG/AyMBNwERAH0Gz5GpzQsjBHEH1wIQHxXlAu8yB7kFAyLjE9FCyQK94lkAMhoKPAqrCqpgX2Q3CjV2PVQAEh+sPss/UgVVO1c7XDtXO1w7VztcO1c7XDtXO1wDm8Pmw+YKcF9JYe8Mqg3YRMw6TRPfYFVgNhPMLbsUxRXSJVoZQRrAJwkl6FUNDwgt12Y0CDA0eRfAAEMpbINFY4oeNApPHOtTlVT8LR8AtUumM7MNsBsZREQFS3XxYi4WEgomAmSFAmJGX1GzAV83JAKh+wJonAJmDQKfiDgfDwJmPwJmKgRyBIMDfxcDfpY5Cjl7GzmGOicnAmwhAjI6OA4CbcsCbbLzjgM3a0kvAWsA4gDlAE4JB5wMkQECD8YAEbkCdzMCdqZDAnlPRwJ4viFg30WyRvcCfEMCeswCfQ0CfPRIBEiBZygALxlJXEpfGRtK0ALRBQLQ0EsrA4hTA4fqRMmRNgLypV0HAwOyS9JMMSkH001QTbMCi0MCitzFHwshR2sJuwKOOwKOYESbhQKO3QKOYHxRuFM5AQ5S2FSJApP/ApMQAO0AIFUiVbNV1AosHymZijLleGpFPz0Cl6MC77ZYJawAXSkClpMCloCgAK1ZsFoNhVEAPwKWuQKWUlxIXNUCmc8CmWhczl0LHQKcnznGOqECnBoCn58CnryOACETNS4TAp31Ap6WALlBYThh8wKe1wKgcgGtAp6jIwKeUqljzGQrKS8CJ7MCJoICoP8CoFDbAqYzAqXSAqgDAIECp/ZogGi1AAdNaiBq1QKs5wKssgKtawKtBgJXIQJV4AKx5dsDH1JsmwKywRECsuwbbORtZ21MYwMl0QK2YD9DbpQDKUkCuGICuUsZArkue3A6cOUCvR0DLbYDMhUCvoxyBgMzdQK+HnMmc1MCw88CwwhzhnRPOUl05AM8qwEDPJ4DPcMCxYACxksCxhSNAshtVQLISALJUwLJMgJkoQLd1nh9ZXiyeSlL1AMYp2cGAmH4GfeVKHsPXpZevxUCz28Cz3AzT1fW9xejAMqxAs93AS3uA04Wfk8JAtwrAtuOAtJTA1JgA1NjAQUDVZCAjUMEzxrxZEl5A4LSg5EC2ssC2eKEFIRNp0ADhqkAMwNkEoZ1Xf0AWQLfaQLevHd7AuIz7RgB8zQrAfSfAfLWiwLr9wLpdH0DAur9AuroAP1LAb0C7o0C66CWrpcHAu5DA4XkmH1w5HGlAvMHAG0DjhqZlwL3FwORcgOSiwL3nAL53QL4apogmq+/O5siA52HAv7+AR8APZ8gAZ+3AwWRA6ZuA6bdANXJAwZuoYyiCQ0DDE0BEwEjB3EGZb1rCQC/BG/DFY8etxEAG3k9ACcDNxJRA42DAWcrJQCM8wAlAOanC6OVCLsGI6fJBgCvBRnDBvElRUYFFoAFcD9GSDNCKUK8X3kZX8QAls0FOgCQVCGbwTsuYDoZutcONxjOGJHJ/gVfBWAFXwVgBWsFYAVfBWAFXwVgBV8FYAVfBWBOHQjfjW8KCgoKbF7xMwTRA7kGN8PDAMMEr8MA70gxFroFTj5xPnhCR0K+X30/X/AAWBkzswCNBsxzzASm70aCRS4rDDMeLz49fnXfcsH5GcoscQFz13Y4HwVnBXLJycnACNdRYwgICAqEXoWTxgA7P4kACxbZBu21Kw0AjMsTAwkVAOVtJUUsJ1JCuULESUArXy9gPi9AKwnJRQYKTD9LPoA+iT54PnkCkULEUUpDX9NWV3JVEjQAc1w3A3IBE3YnX+g7QiMJb6MKaiszRCUuQrNCxDPMCcwEX9EWJzYREBEEBwIHKn6l33JCNVIfybPJtAltydPUCmhBZw/tEKsZAJOVJU1CLRuxbUHOQAo7P0s+eEJHHA8SJVRPdGM0NVrpvBoKhfUlM0JHHGUQUhEWO1xLSj8MO0ucNAqJIzVCRxv9EFsqKyA4OQgNj2nwZgp5ZNFgE2A1K3YHS2AhQQojJmC7DgpzGG1WYFUZCQYHZO9gHWCdYIVgu2BTYJlwFh8GvRbcXbG8YgtDHrMBwzPVyQonHQgkCyYBgQJ0Ajc4nVqIAwGSCsBPIgDsK3SWEtIVBa5N8gGjAo+kVwVIZwD/AEUSCDweX4ITrRQsJ8K3TwBXFDwEAB0TvzVcAtoTS20RIwDgVgZ9BBImYgA5AL4Coi8LFnezOkCnIQFjAY4KBAPh9RcGsgZSBsEAJctdsWIRu2kTkQstRw7DAcMBKgpPBGIGMDAwKCYnKTQaLg4AKRSVAFwCdl+YUZ0JdicFD3lPAdt1F9ZZKCGxuE3yBxkFVGcA/wBFEgiCBwAOLHQSjxOtQDg1z7deFRMAZ8QTAGtKb1ApIiPHADkAvgKiLy1DFtYCmBiDAlDDWNB0eo7fpaMO/aEVRRv0ATEQZBIODyMEAc8JQhCbDRgzFD4TAEMAu9YBCgCsAOkAm5I3ABwAYxvONnR+MhXJAxgKQyxL2+kkJhMbhQKDBMkSsvF0AD9BNQ6uQC7WqSQHwxEAEEIu1hkhAH2z4iQPwyJPHNWpdyYBRSpnJALzoBAEVPPsH20MxA0CCEQKRgAFyAtFAlMNwwjEDUQJRArELtapMg7DDZgJIw+TGukEIwvDFkMAqAtDEMMMBhioe+QAO3MMRAACrgnEBSPY9Q0FDnbSBoMAB8MSYxkSxAEJAPIJAAB8FWMOFtMc/HcXwxhDAC7DAvOowwAewwJdKDKHAAHDAALrFUQVwwAbwyvzpWMWv8wA/ABpAy++bcYDUKPD0KhDCwKmJ1MAAmMA5+UZwxAagwipBRL/eADfw6fDGOMCGsOjk3l6BwOpo4sAEsMOGxMAA5sAbcMOAAvDp0MJGkMDwgipnNIPAwfIqUMGAOGDAAPzABXDAAcDAAnDAGmTABrDAA7DChjDjnEWAwABYwAOcwAuUyYABsMAF8MIKQANUgC6wy4AA8MADqMq8wCyYgAcIwAB8wqpAAXOCx0V4wAHowBCwwEKAGnDAAuDAB3DAAjDCakABdIAbqcZ3QCZCCkABdIAAAFDAAfjAB2jCCkABqIACYMAGzMAbSMA5sOIAAhjAAhDABTDBAkpAAbSAOOTAAlDC6kOzPtnAAdDAG6kQFAATwAKwwwAA0MACbUDPwAHIwAZgwACE6cDAAojAApDAAoDp/MGwwAJIwADEwAQQwgAFEMAEXMAD5MADfMADcMAGRMOFiMAFUMAbqMWuwHDAMIAE0MLAGkzEgDhUwACQwAEWgAXgwUjAAbYABjDBSYBgzBaAEFNALcQBxUMegAwMngBrA0IZgJ0KxQHBREPd1N0ZzKRJwaIHAZqNT4DqQq8BwngAB4DAwt2AX56T1ocKQNXAh1GATQGC3tOxYNagkgAMQA5CQADAQEAWxLjAIOYNAEzAH7tFRk6TglSAF8NAAlYAQ+S1ACAQwQorQBiAN4dAJ1wPyeTANVzuQDX3AIeEMp9eyMgXiUAEdkBkJizKltbVVAaRMqRAAEAhyQ/SDEz6BmfVwB6ATEsOClKIRcDOF0E/832AFNt5AByAnkCRxGCOs94NjXdAwINGBonDBwPALW2AwICAgAAAAAAAAYDBQMDARrUAwAtAAAAAgEGBgYGBgYFBQUFBQUEBQYHCAkEBQUFBQQAAAICAAAAIgCNAJAAlT0A6gC7ANwApEQAwgCyAK0AqADuAKYA2gCjAOcBCAEDAMcAgQBiANIA1AEDAN4A8gCQAKkBMQDqAN8A3AsBCQ8yO9ra2tq8xuLT1tRJOB0BUgFcNU0BWgFpAWgBWwFMUUlLbhMBUxsNEAs6PhMOACcUKy0vMj5AQENDQ0RFFEYGJFdXV1dZWVhZL1pbXVxcI2NnZ2ZoZypsbnZ1eHh4eHh4enp6enp6enp6enp8fH18e2IARPIASQCaAHgAMgBm+ACOAFcAVwA3AnbvAIsABfj4AGQAk/IAnwBPAGIAZP//sACFAIUAaQBWALEAJAC2AIMCQAJDAPwA5wD+AP4A6AD/AOkA6QDoAOYALwJ7AVEBQAE+AVQBPgE+AT4BOQE4ATgBOAEcAVgXADEQCAEAUx8SHgsdHhYAjgCWAKYAUQBqIAIxAHYAbwCXAxUDJzIDIUlGTzEAkQJPAMcCVwKkAMAClgKWApYClgKWApYCiwKWApYClgKWApYClgKVApUCmAKgApcClgKWApQClAKUApQCkgKVAnUB1AKXAp8ClgKWApUeAIETBQD+DQOfAmECOh8BVBg9AuIZEjMbAU4/G1WZAXusRAFpYQEFA0FPAQYAmTEeIJdyADFoAHEANgCRA5zMk/C2jGINwjMWygIZCaXdfDILBCs5dAE7YnQBugDlhoiHhoiGiYqKhouOjIaNkI6Ij4qQipGGkoaThpSSlYaWhpeKmIaZhpqGm4aci52QnoqfhuIC4XTpAt90AIp0LHSoAIsAdHQEQwRABEIERQRDBEkERgRBBEcESQRIBEQERgRJAJ5udACrA490ALxuAQ10ANFZdHQA13QCFHQA/mJ0AP4BIQD+APwA/AD9APwDhGZ03ASMK23HAP4A/AD8AP0A/CR0dACRYnQA/gCRASEA/gCRAvQA/gCRA4RmdNwEjCttxyR0AP9idAEhAP4A/gD8APwA/QD8AP8A/AD8AP0A/AOEZnTcBIwrbcckdHQAkWJ0ASEA/gCRAP4AkQL0AP4AkQOEZnTcBIwrbcckdAJLAT50AlIBQXQCU8l0dAJfdHQDpgL0A6YDpgOnA6cDpwOnA4RmdNwEjCttxyR0dACRYnQBIQOmAJEDpgCRAvQDpgCRA4RmdNwEjCttxyR0BDh0AJEEOQCRDpU5dSgCADR03gV2CwArdAEFAM5iCnR0AF1iAAYcOgp0dACRCnQAXAEIwWZ0CnRmdHQAkWZ0CnRmdEXgAFF03gp0dEY0tlT2u3SOAQTwscwhjZZKrhYcBSfFp9XNbKiVDOD2b+cpe4/Z17mQnbtzzhaeQtE2GGj0IDNTjRUSyTxxw/RPHW/+vS7d1NfRt9z9QPZg4X7QFfhCnkvgNPIItOsC2eV6hPannZNHlZ9xrwZXIMOlu3jSoQSq78WEjwLjw1ELSlF1aBvfzwk5ZX7AUvQzjPQKbDuQ+sm4wNOp4A6AdVuRS0t1y/DZpg4R6m7FNjM9HgvW7Bi88zaMjOo6lM8wtBBdj8LP4ylv3zCXPhebMKJc066o9sF71oFW/8JXu86HJbwDID5lzw5GWLR/LhT0Qqnp2JQxNZNfcbLIzPy+YypqRm/lBmGmex+82+PisxUumSeJkALIT6rJezxMH+CTJmQtt5uwTVbL3ptmjDUQzlSIvWi8Tl7ng1NpuRn1Ng4n14Qc+3Iil7OwkvNWogLSPkn3pihIFytyIGmMhOe3n1tWsuMy9BdKyqF4Z3v2SgggTL9KVvMXPnCbRe+oOuFFP3HejBG/w9gvmfNYvg6JuWia2lcSSN1uIjBktzoIazOHPJZ7kKHPz8mRWVdW3lA8WGF9dQF6Bm673boov3BUWDU2JNcahR23GtfHKLOz/viZ+rYnZFaIznXO67CYEJ1fXuTRpZhYZkKe54xeoagkNGLs+NTZHE0rX45/XvQ2RGADX6vcAvdxIUBV27wxGm2zjZo4X3ILgAlrOFheuZ6wtsvaIj4yLY7qqawlliaIcrz2G+c3vscAnCkCuMzMmZvMfu9lLwTvfX+3cVSyPdN9ZwgDZhfjRgNJcLiJ67b9xx8JHswprbiE3v9UphotAPIgnXVIN5KmMc0piXhc6cChPnN+MRhG9adtdttQTTwSIpl8I4/j//d3sz1326qTBTpPRM/Hgh3kzqEXs8ZAk4ErQhNO8hzrQ0DLkWMA/N+91tn2MdOJnWC2FCZehkQrwzwbKOjhvZsbM95QoeL9skYyMf4srVPVJSgg7pOLUtr/n9eT99oe9nLtFRpjA9okV2Kj8h9k5HaC0oivRD8VyXkJ81tcd4fHNXPCfloIQasxsuO18/46dR2jgul/UIet2G0kRvnyONMKhHs6J26FEoqSqd+rfYjeEGwHWVDpX1fh1jBBcKGMqRepju9Y00mDVHC+Xdij/j44rKfvfjGinNs1jO/0F3jB83XCDINN/HB84axlP+3E/klktRo+vl3U/aiyMJbIodE1XSsDn6UAzIoMtUObY2+k/4gY/l+AkZJ5Sj2vQrkyLm3FoxjhDX+31UXBFf9XrAH31fFqoBmDEZvhvvpnZ87N+oZEu7U9O/nnk+QWj3x8uyoRbEnf+O5UMr9i0nHP38IF5AvzrBW8YWBUR0mIAzIvndQq9N3v/Jto3aPjPXUPl8ASdPPyAp7jENf8bk7VMM9ol9XGmlBmeDMuGqt+WzuL6CXAxXjIhCPM5vACchgMJ/8XBGLO/D1isVvGhwwHHr1DLaI5mn2Jr/b1pUD90uciDaS8cXNDzCWvNmT/PhQe5e8nTnnnkt8Ds/SIjibcum/fqDhKopxAY8AkSrPn+IGDEKOO+U3XOP6djFs2H5N9+orhOahiQk5KnEUWa+CzkVzhp8bMHRbg81qhjjXuIKbHjSLSIBKWqockGtKinY+z4/RdBUF6pcc3JmnlxVcNgrI4SEzKUZSwcD2QCyxzKve+gAmg6ZuSRkpPFa6mfThu7LJNu3H5K42uCpNvPAsoedolKV/LHe/eJ+BbaG5MG0NaSGVPRUmNFMFFSSpXEcXwbVh7UETOZZtoVNRGOIbbkig3McEtR68cG0RZAoJevWYo7Dg/lZ1CQzblWeUvVHmr8fY4Nqd9JJiH/zEX24mJviH60fAyFr0A3c4bC1j3yZU60VgJxXn8JgJXLUIsiBnmKmMYz+7yBQFBvqb2eYnuW59joZBf56/wXvWIR4R8wTmV80i1mZy+S4+BUES+hzjk0uXpC///z/IlqHZ1monzlXp8aCfhGKMti73FI1KbL1q6IKO4fuBuZ59gagjn5xU79muMpHXg6S+e+gDM/U9BKLHbl9l6o8czQKl4RUkJJiqftQG2i3BMg/TQlUYFkJDYBOOvAugYuzYSDnZbDDd/aSd9x0Oe6F+bJcHfl9+gp6L5/TgA+BdFFovbfCrQ40s5vMPw8866pNX8zyFGeFWdxIpPVp9Rg1UPOVFbFZrvaFq/YAzHQgqMWpahMYfqHpmwXfHL1/kpYmGuHFwT55mQu0dylfNuq2Oq0hTMCPwqfxnuBIPLXfci4Y1ANy+1CUipQxld/izVh16WyG2Q0CQQ9NqtAnx1HCHwDj7sYxOSB0wopZSnOzxQOcExmxrVTF2BkOthVpGfuhaGECfCJpJKpjnihY+xOT2QJxN61+9K6QSqtv2Shr82I3jgJrqBg0wELFZPjvHpvzTtaJnLK6Vb97Yn933koO/saN7fsjwNKzp4l2lJVx2orjCGzC/4ZL4zCver6aQYtC5sdoychuFE6ufOiog+VWi5UDkbmvmtah/3aArEBIi39s5ILUnlFLgilcGuz9CQshEY7fw2ouoILAYPVT/gyAIq3TFAIwVsl+ktkRz/qGfnCDGrm5gsl/l9QdvCWGsjPz3dU7XuqKfdUrr/6XIgjp4rey6AJBmCmUJMjITHVdFb5m1p+dLMCL8t55zD42cmftmLEJC0Da04YiRCVUBLLa8D071/N5UBNBXDh0LFsmhV/5B5ExOB4j3WVG/S3lfK5o+V6ELHvy6RR9n4ac+VsK4VE4yphPvV+kG9FegTBH4ZRXL2HytUHCduJazB/KykjfetYxOXTLws267aGOd+I+JhKP//+VnXmS90OD/jvLcVu0asyqcuYN1mSb6XTlCkqv1vigZPIYwNF/zpWcT1GR/6aEIRjkh0yhg4LXJfaGobYJTY4JI58KiAKgmmgAKWdl5nYCeLqavRJGQNuYuZtZFGx+IkI4w4NS2xwbetNMunOjBu/hmKCI/w7tfiiyUd//4rbTeWt4izBY8YvGIN6vyKYmP/8X8wHKCeN+WRcKM70+tXKNGyevU9H2Dg5BsljnTf8YbsJ1TmMs74Ce2XlHisleguhyeg44rQOHZuw/6HTkhnnurK2d62q6yS7210SsAIaR+jXMQA+svkrLpsUY+F30Uw89uOdGAR6vo4FIME0EfVVeHTu6eKicfhSqOeXJhbftcd08sWEnNUL1C9fnprTgd83IMut8onVUF0hvqzZfHduPjbjwEXIcoYmy+P6tcJZHmeOv6VrvEdkHDJecjHuHeWANe79VG662qTjA/HCvumVv3qL+LrOcpqGps2ZGwQdFJ7PU4iuyRlBrwfO+xnPyr47s2cXVbWzAyznDiBGjCM3ksxjjqM62GE9C8f5U38kB3VjtabKp/nRdvMESPGDG90bWRLAt1Qk5DyLuazRR1YzdC1c+hZXvAWV8xA72S4A8B67vjVhbba3MMop293FeEXpe7zItMWrJG/LOH9ByOXmYnNJfjmfuX9KbrpgLOba4nZ+fl8Gbdv/ihv+6wFGKHCYrVwmhFC0J3V2bn2tIB1wCc1CST3d3X2OyxhguXcs4sm679UngzofuSeBewMFJboIQHbUh/m2JhW2hG9DIvG2t7yZIzKBTz9wBtnNC+2pCRYhSIuQ1j8xsz5VvqnyUIthvuoyyu7fNIrg/KQUVmGQaqkqZk/Vx5b33/gsEs8yX7SC1J+NV4icz6bvIE7C5G6McBaI8rVg56q5QBJWxn/87Q1sPK4+sQa8fLU5gXo4paaq4cOcQ4wR0VBHPGjKh+UlPCbA1nLXyEUX45qZ8J7/Ln4FPJE2TdzD0Z8MLSNQiykMMmSyOCiFfy84Rq60emYB2vD09KjYwsoIpeDcBDTElBbXxND72yhd9pC/1CMid/5HUMvAL27OtcIJDzNKpRPNqPOpyt2aPGz9QWIs9hQ9LiX5s8m9hjTUu/f7MyIatjjd+tSfQ3ufZxPpmJhTaBtZtKLUcfOCUqADuO+QoH8B9v6U+P0HV1GLQmtoNFTb3s74ivZgjES0qfK+8RdGgBbcCMSy8eBvh98+et1KIFqSe1KQPyXULBMTsIYnysIwiZBJYdI20vseV+wuJkcqGemehKjaAb9L57xZm3g2zX0bZ2xk/fU+bCo7TlnbW7JuF1YdURo/2Gw7VclDG1W7LOtas2LX4upifZ/23rzpsnY/ALfRgrcWP5hYmV9VxVOQA1fZvp9F2UNU+7d7xRyVm5wiLp3/0dlV7vdw1PMiZrbDAYzIVqEjRY2YU03sJhPnlwIPcZUG5ltL6S8XCxU1eYS5cjr34veBmXAvy7yN4ZjArIG0dfD/5UpBNlX1ZPoxJOwyqRi3wQWtOzd4oNKh0LkoTm8cwqgIfKhqqGOhwo71I+zXnMemTv2B2AUzABWyFztGgGULjDDzWYwJUVBTjKCn5K2QGMK1CQT7SzziOjo+BhAmqBjzuc3xYym2eedGeOIRJVyTwDw37iCMe4g5Vbnsb5ZBdxOAnMT7HU4DHpxWGuQ7GeiY30Cpbvzss55+5Km1YsbD5ea3NI9QNYIXol5apgSu9dZ8f8xS5dtHpido5BclDuLWY4lhik0tbJa07yJhH0BOyEut/GRbYTS6RfiTYWGMCkNpfSHi7HvdiTglEVHKZXaVhezH4kkXiIvKopYAlPusftpE4a5IZwvw1x/eLvoDIh/zpo9FiQInsTb2SAkKHV42XYBjpJDg4374XiVb3ws4qM0s9eSQ5HzsMU4OZJKuopFjBM+dAZEl8RUMx5uU2N486Kr141tVsGQfGjORYMCJAMsxELeNT4RmWjRcpdTGBwcx6XN9drWqPmJzcrGrH4+DRc7+n1w3kPZwu0BkNr6hQrqgo7JTB9A5kdJ/H7P4cWBMwsmuixAzJB3yrQpnGIq90lxAXLzDCdn1LPibsRt7rHNjgQBklRgPZ8vTbjXdgXrTWQsK5MdrXXQVPp0Rinq3frzZKJ0qD6Qhc40VzAraUXlob1gvkhK3vpmHgI6FRlQZNx6eRqkp0zy4AQlX813fAPtL3jMRaitGFFjo0zmErloC+h+YYdVQ6k4F/epxAoF0BmqEoKNTt6j4vQZNQ2BoqF9Vj53TOIoNmDiu9Xp15RkIgQIGcoLpfoIbenzpGUAtqFJp5W+LLnx38jHeECTJ/navKY1NWfN0sY1T8/pB8kIH3DU3DX+u6W3YwpypBMYOhbSxGjq84RZ84fWJow8pyHqn4S/9J15EcCMsXqrfwyd9mhiu3+rEo9pPpoJkdZqHjra4NvzFwuThNKy6hao/SlLw3ZADUcUp3w3SRVfW2rhl80zOgTYnKE0Hs2qp1J6H3xqPqIkvUDRMFDYyRbsFI3M9MEyovPk8rlw7/0a81cDVLmBsR2ze2pBuKb23fbeZC0uXoIvDppfTwIDxk1Oq2dGesGc+oJXWJLGkOha3CX+DUnzgAp9HGH9RsPZN63Hn4RMA5eSVhPHO+9RcRb/IOgtW31V1Q5IPGtoxPjC+MEJbVlIMYADd9aHYWUIQKopuPOHmoqSkubnAKnzgKHqgIOfW5RdAgotN6BN+O2ZYHkuemLnvQ8U9THVrS1RtLmKbcC7PeeDsYznvqzeg6VCNwmr0Yyx1wnLjyT84BZz3EJyCptD3yeueAyDWIs0L2qs/VQ3HUyqfrja0V1LdDzqAikeWuV4sc7RLIB69jEIBjCkyZedoUHqCrOvShVzyd73OdrJW0hPOuQv2qOoHDc9xVb6Yu6uq3Xqp2ZaH46A7lzevbxQEmfrzvAYSJuZ4WDk1Hz3QX1LVdiUK0EvlAGAYlG3Md30r7dcPN63yqBCIj25prpvZP0nI4+EgWoFG95V596CurXpKRBGRjQlHCvy5Ib/iW8nZJWwrET3mgd6mEhfP4KCuaLjopWs7h+MdXFdIv8dHQJgg1xi1eYqB0uDYjxwVmri0Sv5XKut/onqapC+FQiC2C1lvYJ9MVco6yDYsS3AANUfMtvtbYI2hfwZatiSsnoUeMZd34GVjkMMKA+XnjJpXgRW2SHTZplVowPmJsvXy6w3cfO1AK2dvtZEKTkC/TY9LFiKHCG0DnrMQdGm2lzlBHM9iEYynH2UcVMhUEjsc0oDBTgo2ZSQ1gzkAHeWeBXYFjYLuuf8yzTCy7/RFR81WDjXMbq2BOH5dURnxo6oivmxL3cKzKInlZkD31nvpHB9Kk7GfcfE1t+1V64b9LtgeJGlpRFxQCAqWJ5DoY77ski8gsOEOr2uywZaoO/NGa0X0y1pNQHBi3b2SUGNpcZxDT7rLbBf1FSnQ8guxGW3W+36BW0gBje4DOz6Ba6SVk0xiKgt+q2JOFyr4SYfnu+Ic1QZYIuwHBrgzr6UvOcSCzPTOo7D6IC4ISeS7zkl4h+2VoeHpnG/uWR3+ysNgPcOIXQbv0n4mr3BwQcdKJxgPSeyuP/z1Jjg4e9nUvoXegqQVIE30EHx5GHv+FAVUNTowYDJgyFhf5IvlYmEqRif6+WN1MkEJmDcQITx9FX23a4mxy1AQRsOHO/+eImX9l8EMJI3oPWzVXxSOeHU1dUWYr2uAA7AMb+vAEZSbU3qob9ibCyXeypEMpZ6863o6QPqlqGHZkuWABSTVNd4cOh9hv3qEpSx2Zy/DJMP6cItEmiBJ5PFqQnDEIt3NrA3COlOSgz43D7gpNFNJ5MBh4oFzhDPiglC2ypsNU4ISywY2erkyb1NC3Qh/IfWj0eDgZI4/ln8WPfBsT3meTjq1Uqt1E7Zl/qftqkx6aM9KueMCekSnMrcHj1CqTWWzEzPsZGcDe3Ue4Ws+XFYVxNbOFF8ezkvQGR6ZOtOLU2lQEnMBStx47vE6Pb7AYMBRj2OOfZXfisjJnpTfSNjo6sZ6qSvNxZNmDeS7Gk3yYyCk1HtKN2UnhMIjOXUzAqDv90lx9O/q/AT1ZMnit5XQe9wmQxnE/WSH0CqZ9/2Hy+Sfmpeg8RwsHI5Z8kC8H293m/LHVVM/BA7HaTJYg5Enk7M/xWpq0192ACfBai2LA/qrCjCr6Dh1BIMzMXINBmX96MJ5Hn2nxln/RXPFhwHxUmSV0EV2V0jm86/dxxuYSU1W7sVkEbN9EzkG0QFwPhyHKyb3t+Fj5WoUUTErcazE/N6EW6Lvp0d//SDPj7EV9UdJN+Amnf3Wwk3A0SlJ9Z00yvXZ7n3z70G47Hfsow8Wq1JXcfwnA+Yxa5mFsgV464KKP4T31wqIgzFPd3eCe3j5ory5fBF2hgCFyVFrLzI9eetNXvM7oQqyFgDo4CTp/hDV9NMX9JDHQ/nyHTLvZLNLF6ftn2OxjGm8+PqOwhxnPHWipkE/8wbtyri80Sr7pMNkQGMfo4ZYK9OcCC4ESVFFbLMIvlxSoRqWie0wxqnLfcLSXMSpMMQEJYDVObYsXIQNv4TGNwjq1kvT1UOkicTrG3IaBZ3XdScS3u8sgeZPVpOLkbiF940FjbCeNRINNvDbd01EPBrTCPpm12m43ze1bBB59Ia6Ovhnur/Nvx3IxwSWol+3H2qfCJR8df6aQf4v6WiONxkK+IqT4pKQrZK/LplgDI/PJZbOep8dtbV7oCr6CgfpWa8NczOkPx81iSHbsNhVSJBOtrLIMrL31LK9TqHqAbAHe0RLmmV806kRLDLNEhUEJfm9u0sxpkL93Zgd6rw+tqBfTMi59xqXHLXSHwSbSBl0EK0+loECOPtrl+/nsaFe197di4yUgoe4jKoAJDXc6DGDjrQOoFDWZJ9HXwt8xDrQP+7aRwWKWI1GF8s8O4KzxWBBcwnl3vnl1Oez3oh6Ea1vjR7/z7DDTrFtqU2W/KAEzAuXDNZ7MY73MF216dzdSbWmUp4lcm7keJfWaMHgut9x5C9mj66Z0lJ+yhsjVvyiWrfk1lzPOTdhG15Y7gQlXtacvI7qv/XNSscDwqkgwHT/gUsD5yB7LdRRvJxQGYINn9hTpodKFVSTPrtGvyQw+HlRFXIkodErAGu9Iy1YpfSPc3jkFh5CX3lPxv7aqjE/JAfTIpEjGb/H7MO0e2vsViSW1qa/Lmi4/n4DEI3g7lYrcanspDfEpKkdV1OjSLOy0BCUqVoECaB55vs06rXl4jqmLsPsFM/7vYJ0vrBhDCm/00A/H81l1uekJ/6Lml3Hb9+NKiLqATJmDpyzfYZFHumEjC662L0Bwkxi7E9U4cQA0XMVDuMYAIeLMPgQaMVOd8fmt5SflFIfuBoszeAw7ow5gXPE2Y/yBc/7jExARUf/BxIHQBF5Sn3i61w4z5xJdCyO1F1X3+3ax+JSvMeZ7S6QSKp1Fp/sjYz6Z+VgCZzibGeEoujryfMulH7Rai5kAft9ebcW50DyJr2uo2z97mTWIu45YsSnNSMrrNUuG1XsYBtD9TDYzQffKB87vWbkM4EbPAFgoBV4GQS+vtFDUqOFAoi1nTtmIOvg38N4hT2Sn8r8clmBCXspBlMBYTnrqFJGBT3wZOzAyJDre9dHH7+x7qaaKDOB4UQALD5ecS0DE4obubQEiuJZ0EpBVpLuYcce8Aa4PYd/V4DLDAJBYKQPCWTcrEaZ5HYbJi11Gd6hjGom1ii18VHYnG28NKpkz2UKVPxlhYSp8uZr367iOmoy7zsxehW9wzcy2zG0a80PBMCRQMb32hnaHeOR8fnNDzZhaNYhkOdDsBUZ3loDMa1YP0uS0cjUP3b/6DBlqmZOeNABDsLl5BI5QJups8uxAuWJdkUB/pO6Zax6tsg7fN5mjjDgMGngO+DPcKqiHIDbFIGudxtPTIyDi9SFMKBDcfdGQRv41q1AqmxgkVfJMnP8w/Bc7N9/TR6C7mGObFqFkIEom8sKi2xYqJLTCHK7cxzaZvqODo22c3wisBCP4HeAgcRbNPAsBkNRhSmD48dHupdBRw4mIvtS5oeF6zeT1KMCyhMnmhpkFAGWnGscoNkwvQ8ZM5lE/vgTHFYL99OuNxdFBxTEDd5v2qLR8y9WkXsWgG6kZNndFG+pO/UAkOCipqIhL3hq7cRSdrCq7YhUsTocEcnaFa6nVkhnSeRYUA1YO0z5itF9Sly3VlxYDw239TJJH6f3EUfYO5lb7bcFcz8Bp7Oo8QmnsUHOz/fagVUBtKEw1iT88j+aKkv8cscKNkMxjYr8344D1kFoZ7/td1W6LCNYN594301tUGRmFjAzeRg5vyoM1F6+bJZ/Q54jN/k8SFd3DxPTYaAUsivsBfgTn7Mx8H2SpPt4GOdYRnEJOH6jHM2p6SgB0gzIRq6fHxGMmSmqaPCmlfwxiuloaVIitLGN8wie2CDWhkzLoCJcODh7KIOAqbHEvXdUxaS4TTTs07Clzj/6GmVs9kiZDerMxEnhUB6QQPlcfqkG9882RqHoLiHGBoHfQuXIsAG8GTAtao2KVwRnvvam8jo1e312GQAKWEa4sUVEAMG4G6ckcONDwRcg1e2D3+ohXgY4UAWF8wHKQMrSnzCgfFpsxh+aHXMGtPQroQasRY4U6UdG0rz1Vjbka0MekOGRZQEvqQFlxseFor8zWFgHek3v29+WqN6gaK5gZOTOMZzpQIC1201LkMCXild3vWXSc5UX9xcFYfbRPzGFa1FDcPfPB/jUEq/FeGt419CI3YmBlVoHsa4KdcwQP5ZSwHHhFJ7/Ph/Rap/4vmG91eDwPP0lDfCDRCLszTqfzM71xpmiKi2HwS4WlqvGNwtvwF5Dqpn6KTq8ax00UMPkxDcZrEEEsIvHiUXXEphdb4GB4FymlPwBz4Gperqq5pW7TQ6/yNRhW8VT5NhuP0udlxo4gILq5ZxAZk8ZGh3g4CqxJlPKY7AQxupfUcVpWT5VItp1+30UqoyP4wWsRo3olRRgkWZZ2ZN6VC3OZFeXB8NbnUrSdikNptD1QiGuKkr8EmSR/AK9Rw+FF3s5uwuPbvHGiPeFOViltMK7AUaOsq9+x9cndk3iJEE5LKZRlWJbKOZweROzmPNVPkjE3K/TyA57Rs68TkZ3MR8akKpm7cFjnjPd/DdkWjgYoKHSr5Wu5ssoBYU4acRs5g2DHxUmdq8VXOXRbunD8QN0LhgkssgahcdoYsNvuXGUK/KXD/7oFb+VGdhqIn02veuM5bLudJOc2Ky0GMaG4W/xWBxIJcL7yliJOXOpx0AkBqUgzlDczmLT4iILXDxxtRR1oZa2JWFgiAb43obrJnG/TZC2KSK2wqOzRZTXavZZFMb1f3bXvVaNaK828w9TO610gk8JNf3gMfETzXXsbcvRGCG9JWQZ6+cDPqc4466Yo2RcKH+PILeKOqtnlbInR3MmBeGG3FH10yzkybuqEC2HSQwpA0An7d9+73BkDUTm30bZmoP/RGbgFN+GrCOfADgqr0WbI1a1okpFms8iHYw9hm0zUvlEMivBRxModrbJJ+9/p3jUdQQ9BCtQdxnOGrT5dzRUmw0593/mbRSdBg0nRvRZM5/E16m7ZHmDEtWhwvfdZCZ8J8M12W0yRMszXamWfQTwIZ4ayYktrnscQuWr8idp3PjT2eF/jmtdhIfcpMnb+IfZY2FebW6UY/AK3jP4u3Tu4zE4qlnQgLFbM19EBIsNf7KhjdbqQ/D6yiDb+NlEi2SKD+ivXVUK8ib0oBo366gXkR8ZxGjpJIDcEgZPa9TcYe0TIbiPl/rPUQDu3XBJ9X/GNq3FAUsKsll57DzaGMrjcT+gctp+9MLYXCq+sqP81eVQ0r9lt+gcQfZbACRbEjvlMskztZG8gbC8Qn9tt26Q7y7nDrbZq/LEz7kR6Jc6pg3N9rVX8Y5MJrGlML9p9lU4jbTkKqCveeZUJjHB03m2KRKR2TytoFkTXOLg7keU1s1lrPMQJpoOKLuAAC+y1HlJucU6ysB5hsXhvSPPLq5J7JtnqHKZ4vYjC4Vy8153QY+6780xDuGARsGbOs1WqzH0QS765rnSKEbbKlkO8oI/VDwUd0is13tKpqILu1mDJFNy/iJAWcvDgjxvusIT+PGz3ST/J9r9Mtfd0jpaGeiLYIqXc7DiHSS8TcjFVksi66PEkxW1z6ujbLLUGNNYnzOWpH8BZGK4bCK7iR+MbIv8ncDAz1u4StN3vTTzewr9IQjk9wxFxn+6N1ddKs0vffJiS08N3a4G1SVrlZ97Q/M+8G9fe5AP6d9/Qq4WRnORVhofPIKEdCr3llspUfE0oKIIYoByBRPh+bX1HLS3JWGJRhIvE1aW4NTd8ePi4Z+kXb+Z8snYfSNcqijhAgVsx4RCM54cXUiYkjeBmmC4ajOHrChoELscJJC7+9jjMjw5BagZKlgRMiSNYz7h7vvZIoQqbtQmspc0cUk1G/73iXtSpROl5wtLgQi0mW2Ex8i3WULhcggx6E1LMVHUsdc9GHI1PH3U2Ko0PyGdn9KdVOLm7FPBui0i9a0HpA60MsewVE4z8CAt5d401Gv6zXlIT5Ybit1VIA0FCs7wtvYreru1fUyW3oLAZ/+aTnZrOcYRNVA8spoRtlRoWflsRClFcgzkqiHOrf0/SVw+EpVaFlJ0g4Kxq1MMOmiQdpMNpte8lMMQqm6cIFXlnGbfJllysKDi+0JJMotkqgIxOSQgU9dn/lWkeVf8nUm3iwX2Nl3WDw9i6AUK3vBAbZZrcJpDQ/N64AVwjT07Jef30GSSmtNu2WlW7YoyW2FlWfZFQUwk867EdLYKk9VG6JgEnBiBxkY7LMo4YLQJJlAo9l/oTvJkSARDF/XtyAzM8O2t3eT/iXa6wDN3WewNmQHdPfsxChU/KtLG2Mn8i4ZqKdSlIaBZadxJmRzVS/o4yA65RTSViq60oa395Lqw0pzY4SipwE0SXXsKV+GZraGSkr/RW08wPRvqvSUkYBMA9lPx4m24az+IHmCbXA+0faxTRE9wuGeO06DIXa6QlKJ3puIyiuAVfPr736vzo2pBirS+Vxel3TMm3JKhz9o2ZoRvaFVpIkykb0Hcm4oHFBMcNSNj7/4GJt43ogonY2Vg4nsDQIWxAcorpXACzgBqQPjYsE/VUpXpwNManEru4NwMCFPkXvMoqvoeLN3qyu/N1eWEHttMD65v19l/0kH2mR35iv/FI+yjoHJ9gPMz67af3Mq/BoWXqu3rphiWMXVkmnPSEkpGpUI2h1MThideGFEOK6YZHPwYzMBvpNC7+ZHxPb7epfefGyIB4JzO9DTNEYnDLVVHdQyvOEVefrk6Uv5kTQYVYWWdqrdcIl7yljwwIWdfQ/y+2QB3eR/qxYObuYyB4gTbo2in4PzarU1sO9nETkmj9/AoxDA+JM3GMqQtJR4jtduHtnoCLxd1gQUscHRB/MoRYIEsP2pDZ9KvHgtlk1iTbWWbHhohwFEYX7y51fUV2nuUmnoUcqnWIQAAgl9LTVX+Bc0QGNEhChxHR4YjfE51PUdGfsSFE6ck7BL3/hTf9jLq4G1IafINxOLKeAtO7quulYvH5YOBc+zX7CrMgWnW47/jfRsWnJjYYoE7xMfWV2HN2iyIqLI");const e=()=>ui(t),r=()=>new Set(e()),n=(t,e)=>e.forEach(e=>t.add(e));Di=new Map(li(t)),Fi=r(),Li=e(),Ui=new Set(e().map(t=>Li[t])),Li=new Set(Li),Gi=r(),Hi=r();let i=ci(t),s=t();const o=()=>{let t=new Set;return e().forEach(e=>n(t,i[e])),n(t,e()),t};qi=hi(e=>{let r=hi(t).map(t=>t+96);if(r.length){let n=e>=s;return r[0]-=32,r=mi(r),n&&(r=`Restricted[${r}]`),{N:r,P:o(),Q:o(),M:!t(),R:n}}}),zi=r(),ji=new Map;let a=e().concat(Ti(zi)).sort((t,e)=>t-e);a.forEach((e,r)=>{let n=t(),i=a[r]=n?a[r-n]:{V:[],M:new Map};i.V.push(e),zi.has(e)||ji.set(e,i)});for(let{V:t,M:e}of new Set(ji.values())){let r=[];for(let e of t){let t=qi.filter(t=>Si(t,e)),i=r.find(({G:e})=>t.some(t=>e.has(t)));i||(i={G:new Set,V:[]},r.push(i)),i.V.push(e),n(i.G,t)}let i=r.flatMap(t=>Ti(t.G));for(let{G:t,V:n}of r){let r=new Set(i.filter(e=>!t.has(e)));for(let t of n)e.set(t,r)}}Qi=new Set;let u=new Set;const c=t=>Qi.has(t)?u.add(t):Qi.add(t);for(let t of qi){for(let e of t.P)c(e);for(let e of t.Q)c(e)}for(let t of Qi)ji.has(t)||u.has(t)||ji.set(t,1);n(Qi,Oi(Qi)),Vi=function(t){let e=[],r=ui(t);return function t({S:r,B:n},i,s){if(!(4&r&&s===i[i.length-1])){2&r&&(s=i[i.length-1]),1&r&&e.push(i);for(let e of n)for(let r of e.Q)t(e,[...i,r],s)}}(function e(n){return{S:t(),B:hi(()=>{let n=ui(t).map(t=>r[t]);if(n.length)return e(n)}),Q:n}}([]),[]),e}(t).map(t=>Ri.from(t)).sort(yi),Ji=new Map;for(let t of Vi){let e=[Ji];for(let r of t){let t=e.map(t=>{let e=t.get(r);return e||(e=new Map,t.set(r,e)),e});65039===r?e.push(...t):e=t}for(let r of e)r.V=t}}function Wi(t){return(Yi(t)?"":`${Zi(Xi([t]))} `)+gi(t)}function Zi(t){return`"${t}"‎`}function Xi(t,e=1/0,r=gi){let n=[];var i;i=t[0],Ki(),Li.has(i)&&n.push("◌"),t.length>e&&(e>>=1,t=[...t.slice(0,e),8230,...t.slice(-e)]);let s=0,o=t.length;for(let e=0;e<o;e++){let i=t[e];Yi(i)&&(n.push(mi(t.slice(s,e))),n.push(r(i)),s=e+1)}return n.push(mi(t.slice(s,o))),n.join("")}function Yi(t){return Ki(),Gi.has(t)}function $i(t,e,r){if(!t)return[];Ki();let n=0;return t.split(".").map(t=>{let i=function(t){let e=[];for(let r=0,n=t.length;r<n;){let n=t.codePointAt(r);r+=n<65536?1:2,e.push(n)}return e}(t),s={input:i,offset:n};n+=i.length+1;try{let t,n=s.tokens=function(t,e,r){let n=[],i=[];for(t=t.slice().reverse();t.length;){let s=is(t);if(s)i.length&&(n.push(e(i)),i=[]),n.push(r(s));else{let e=t.pop();if(Qi.has(e))i.push(e);else{let t=Di.get(e);if(t)i.push(...t);else if(!Fi.has(e))throw ts(e)}}}return i.length&&n.push(e(i)),n}(i,e,r),o=n.length;if(!o)throw new Error("empty label");let a=s.output=n.flat();if(function(t){for(let e=t.lastIndexOf(95);e>0;)if(95!==t[--e])throw new Error("underscore allowed only at start")}(a),!(s.emoji=o>1||n[0].is_emoji)&&a.every(t=>t<128))!function(t){if(t.length>=4&&45==t[2]&&45==t[3])throw new Error(`invalid label extension: "${mi(t.slice(0,4))}"`)}(a),t="ASCII";else{let e=n.flatMap(t=>t.is_emoji?[]:t);if(e.length){if(Li.has(a[0]))throw rs("leading combining mark");for(let t=1;t<o;t++){let e=n[t];if(!e.is_emoji&&Li.has(e[0]))throw rs(`emoji + combining mark: "${mi(n[t-1])} + ${Xi([e[0]])}"`)}!function(t){let e=t[0],r=ii.get(e);if(r)throw rs(`leading ${r}`);let n=t.length,i=-1;for(let s=1;s<n;s++){e=t[s];let n=ii.get(e);if(n){if(i==s)throw rs(`${r} + ${n}`);i=s+1,r=n}}if(i==n)throw rs(`trailing ${r}`)}(a);let r=Ti(new Set(e)),[i]=function(t){let e=qi;for(let r of t){let t=e.filter(t=>Si(t,r));if(!t.length)throw qi.some(t=>Si(t,r))?es(e[0],r):ts(r);if(e=t,1==t.length)break}return e}(r);!function(t,e){for(let r of e)if(!Si(t,r))throw es(t,r);if(t.M){let t=Oi(e);for(let e=1,r=t.length;e<r;e++)if(Ui.has(t[e])){let n=e+1;for(let i;n<r&&Ui.has(i=t[n]);n++)for(let r=e;r<n;r++)if(t[r]==i)throw new Error(`duplicate non-spacing marks: ${Wi(i)}`);if(n-e>4)throw new Error(`excessive non-spacing marks: ${Zi(Xi(t.slice(e-1,n)))} (${n-e}/4)`);e=n}}}(i,e),function(t,e){let r,n=[];for(let t of e){let e=ji.get(t);if(1===e)return;if(e){let n=e.M.get(t);if(r=r?r.filter(t=>n.has(t)):Ti(n),!r.length)return}else n.push(t)}if(r)for(let e of r)if(n.every(t=>Si(e,t)))throw new Error(`whole-script confusable: ${t.N}/${e.N}`)}(i,r),t=i.N}else t="Emoji"}s.type=t}catch(t){s.error=t}return s})}function ts(t){return new Error(`disallowed character: ${Wi(t)}`)}function es(t,e){let r=Wi(e),n=qi.find(t=>t.P.has(e));return n&&(r=`${n.N} ${r}`),new Error(`illegal mixture: ${t.N} + ${r}`)}function rs(t){return new Error(`illegal placement: ${t}`)}function ns(t){return t.filter(t=>65039!=t)}function is(t,e){let r,n=Ji,i=t.length;for(;i&&(n=n.get(t[--i]),n);){let{V:s}=n;s&&(r=s,e&&e.push(...t.slice(i).reverse()),t.length=i)}return r}const ss=new Uint8Array(32);function os(t){return f(0!==t.length,"invalid ENS name; empty component","comp",t),t}function as(t){const e=me(function(t){try{if(0===t.length)throw new Error("empty label");return function(t){return function(t){return t.map(({input:e,error:r,output:n})=>{if(r){let n=r.message;throw new Error(1==t.length?n:`Invalid label ${Zi(Xi(e,63))}: ${n}`)}return mi(n)}).join(".")}($i(t,Mi,ns))}(t)}catch(e){f(!1,`invalid ENS name (${e.message})`,"name",t)}}(t)),r=[];if(0===t.length)return r;let n=0;for(let t=0;t<e.length;t++)46===e[t]&&(r.push(os(e.slice(n,t))),n=t+1);return f(n<e.length,"invalid ENS name; empty component","name",t),r.push(os(e.slice(n))),r}function us(t){f("string"==typeof t,"invalid ENS name; not a string","name",t),f(t.length,"invalid ENS name (empty label)","name",t);let e=ss;const r=as(t);for(;r.length;)e=Ht(_([e,Ht(r.pop())]));return E(e)}function cs(t,e){const r=null!=e?e:63;return f(r<=255,"DNS encoded label cannot exceed 255","length",r),E(_(as(t).map(e=>{f(e.length<=r,`label ${JSON.stringify(t)} exceeds ${r} bytes`,"name",t);const n=new Uint8Array(e.length+1);return n.set(e,1),n[0]=n.length-1,n})))+"00"}ss.fill(0);class ls extends At{constructor(t,e,r,n){super(),this.blockLen=t,this.outputLen=e,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=yt(this.buffer)}update(t){it(this);const{view:e,buffer:r,blockLen:n}=this,i=(t=bt(t)).length;for(let s=0;s<i;){const o=Math.min(n-this.pos,i-s);if(o===n){const e=yt(t);for(;n<=i-s;s+=n)this.process(e,s);continue}r.set(t.subarray(s,s+o),this.pos),this.pos+=o,s+=o,this.pos===n&&(this.process(e,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){it(this),st(t,this),this.finished=!0;const{buffer:e,view:r,blockLen:n,isLE:i}=this;let{pos:s}=this;e[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>n-s&&(this.process(r,0),s=0);for(let t=s;t<n;t++)e[t]=0;!function(t,e,r,n){if("function"==typeof t.setBigUint64)return t.setBigUint64(e,r,n);const i=BigInt(32),s=BigInt(4294967295),o=Number(r>>i&s),a=Number(r&s),u=n?4:0,c=n?0:4;t.setUint32(e+u,o,n),t.setUint32(e+c,a,n)}(r,n-8,BigInt(8*this.length),i),this.process(r,0);const o=yt(t),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=a/4,c=this.get();if(u>c.length)throw new Error("_sha2: outputLen bigger than state");for(let t=0;t<u;t++)o.setUint32(4*t,c[t],i)}digest(){const{buffer:t,outputLen:e}=this;this.digestInto(t);const r=t.slice(0,e);return this.destroy(),r}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:e,buffer:r,length:n,finished:i,destroyed:s,pos:o}=this;return t.length=n,t.pos=o,t.finished=i,t.destroyed=s,n%e&&t.buffer.set(r),t}}const hs=(t,e,r)=>t&e^~t&r,fs=(t,e,r)=>t&e^t&r^e&r,ds=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]),ps=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),gs=new Uint32Array(64);class ms extends ls{constructor(){super(64,32,8,!1),this.A=0|ps[0],this.B=0|ps[1],this.C=0|ps[2],this.D=0|ps[3],this.E=0|ps[4],this.F=0|ps[5],this.G=0|ps[6],this.H=0|ps[7]}get(){const{A:t,B:e,C:r,D:n,E:i,F:s,G:o,H:a}=this;return[t,e,r,n,i,s,o,a]}set(t,e,r,n,i,s,o,a){this.A=0|t,this.B=0|e,this.C=0|r,this.D=0|n,this.E=0|i,this.F=0|s,this.G=0|o,this.H=0|a}process(t,e){for(let r=0;r<16;r++,e+=4)gs[r]=t.getUint32(e,!1);for(let t=16;t<64;t++){const e=gs[t-15],r=gs[t-2],n=wt(e,7)^wt(e,18)^e>>>3,i=wt(r,17)^wt(r,19)^r>>>10;gs[t]=i+gs[t-7]+n+gs[t-16]|0}let{A:r,B:n,C:i,D:s,E:o,F:a,G:u,H:c}=this;for(let t=0;t<64;t++){const e=c+(wt(o,6)^wt(o,11)^wt(o,25))+hs(o,a,u)+ds[t]+gs[t]|0,l=(wt(r,2)^wt(r,13)^wt(r,22))+fs(r,n,i)|0;c=u,u=a,a=o,o=s+e|0,s=i,i=n,n=r,r=e+l|0}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,u=u+this.G|0,c=c+this.H|0,this.set(r,n,i,s,o,a,u,c)}roundClean(){gs.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const ys=vt(()=>new ms),[ws,bs]=(()=>pt.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))))(),As=new Uint32Array(80),vs=new Uint32Array(80);class Es extends ls{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:e,Bh:r,Bl:n,Ch:i,Cl:s,Dh:o,Dl:a,Eh:u,El:c,Fh:l,Fl:h,Gh:f,Gl:d,Hh:p,Hl:g}=this;return[t,e,r,n,i,s,o,a,u,c,l,h,f,d,p,g]}set(t,e,r,n,i,s,o,a,u,c,l,h,f,d,p,g){this.Ah=0|t,this.Al=0|e,this.Bh=0|r,this.Bl=0|n,this.Ch=0|i,this.Cl=0|s,this.Dh=0|o,this.Dl=0|a,this.Eh=0|u,this.El=0|c,this.Fh=0|l,this.Fl=0|h,this.Gh=0|f,this.Gl=0|d,this.Hh=0|p,this.Hl=0|g}process(t,e){for(let r=0;r<16;r++,e+=4)As[r]=t.getUint32(e),vs[r]=t.getUint32(e+=4);for(let t=16;t<80;t++){const e=0|As[t-15],r=0|vs[t-15],n=pt.rotrSH(e,r,1)^pt.rotrSH(e,r,8)^pt.shrSH(e,r,7),i=pt.rotrSL(e,r,1)^pt.rotrSL(e,r,8)^pt.shrSL(e,r,7),s=0|As[t-2],o=0|vs[t-2],a=pt.rotrSH(s,o,19)^pt.rotrBH(s,o,61)^pt.shrSH(s,o,6),u=pt.rotrSL(s,o,19)^pt.rotrBL(s,o,61)^pt.shrSL(s,o,6),c=pt.add4L(i,u,vs[t-7],vs[t-16]),l=pt.add4H(c,n,a,As[t-7],As[t-16]);As[t]=0|l,vs[t]=0|c}let{Ah:r,Al:n,Bh:i,Bl:s,Ch:o,Cl:a,Dh:u,Dl:c,Eh:l,El:h,Fh:f,Fl:d,Gh:p,Gl:g,Hh:m,Hl:y}=this;for(let t=0;t<80;t++){const e=pt.rotrSH(l,h,14)^pt.rotrSH(l,h,18)^pt.rotrBH(l,h,41),w=pt.rotrSL(l,h,14)^pt.rotrSL(l,h,18)^pt.rotrBL(l,h,41),b=l&f^~l&p,A=h&d^~h&g,v=pt.add5L(y,w,A,bs[t],vs[t]),E=pt.add5H(v,m,e,b,ws[t],As[t]),_=0|v,x=pt.rotrSH(r,n,28)^pt.rotrBH(r,n,34)^pt.rotrBH(r,n,39),C=pt.rotrSL(r,n,28)^pt.rotrBL(r,n,34)^pt.rotrBL(r,n,39),N=r&i^r&o^i&o,B=n&s^n&a^s&a;m=0|p,y=0|g,p=0|f,g=0|d,f=0|l,d=0|h,({h:l,l:h}=pt.add(0|u,0|c,0|E,0|_)),u=0|o,c=0|a,o=0|i,a=0|s,i=0|r,s=0|n;const P=pt.add3L(_,C,B);r=pt.add3H(P,E,x,N),n=0|P}({h:r,l:n}=pt.add(0|this.Ah,0|this.Al,0|r,0|n)),({h:i,l:s}=pt.add(0|this.Bh,0|this.Bl,0|i,0|s)),({h:o,l:a}=pt.add(0|this.Ch,0|this.Cl,0|o,0|a)),({h:u,l:c}=pt.add(0|this.Dh,0|this.Dl,0|u,0|c)),({h:l,l:h}=pt.add(0|this.Eh,0|this.El,0|l,0|h)),({h:f,l:d}=pt.add(0|this.Fh,0|this.Fl,0|f,0|d)),({h:p,l:g}=pt.add(0|this.Gh,0|this.Gl,0|p,0|g)),({h:m,l:y}=pt.add(0|this.Hh,0|this.Hl,0|m,0|y)),this.set(r,n,i,s,o,a,u,c,l,h,f,d,p,g,m,y)}roundClean(){As.fill(0),vs.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const _s=vt(()=>new Es),xs=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")}();function Cs(t){switch(t){case"sha256":return ys.create();case"sha512":return _s.create()}f(!1,"invalid hashing algorithm name","algorithm",t)}xs.crypto||xs.msCrypto;const Ns=function(t){return Cs("sha256").update(t).digest()},Bs=function(t){return Cs("sha512").update(t).digest()};let Ps=Ns,Is=Bs,ks=!1,Os=!1;function Ms(t){const e=y(t,"data");return E(Ps(e))}function Ts(t){const e=y(t,"data");return E(Is(e))}Ms._=Ns,Ms.lock=function(){ks=!0},Ms.register=function(t){if(ks)throw new Error("sha256 is locked");Ps=t},Object.freeze(Ms),Ts._=Bs,Ts.lock=function(){Os=!0},Ts.register=function(t){if(Os)throw new Error("sha512 is locked");Is=t},Object.freeze(Ms),BigInt(0);const Ss=BigInt(1),Rs=BigInt(2),Ds=t=>t instanceof Uint8Array,Fs=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Ls(t){if(!Ds(t))throw new Error("Uint8Array expected");let e="";for(let r=0;r<t.length;r++)e+=Fs[t[r]];return e}function Us(t){if("string"!=typeof t)throw new Error("hex string expected, got "+typeof t);return BigInt(""===t?"0":`0x${t}`)}function Gs(t){if("string"!=typeof t)throw new Error("hex string expected, got "+typeof t);const e=t.length;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(e/2);for(let e=0;e<r.length;e++){const n=2*e,i=t.slice(n,n+2),s=Number.parseInt(i,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");r[e]=s}return r}function Hs(t){return Us(Ls(t))}function qs(t){if(!Ds(t))throw new Error("Uint8Array expected");return Us(Ls(Uint8Array.from(t).reverse()))}function zs(t,e){return Gs(t.toString(16).padStart(2*e,"0"))}function js(t,e){return zs(t,e).reverse()}function Qs(t,e,r){let n;if("string"==typeof e)try{n=Gs(e)}catch(r){throw new Error(`${t} must be valid hex string, got "${e}". Cause: ${r}`)}else{if(!Ds(e))throw new Error(`${t} must be hex string or Uint8Array`);n=Uint8Array.from(e)}const i=n.length;if("number"==typeof r&&i!==r)throw new Error(`${t} expected ${r} bytes, got ${i}`);return n}function Vs(...t){const e=new Uint8Array(t.reduce((t,e)=>t+e.length,0));let r=0;return t.forEach(t=>{if(!Ds(t))throw new Error("Uint8Array expected");e.set(t,r),r+=t.length}),e}const Js=t=>(Rs<<BigInt(t-1))-Ss,Ks=t=>new Uint8Array(t),Ws=t=>Uint8Array.from(t);function Zs(t,e,r){if("number"!=typeof t||t<2)throw new Error("hashLen must be a number");if("number"!=typeof e||e<2)throw new Error("qByteLen must be a number");if("function"!=typeof r)throw new Error("hmacFn must be a function");let n=Ks(t),i=Ks(t),s=0;const o=()=>{n.fill(1),i.fill(0),s=0},a=(...t)=>r(i,n,...t),u=(t=Ks())=>{i=a(Ws([0]),t),n=a(),0!==t.length&&(i=a(Ws([1]),t),n=a())},c=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let t=0;const r=[];for(;t<e;){n=a();const e=n.slice();r.push(e),t+=n.length}return Vs(...r)};return(t,e)=>{let r;for(o(),u(t);!(r=e(c()));)u();return o(),r}}const Xs={bigint:t=>"bigint"==typeof t,function:t=>"function"==typeof t,boolean:t=>"boolean"==typeof t,string:t=>"string"==typeof t,stringOrUint8Array:t=>"string"==typeof t||t instanceof Uint8Array,isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>"function"==typeof t&&Number.isSafeInteger(t.outputLen)};function Ys(t,e,r={}){const n=(e,r,n)=>{const i=Xs[r];if("function"!=typeof i)throw new Error(`Invalid validator "${r}", expected function`);const s=t[e];if(!(n&&void 0===s||i(s,t)))throw new Error(`Invalid param ${String(e)}=${s} (${typeof s}), expected ${r}`)};for(const[t,r]of Object.entries(e))n(t,r,!1);for(const[t,e]of Object.entries(r))n(t,e,!0);return t}const $s=BigInt(0),to=BigInt(1),eo=BigInt(2),ro=BigInt(3),no=BigInt(4),io=BigInt(5),so=BigInt(8);function oo(t,e){const r=t%e;return r>=$s?r:e+r}function ao(t,e,r){if(r<=$s||e<$s)throw new Error("Expected power/modulo > 0");if(r===to)return $s;let n=to;for(;e>$s;)e&to&&(n=n*t%r),t=t*t%r,e>>=to;return n}function uo(t,e,r){let n=t;for(;e-- >$s;)n*=n,n%=r;return n}function co(t,e){if(t===$s||e<=$s)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=oo(t,e),n=e,i=$s,s=to,o=to,a=$s;for(;r!==$s;){const t=n/r,e=n%r,u=i-o*t,c=s-a*t;n=r,r=e,i=o,s=a,o=u,a=c}if(n!==to)throw new Error("invert: does not exist");return oo(i,e)}BigInt(9),BigInt(16);const lo=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ho(t,e){const r=void 0!==e?e:t.toString(2).length;return{nBitLength:r,nByteLength:Math.ceil(r/8)}}function fo(t){if("bigint"!=typeof t)throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function po(t){const e=fo(t);return e+Math.ceil(e/2)}class go extends At{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,function(t){if("function"!=typeof t||"function"!=typeof t.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");rt(t.outputLen),rt(t.blockLen)}(t);const r=bt(e);if(this.iHash=t.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const n=this.blockLen,i=new Uint8Array(n);i.set(r.length>n?t.create().update(r).digest():r);for(let t=0;t<i.length;t++)i[t]^=54;this.iHash.update(i),this.oHash=t.create();for(let t=0;t<i.length;t++)i[t]^=106;this.oHash.update(i),i.fill(0)}update(t){return it(this),this.iHash.update(t),this}digestInto(t){it(this),nt(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){const t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));const{oHash:e,iHash:r,finished:n,destroyed:i,blockLen:s,outputLen:o}=this;return t.finished=n,t.destroyed=i,t.blockLen=s,t.outputLen=o,t.oHash=e._cloneInto(t.oHash),t.iHash=r._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const mo=(t,e,r)=>new go(t,e).update(r).digest();mo.create=(t,e)=>new go(t,e);const yo=BigInt(0),wo=BigInt(1);function bo(t){return Ys(t.Fp,lo.reduce((t,e)=>(t[e]="function",t),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"})),Ys(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...ho(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}const{Ph:Ao,aT:vo}=e,Eo={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(t){const{Err:e}=Eo;if(t.length<2||2!==t[0])throw new e("Invalid signature integer tag");const r=t[1],n=t.subarray(2,r+2);if(!r||n.length!==r)throw new e("Invalid signature integer: wrong length");if(128&n[0])throw new e("Invalid signature integer: negative");if(0===n[0]&&!(128&n[1]))throw new e("Invalid signature integer: unnecessary leading zero");return{d:Ao(n),l:t.subarray(r+2)}},toSig(t){const{Err:e}=Eo,r="string"==typeof t?vo(t):t;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||48!=r[0])throw new e("Invalid signature tag");if(r[1]!==n-2)throw new e("Invalid signature: incorrect length");const{d:i,l:s}=Eo._parseInt(r.subarray(2)),{d:o,l:a}=Eo._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(t){const e=t=>8&Number.parseInt(t[0],16)?"00"+t:t,r=t=>{const e=t.toString(16);return 1&e.length?`0${e}`:e},n=e(r(t.s)),i=e(r(t.r)),s=n.length/2,o=i.length/2,a=r(s),u=r(o);return`30${r(o+s+4)}02${u}${i}02${a}${n}`}},_o=BigInt(0),xo=BigInt(1),Co=(BigInt(2),BigInt(3));function No(t){const e=function(t){const e=bo(t);return Ys(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}(t),{Fp:r,n}=e,i=r.BYTES+1,s=2*r.BYTES+1;function o(t){return oo(t,n)}function a(t){return co(t,n)}const{ProjectivePoint:u,normPrivateKeyToScalar:c,weierstrassEquation:l,isWithinCurveOrder:h}=function(t){const e=function(t){const e=bo(t);Ys(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:r,Fp:n,a:i}=e;if(r){if(!n.eql(i,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof r||"bigint"!=typeof r.beta||"function"!=typeof r.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}(t),{Fp:r}=e,n=e.toBytes||((t,e,n)=>{const i=e.toAffine();return Vs(Uint8Array.from([4]),r.toBytes(i.x),r.toBytes(i.y))}),i=e.fromBytes||(t=>{const e=t.subarray(1);return{x:r.fromBytes(e.subarray(0,r.BYTES)),y:r.fromBytes(e.subarray(r.BYTES,2*r.BYTES))}});function s(t){const{a:n,b:i}=e,s=r.sqr(t),o=r.mul(s,t);return r.add(r.add(o,r.mul(t,n)),i)}if(!r.eql(r.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function o(t){return"bigint"==typeof t&&_o<t&&t<e.n}function a(t){if(!o(t))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function u(t){const{allowedPrivateKeyLengths:r,nByteLength:n,wrapPrivateKey:i,n:s}=e;if(r&&"bigint"!=typeof t){if(t instanceof Uint8Array&&(t=Ls(t)),"string"!=typeof t||!r.includes(t.length))throw new Error("Invalid key");t=t.padStart(2*n,"0")}let o;try{o="bigint"==typeof t?t:Hs(Qs("private key",t,n))}catch(e){throw new Error(`private key must be ${n} bytes, hex or bigint, not ${typeof t}`)}return i&&(o=oo(o,s)),a(o),o}const c=new Map;function l(t){if(!(t instanceof h))throw new Error("ProjectivePoint expected")}class h{constructor(t,e,n){if(this.px=t,this.py=e,this.pz=n,null==t||!r.isValid(t))throw new Error("x required");if(null==e||!r.isValid(e))throw new Error("y required");if(null==n||!r.isValid(n))throw new Error("z required")}static fromAffine(t){const{x:e,y:n}=t||{};if(!t||!r.isValid(e)||!r.isValid(n))throw new Error("invalid affine point");if(t instanceof h)throw new Error("projective point not allowed");const i=t=>r.eql(t,r.ZERO);return i(e)&&i(n)?h.ZERO:new h(e,n,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(t){const e=r.invertBatch(t.map(t=>t.pz));return t.map((t,r)=>t.toAffine(e[r])).map(h.fromAffine)}static fromHex(t){const e=h.fromAffine(i(Qs("pointHex",t)));return e.assertValidity(),e}static fromPrivateKey(t){return h.BASE.multiply(u(t))}_setWindowSize(t){this._WINDOW_SIZE=t,c.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:t,y:n}=this.toAffine();if(!r.isValid(t)||!r.isValid(n))throw new Error("bad point: x or y not FE");const i=r.sqr(n),o=s(t);if(!r.eql(i,o))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:t}=this.toAffine();if(r.isOdd)return!r.isOdd(t);throw new Error("Field doesn't support isOdd")}equals(t){l(t);const{px:e,py:n,pz:i}=this,{px:s,py:o,pz:a}=t,u=r.eql(r.mul(e,a),r.mul(s,i)),c=r.eql(r.mul(n,a),r.mul(o,i));return u&&c}negate(){return new h(this.px,r.neg(this.py),this.pz)}double(){const{a:t,b:n}=e,i=r.mul(n,Co),{px:s,py:o,pz:a}=this;let u=r.ZERO,c=r.ZERO,l=r.ZERO,f=r.mul(s,s),d=r.mul(o,o),p=r.mul(a,a),g=r.mul(s,o);return g=r.add(g,g),l=r.mul(s,a),l=r.add(l,l),u=r.mul(t,l),c=r.mul(i,p),c=r.add(u,c),u=r.sub(d,c),c=r.add(d,c),c=r.mul(u,c),u=r.mul(g,u),l=r.mul(i,l),p=r.mul(t,p),g=r.sub(f,p),g=r.mul(t,g),g=r.add(g,l),l=r.add(f,f),f=r.add(l,f),f=r.add(f,p),f=r.mul(f,g),c=r.add(c,f),p=r.mul(o,a),p=r.add(p,p),f=r.mul(p,g),u=r.sub(u,f),l=r.mul(p,d),l=r.add(l,l),l=r.add(l,l),new h(u,c,l)}add(t){l(t);const{px:n,py:i,pz:s}=this,{px:o,py:a,pz:u}=t;let c=r.ZERO,f=r.ZERO,d=r.ZERO;const p=e.a,g=r.mul(e.b,Co);let m=r.mul(n,o),y=r.mul(i,a),w=r.mul(s,u),b=r.add(n,i),A=r.add(o,a);b=r.mul(b,A),A=r.add(m,y),b=r.sub(b,A),A=r.add(n,s);let v=r.add(o,u);return A=r.mul(A,v),v=r.add(m,w),A=r.sub(A,v),v=r.add(i,s),c=r.add(a,u),v=r.mul(v,c),c=r.add(y,w),v=r.sub(v,c),d=r.mul(p,A),c=r.mul(g,w),d=r.add(c,d),c=r.sub(y,d),d=r.add(y,d),f=r.mul(c,d),y=r.add(m,m),y=r.add(y,m),w=r.mul(p,w),A=r.mul(g,A),y=r.add(y,w),w=r.sub(m,w),w=r.mul(p,w),A=r.add(A,w),m=r.mul(y,A),f=r.add(f,m),m=r.mul(v,A),c=r.mul(b,c),c=r.sub(c,m),m=r.mul(b,y),d=r.mul(v,d),d=r.add(d,m),new h(c,f,d)}subtract(t){return this.add(t.negate())}is0(){return this.equals(h.ZERO)}wNAF(t){return d.wNAFCached(this,c,t,t=>{const e=r.invertBatch(t.map(t=>t.pz));return t.map((t,r)=>t.toAffine(e[r])).map(h.fromAffine)})}multiplyUnsafe(t){const n=h.ZERO;if(t===_o)return n;if(a(t),t===xo)return this;const{endo:i}=e;if(!i)return d.unsafeLadder(this,t);let{k1neg:s,k1:o,k2neg:u,k2:c}=i.splitScalar(t),l=n,f=n,p=this;for(;o>_o||c>_o;)o&xo&&(l=l.add(p)),c&xo&&(f=f.add(p)),p=p.double(),o>>=xo,c>>=xo;return s&&(l=l.negate()),u&&(f=f.negate()),f=new h(r.mul(f.px,i.beta),f.py,f.pz),l.add(f)}multiply(t){a(t);let n,i,s=t;const{endo:o}=e;if(o){const{k1neg:t,k1:e,k2neg:a,k2:u}=o.splitScalar(s);let{p:c,f:l}=this.wNAF(e),{p:f,f:p}=this.wNAF(u);c=d.constTimeNegate(t,c),f=d.constTimeNegate(a,f),f=new h(r.mul(f.px,o.beta),f.py,f.pz),n=c.add(f),i=l.add(p)}else{const{p:t,f:e}=this.wNAF(s);n=t,i=e}return h.normalizeZ([n,i])[0]}multiplyAndAddUnsafe(t,e,r){const n=h.BASE,i=(t,e)=>e!==_o&&e!==xo&&t.equals(n)?t.multiply(e):t.multiplyUnsafe(e),s=i(this,e).add(i(t,r));return s.is0()?void 0:s}toAffine(t){const{px:e,py:n,pz:i}=this,s=this.is0();null==t&&(t=s?r.ONE:r.inv(i));const o=r.mul(e,t),a=r.mul(n,t),u=r.mul(i,t);if(s)return{x:r.ZERO,y:r.ZERO};if(!r.eql(u,r.ONE))throw new Error("invZ was invalid");return{x:o,y:a}}isTorsionFree(){const{h:t,isTorsionFree:r}=e;if(t===xo)return!0;if(r)return r(h,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:t,clearCofactor:r}=e;return t===xo?this:r?r(h,this):this.multiplyUnsafe(e.h)}toRawBytes(t=!0){return this.assertValidity(),n(h,this,t)}toHex(t=!0){return Ls(this.toRawBytes(t))}}h.BASE=new h(e.Gx,e.Gy,r.ONE),h.ZERO=new h(r.ZERO,r.ONE,r.ZERO);const f=e.nBitLength,d=function(t,e){const r=(t,e)=>{const r=e.negate();return t?r:e},n=t=>({windows:Math.ceil(e/t)+1,windowSize:2**(t-1)});return{constTimeNegate:r,unsafeLadder(e,r){let n=t.ZERO,i=e;for(;r>yo;)r&wo&&(n=n.add(i)),i=i.double(),r>>=wo;return n},precomputeWindow(t,e){const{windows:r,windowSize:i}=n(e),s=[];let o=t,a=o;for(let t=0;t<r;t++){a=o,s.push(a);for(let t=1;t<i;t++)a=a.add(o),s.push(a);o=a.double()}return s},wNAF(e,i,s){const{windows:o,windowSize:a}=n(e);let u=t.ZERO,c=t.BASE;const l=BigInt(2**e-1),h=2**e,f=BigInt(e);for(let t=0;t<o;t++){const e=t*a;let n=Number(s&l);s>>=f,n>a&&(n-=h,s+=wo);const o=e,d=e+Math.abs(n)-1,p=t%2!=0,g=n<0;0===n?c=c.add(r(p,i[o])):u=u.add(r(g,i[d]))}return{p:u,f:c}},wNAFCached(t,e,r,n){const i=t._WINDOW_SIZE||1;let s=e.get(t);return s||(s=this.precomputeWindow(t,i),1!==i&&e.set(t,n(s))),this.wNAF(i,s,r)}}}(h,e.endo?Math.ceil(f/2):f);return{CURVE:e,ProjectivePoint:h,normPrivateKeyToScalar:u,weierstrassEquation:s,isWithinCurveOrder:o}}({...e,toBytes(t,e,n){const i=e.toAffine(),s=r.toBytes(i.x),o=Vs;return n?o(Uint8Array.from([e.hasEvenY()?2:3]),s):o(Uint8Array.from([4]),s,r.toBytes(i.y))},fromBytes(t){const e=t.length,n=t[0],o=t.subarray(1);if(e!==i||2!==n&&3!==n){if(e===s&&4===n)return{x:r.fromBytes(o.subarray(0,r.BYTES)),y:r.fromBytes(o.subarray(r.BYTES,2*r.BYTES))};throw new Error(`Point of length ${e} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}{const t=Hs(o);if(!(_o<(a=t)&&a<r.ORDER))throw new Error("Point is not on curve");const e=l(t);let i=r.sqrt(e);return!(1&~n)!=((i&xo)===xo)&&(i=r.neg(i)),{x:t,y:i}}var a}}),f=t=>Ls(zs(t,e.nByteLength));function d(t){return t>n>>xo}const p=(t,e,r)=>Hs(t.slice(e,r));class g{constructor(t,e,r){this.r=t,this.s=e,this.recovery=r,this.assertValidity()}static fromCompact(t){const r=e.nByteLength;return t=Qs("compactSignature",t,2*r),new g(p(t,0,r),p(t,r,2*r))}static fromDER(t){const{r:e,s:r}=Eo.toSig(Qs("DER",t));return new g(e,r)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(t){return new g(this.r,this.s,t)}recoverPublicKey(t){const{r:n,s:i,recovery:s}=this,c=b(Qs("msgHash",t));if(null==s||![0,1,2,3].includes(s))throw new Error("recovery id invalid");const l=2===s||3===s?n+e.n:n;if(l>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");const h=1&s?"03":"02",d=u.fromHex(h+f(l)),p=a(l),g=o(-c*p),m=o(i*p),y=u.BASE.multiplyAndAddUnsafe(d,g,m);if(!y)throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return Gs(this.toDERHex())}toDERHex(){return Eo.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Gs(this.toCompactHex())}toCompactHex(){return f(this.r)+f(this.s)}}const m={isValidPrivateKey(t){try{return c(t),!0}catch(t){return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{const t=po(e.n);return function(t,e,r=!1){const n=t.length,i=fo(e),s=po(e);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);const o=oo(r?Hs(t):qs(t),e-to)+to;return r?js(o,i):zs(o,i)}(e.randomBytes(t),e.n)},precompute:(t=8,e=u.BASE)=>(e._setWindowSize(t),e.multiply(BigInt(3)),e)};function y(t){const e=t instanceof Uint8Array,r="string"==typeof t,n=(e||r)&&t.length;return e?n===i||n===s:r?n===2*i||n===2*s:t instanceof u}const w=e.bits2int||function(t){const r=Hs(t),n=8*t.length-e.nBitLength;return n>0?r>>BigInt(n):r},b=e.bits2int_modN||function(t){return o(w(t))},A=Js(e.nBitLength);function v(t){if("bigint"!=typeof t)throw new Error("bigint expected");if(!(_o<=t&&t<A))throw new Error(`bigint expected < 2^${e.nBitLength}`);return zs(t,e.nByteLength)}const E={lowS:e.lowS,prehash:!1},_={lowS:e.lowS,prehash:!1};return u.BASE._setWindowSize(8),{CURVE:e,getPublicKey:function(t,e=!0){return u.fromPrivateKey(t).toRawBytes(e)},getSharedSecret:function(t,e,r=!0){if(y(t))throw new Error("first arg must be private key");if(!y(e))throw new Error("second arg must be public key");return u.fromHex(e).multiply(c(t)).toRawBytes(r)},sign:function(t,n,i=E){const{seed:s,k2sig:l}=function(t,n,i=E){if(["recovered","canonical"].some(t=>t in i))throw new Error("sign() legacy options not supported");const{hash:s,randomBytes:l}=e;let{lowS:f,prehash:p,extraEntropy:m}=i;null==f&&(f=!0),t=Qs("msgHash",t),p&&(t=Qs("prehashed msgHash",s(t)));const y=b(t),A=c(n),_=[v(A),v(y)];if(null!=m){const t=!0===m?l(r.BYTES):m;_.push(Qs("extraEntropy",t))}const x=Vs(..._),C=y;return{seed:x,k2sig:function(t){const e=w(t);if(!h(e))return;const r=a(e),n=u.BASE.multiply(e).toAffine(),i=o(n.x);if(i===_o)return;const s=o(r*o(C+i*A));if(s===_o)return;let c=(n.x===i?0:2)|Number(n.y&xo),l=s;return f&&d(s)&&(l=function(t){return d(t)?o(-t):t}(s),c^=1),new g(i,l,c)}}}(t,n,i),f=e;return Zs(f.hash.outputLen,f.nByteLength,f.hmac)(s,l)},verify:function(t,r,n,i=_){const s=t;if(r=Qs("msgHash",r),n=Qs("publicKey",n),"strict"in i)throw new Error("options.strict was renamed to lowS");const{lowS:c,prehash:l}=i;let h,f;try{if("string"==typeof s||s instanceof Uint8Array)try{h=g.fromDER(s)}catch(t){if(!(t instanceof Eo.Err))throw t;h=g.fromCompact(s)}else{if("object"!=typeof s||"bigint"!=typeof s.r||"bigint"!=typeof s.s)throw new Error("PARSE");{const{r:t,s:e}=s;h=new g(t,e)}}f=u.fromHex(n)}catch(t){if("PARSE"===t.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(c&&h.hasHighS())return!1;l&&(r=e.hash(r));const{r:d,s:p}=h,m=b(r),y=a(p),w=o(m*y),A=o(d*y),v=u.BASE.multiplyAndAddUnsafe(f,w,A)?.toAffine();return!!v&&o(v.x)===d},ProjectivePoint:u,Signature:g,utils:m}}function Bo(t){return{hash:t,hmac:(e,...r)=>mo(t,e,function(...t){const e=new Uint8Array(t.reduce((t,e)=>t+e.length,0));let r=0;return t.forEach(t=>{if(!mt(t))throw new Error("Uint8Array expected");e.set(t,r),r+=t.length}),e}(...r)),randomBytes:Et}}BigInt(4);const Po=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Io=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ko=BigInt(1),Oo=BigInt(2),Mo=(t,e)=>(t+e/Oo)/e;const To=function(t,e,r=!1,n={}){if(t<=$s)throw new Error(`Expected Field ORDER > 0, got ${t}`);const{nBitLength:i,nByteLength:s}=ho(t,e);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");const o=function(t){if(t%no===ro){const e=(t+to)/no;return function(t,r){const n=t.pow(r,e);if(!t.eql(t.sqr(n),r))throw new Error("Cannot find square root");return n}}if(t%so===io){const e=(t-io)/so;return function(t,r){const n=t.mul(r,eo),i=t.pow(n,e),s=t.mul(r,i),o=t.mul(t.mul(s,eo),i),a=t.mul(s,t.sub(o,t.ONE));if(!t.eql(t.sqr(a),r))throw new Error("Cannot find square root");return a}}return function(t){const e=(t-to)/eo;let r,n,i;for(r=t-to,n=0;r%eo===$s;r/=eo,n++);for(i=eo;i<t&&ao(i,e,t)!==t-to;i++);if(1===n){const e=(t+to)/no;return function(t,r){const n=t.pow(r,e);if(!t.eql(t.sqr(n),r))throw new Error("Cannot find square root");return n}}const s=(r+to)/eo;return function(t,o){if(t.pow(o,e)===t.neg(t.ONE))throw new Error("Cannot find square root");let a=n,u=t.pow(t.mul(t.ONE,i),r),c=t.pow(o,s),l=t.pow(o,r);for(;!t.eql(l,t.ONE);){if(t.eql(l,t.ZERO))return t.ZERO;let e=1;for(let r=t.sqr(l);e<a&&!t.eql(r,t.ONE);e++)r=t.sqr(r);const r=t.pow(u,to<<BigInt(a-e-1));u=t.sqr(r),c=t.mul(c,r),l=t.mul(l,u),a=e}return c}}(t)}(t),a=Object.freeze({ORDER:t,BITS:i,BYTES:s,MASK:Js(i),ZERO:$s,ONE:to,create:e=>oo(e,t),isValid:e=>{if("bigint"!=typeof e)throw new Error("Invalid field element: expected bigint, got "+typeof e);return $s<=e&&e<t},is0:t=>t===$s,isOdd:t=>(t&to)===to,neg:e=>oo(-e,t),eql:(t,e)=>t===e,sqr:e=>oo(e*e,t),add:(e,r)=>oo(e+r,t),sub:(e,r)=>oo(e-r,t),mul:(e,r)=>oo(e*r,t),pow:(t,e)=>function(t,e,r){if(r<$s)throw new Error("Expected power > 0");if(r===$s)return t.ONE;if(r===to)return e;let n=t.ONE,i=e;for(;r>$s;)r&to&&(n=t.mul(n,i)),i=t.sqr(i),r>>=to;return n}(a,t,e),div:(e,r)=>oo(e*co(r,t),t),sqrN:t=>t*t,addN:(t,e)=>t+e,subN:(t,e)=>t-e,mulN:(t,e)=>t*e,inv:e=>co(e,t),sqrt:n.sqrt||(t=>o(a,t)),invertBatch:t=>function(t,e){const r=new Array(e.length),n=e.reduce((e,n,i)=>t.is0(n)?e:(r[i]=e,t.mul(e,n)),t.ONE),i=t.inv(n);return e.reduceRight((e,n,i)=>t.is0(n)?e:(r[i]=t.mul(e,r[i]),t.mul(e,n)),i),r}(a,t),cmov:(t,e,r)=>r?e:t,toBytes:t=>r?js(t,s):zs(t,s),fromBytes:t=>{if(t.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${t.length}`);return r?qs(t):Hs(t)}});return Object.freeze(a)}(Po,void 0,void 0,{sqrt:function(t){const e=Po,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),u=BigInt(88),c=t*t*t%e,l=c*c*t%e,h=uo(l,r,e)*l%e,f=uo(h,r,e)*l%e,d=uo(f,Oo,e)*c%e,p=uo(d,i,e)*d%e,g=uo(p,s,e)*p%e,m=uo(g,a,e)*g%e,y=uo(m,u,e)*m%e,w=uo(y,a,e)*g%e,b=uo(w,r,e)*l%e,A=uo(b,o,e)*p%e,v=uo(A,n,e)*c%e,E=uo(v,Oo,e);if(!To.eql(To.sqr(E),t))throw new Error("Cannot find square root");return E}}),So=function(t,e){const r=e=>No({...t,...Bo(e)});return Object.freeze({...r(e),create:r})}({a:BigInt(0),b:BigInt(7),Fp:To,n:Io,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const e=Io,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-ko*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,o=BigInt("0x100000000000000000000000000000000"),a=Mo(s*t,e),u=Mo(-n*t,e);let c=oo(t-a*r-u*i,e),l=oo(-a*n-u*s,e);const h=c>o,f=l>o;if(h&&(c=e-c),f&&(l=e-l),c>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:h,k1:c,k2neg:f,k2:l}}}},ys);BigInt(0),So.ProjectivePoint;class Ro{#nt;constructor(t){f(32===x(t),"invalid private key","privateKey","[REDACTED]"),this.#nt=E(t)}get privateKey(){return this.#nt}get publicKey(){return Ro.computePublicKey(this.#nt)}get compressedPublicKey(){return Ro.computePublicKey(this.#nt,!0)}sign(t){f(32===x(t),"invalid digest length","digest",t);const e=So.sign(w(t),w(this.#nt),{lowS:!0});return Jr.from({r:U(e.r,32),s:U(e.s,32),v:e.recovery?28:27})}computeSharedSecret(t){const e=Ro.computePublicKey(t);return E(So.getSharedSecret(w(this.#nt),y(e),!1))}static computePublicKey(t,e){let r=y(t,"key");if(32===r.length)return E(So.getPublicKey(r,!!e));if(64===r.length){const t=new Uint8Array(65);t[0]=4,t.set(r,1),r=t}return E(So.ProjectivePoint.fromHex(r).toRawBytes(e))}static recoverPublicKey(t,e){f(32===x(t),"invalid digest length","digest",t);const r=Jr.from(e);let n=So.Signature.fromCompact(w(_([r.r,r.s])));n=n.addRecoveryBit(r.yParity);const i=n.recoverPublicKey(w(t));return f(null!=i,"invalid signature for digest","signature",e),"0x"+i.toHex(!1)}static addPoints(t,e,r){const n=So.ProjectivePoint.fromHex(Ro.computePublicKey(t).substring(2)),i=So.ProjectivePoint.fromHex(Ro.computePublicKey(e).substring(2));return"0x"+n.add(i).toHex(!!r)}}function Do(t){let e=t.toString(16);for(;e.length<2;)e="0"+e;return"0x"+e}function Fo(t,e,r){let n=0;for(let i=0;i<r;i++)n=256*n+t[e+i];return n}function Lo(t,e,r,n){const i=[];for(;r<e+1+n;){const s=Uo(t,r);i.push(s.result),h((r+=s.consumed)<=e+1+n,"child data too short","BUFFER_OVERRUN",{buffer:t,length:n,offset:e})}return{consumed:1+n,result:i}}function Uo(t,e){h(0!==t.length,"data too short","BUFFER_OVERRUN",{buffer:t,length:0,offset:1});const r=e=>{h(e<=t.length,"data short segment too short","BUFFER_OVERRUN",{buffer:t,length:t.length,offset:e})};if(t[e]>=248){const n=t[e]-247;r(e+1+n);const i=Fo(t,e+1,n);return r(e+1+n+i),Lo(t,e,e+1+n,n+i)}if(t[e]>=192){const n=t[e]-192;return r(e+1+n),Lo(t,e,e+1,n)}if(t[e]>=184){const n=t[e]-183;r(e+1+n);const i=Fo(t,e+1,n);return r(e+1+n+i),{consumed:1+n+i,result:E(t.slice(e+1+n,e+1+n+i))}}if(t[e]>=128){const n=t[e]-128;return r(e+1+n),{consumed:1+n,result:E(t.slice(e+1,e+1+n))}}return{consumed:1,result:Do(t[e])}}function Go(t){const e=y(t,"data"),r=Uo(e,0);return f(r.consumed===e.length,"unexpected junk after rlp payload","data",t),r.result}function Ho(t){const e=[];for(;t;)e.unshift(255&t),t>>=8;return e}function qo(t){if(Array.isArray(t)){let e=[];if(t.forEach(function(t){e=e.concat(qo(t))}),e.length<=55)return e.unshift(192+e.length),e;const r=Ho(e.length);return r.unshift(247+r.length),r.concat(e)}const e=Array.prototype.slice.call(y(t,"object"));if(1===e.length&&e[0]<=127)return e;if(e.length<=55)return e.unshift(128+e.length),e;const r=Ho(e.length);return r.unshift(183+r.length),r.concat(e)}const zo="0123456789abcdef";function jo(t){let e="0x";for(const r of qo(t))e+=zo[r>>4],e+=zo[15&r];return e}const Qo=BigInt(0),Vo=BigInt(2),Jo=BigInt(27),Ko=BigInt(28),Wo=BigInt(35),Zo=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Xo=131072;function Yo(t,e){let r=t.toString(16);for(;r.length<2;)r="0"+r;return r+=Ms(e).substring(4),"0x"+r}function $o(t){return"0x"===t?null:Jt(t)}function ta(t,e){try{return Fr(t)}catch(r){f(!1,r.message,e,t)}}function ea(t,e){try{if(!Array.isArray(t))throw new Error("authorizationList: invalid array");const e=[];for(let r=0;r<t.length;r++){const n=t[r];if(!Array.isArray(n))throw new Error(`authorization[${r}]: invalid array`);if(6!==n.length)throw new Error(`authorization[${r}]: wrong length`);if(!n[1])throw new Error(`authorization[${r}]: null address`);e.push({address:$o(n[1]),nonce:na(n[2],"nonce"),chainId:na(n[0],"chainId"),signature:Jr.from({yParity:ra(n[3],"yParity"),r:B(n[4],32),s:B(n[5],32)})})}return e}catch(r){f(!1,r.message,e,t)}}function ra(t,e){return"0x"===t?0:L(t,e)}function na(t,e){if("0x"===t)return Qo;const r=S(t,e);return f(r<=Zo,"value exceeds uint size",e,r),r}function ia(t,e){const r=S(t,"value"),n=G(r);return f(n.length<=32,"value too large",`tx.${e}`,r),n}function sa(t){return Fr(t).map(t=>[t.address,t.storageKeys])}function oa(t,e){f(Array.isArray(t),`invalid ${e}`,"value",t);for(let e=0;e<t.length;e++)f(b(t[e],32),"invalid ${ param } hash",`value[${e}]`,t[e]);return t}function aa(t,e){let r;try{if(r=ra(e[0],"yParity"),0!==r&&1!==r)throw new Error("bad yParity")}catch(t){f(!1,"invalid yParity","yParity",e[0])}const n=B(e[1],32),i=B(e[2],32),s=Jr.from({r:n,s:i,yParity:r});t.signature=s}class ua{#it;#st;#e;#ot;#at;#ut;#ct;#lt;#ht;#ft;#dt;#pt;#gt;#mt;#yt;#wt;#bt;get type(){return this.#it}set type(t){switch(t){case null:this.#it=null;break;case 0:case"legacy":this.#it=0;break;case 1:case"berlin":case"eip-2930":this.#it=1;break;case 2:case"london":case"eip-1559":this.#it=2;break;case 3:case"cancun":case"eip-4844":this.#it=3;break;case 4:case"pectra":case"eip-7702":this.#it=4;break;default:f(!1,"unsupported transaction type","type",t)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844";case 4:return"eip-7702"}return null}get to(){const t=this.#st;return null==t&&3===this.type?ln:t}set to(t){this.#st=null==t?null:Jt(t)}get nonce(){return this.#ot}set nonce(t){this.#ot=L(t,"value")}get gasLimit(){return this.#at}set gasLimit(t){this.#at=S(t)}get gasPrice(){const t=this.#ut;return null!=t||0!==this.type&&1!==this.type?t:Qo}set gasPrice(t){this.#ut=null==t?null:S(t,"gasPrice")}get maxPriorityFeePerGas(){const t=this.#ct;return null==t?2===this.type||3===this.type?Qo:null:t}set maxPriorityFeePerGas(t){this.#ct=null==t?null:S(t,"maxPriorityFeePerGas")}get maxFeePerGas(){const t=this.#lt;return null==t?2===this.type||3===this.type?Qo:null:t}set maxFeePerGas(t){this.#lt=null==t?null:S(t,"maxFeePerGas")}get data(){return this.#e}set data(t){this.#e=E(t)}get value(){return this.#ht}set value(t){this.#ht=S(t,"value")}get chainId(){return this.#ft}set chainId(t){this.#ft=S(t)}get signature(){return this.#dt||null}set signature(t){this.#dt=null==t?null:Jr.from(t)}get accessList(){const t=this.#pt||null;return null==t?1===this.type||2===this.type||3===this.type?[]:null:t}set accessList(t){this.#pt=null==t?null:Fr(t)}get authorizationList(){const t=this.#bt||null;return null==t&&4===this.type?[]:t}set authorizationList(t){this.#bt=null==t?null:t.map(t=>Kr(t))}get maxFeePerBlobGas(){const t=this.#gt;return null==t&&3===this.type?Qo:t}set maxFeePerBlobGas(t){this.#gt=null==t?null:S(t,"maxFeePerBlobGas")}get blobVersionedHashes(){let t=this.#mt;return null==t&&3===this.type?[]:t}set blobVersionedHashes(t){if(null!=t){f(Array.isArray(t),"blobVersionedHashes must be an Array","value",t),t=t.slice();for(let e=0;e<t.length;e++)f(b(t[e],32),"invalid blobVersionedHash",`value[${e}]`,t[e])}this.#mt=t}get blobs(){return null==this.#wt?null:this.#wt.map(t=>Object.assign({},t))}set blobs(t){if(null==t)return void(this.#wt=null);const e=[],r=[];for(let n=0;n<t.length;n++){const i=t[n];if(A(i)){h(this.#yt,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let t=y(i);if(f(t.length<=Xo,"blob is too large",`blobs[${n}]`,i),t.length!==Xo){const e=new Uint8Array(Xo);e.set(t),t=e}const s=this.#yt.blobToKzgCommitment(t),o=E(this.#yt.computeBlobKzgProof(t,s));e.push({data:E(t),commitment:E(s),proof:o}),r.push(Yo(1,s))}else{const t=E(i.commitment);e.push({data:E(i.data),commitment:t,proof:E(i.proof)}),r.push(Yo(1,t))}}this.#wt=e,this.#mt=r}get kzg(){return this.#yt}set kzg(t){this.#yt=null==t?null:function(t){return{blobToKzgCommitment:e=>{if("computeBlobProof"in t){if("blobToKzgCommitment"in t&&"function"==typeof t.blobToKzgCommitment)return y(t.blobToKzgCommitment(E(e)))}else if("blobToKzgCommitment"in t&&"function"==typeof t.blobToKzgCommitment)return y(t.blobToKzgCommitment(e));if("blobToKZGCommitment"in t&&"function"==typeof t.blobToKZGCommitment)return y(t.blobToKZGCommitment(E(e)));f(!1,"unsupported KZG library","kzg",t)},computeBlobKzgProof:(e,r)=>"computeBlobProof"in t&&"function"==typeof t.computeBlobProof?y(t.computeBlobProof(E(e),E(r))):"computeBlobKzgProof"in t&&"function"==typeof t.computeBlobKzgProof?t.computeBlobKzgProof(e,r):"computeBlobKZGProof"in t&&"function"==typeof t.computeBlobKZGProof?y(t.computeBlobKZGProof(E(e),E(r))):void f(!1,"unsupported KZG library","kzg",t)}}(t)}constructor(){this.#it=null,this.#st=null,this.#ot=0,this.#at=Qo,this.#ut=null,this.#ct=null,this.#lt=null,this.#e="0x",this.#ht=Qo,this.#ft=Qo,this.#dt=null,this.#pt=null,this.#gt=null,this.#mt=null,this.#yt=null,this.#wt=null,this.#bt=null}get hash(){return null==this.signature?null:Ht(this.#At(!0,!1))}get unsignedHash(){return Ht(this.unsignedSerialized)}get from(){return null==this.signature?null:(t=this.unsignedHash,e=this.signature,function(t){let e;return e="string"==typeof t?Ro.computePublicKey(t,!1):t.publicKey,Jt(Ht("0x"+e.substring(4)).substring(26))}(Ro.recoverPublicKey(t,e)));var t,e}get fromPublicKey(){return null==this.signature?null:Ro.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return null!=this.signature}#At(t,e){h(!t||null!=this.signature,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});const r=t?this.signature:null;switch(this.inferType()){case 0:return function(t,e){const r=[ia(t.nonce,"nonce"),ia(t.gasPrice||0,"gasPrice"),ia(t.gasLimit,"gasLimit"),t.to||"0x",ia(t.value,"value"),t.data];let n=Qo;if(t.chainId!=Qo)n=S(t.chainId,"tx.chainId"),f(!e||null==e.networkV||e.legacyChainId===n,"tx.chainId/sig.v mismatch","sig",e);else if(t.signature){const e=t.signature.legacyChainId;null!=e&&(n=e)}if(!e)return n!==Qo&&(r.push(G(n)),r.push("0x"),r.push("0x")),jo(r);let i=BigInt(27+e.yParity);return n!==Qo?i=Jr.getChainIdV(n,e.v):BigInt(e.v)!==i&&f(!1,"tx.chainId/sig.v mismatch","sig",e),r.push(G(i)),r.push(G(e.r)),r.push(G(e.s)),jo(r)}(this,r);case 1:return function(t,e){const r=[ia(t.chainId,"chainId"),ia(t.nonce,"nonce"),ia(t.gasPrice||0,"gasPrice"),ia(t.gasLimit,"gasLimit"),t.to||"0x",ia(t.value,"value"),t.data,sa(t.accessList||[])];return e&&(r.push(ia(e.yParity,"recoveryParam")),r.push(G(e.r)),r.push(G(e.s))),_(["0x01",jo(r)])}(this,r);case 2:return function(t,e){const r=[ia(t.chainId,"chainId"),ia(t.nonce,"nonce"),ia(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),ia(t.maxFeePerGas||0,"maxFeePerGas"),ia(t.gasLimit,"gasLimit"),t.to||"0x",ia(t.value,"value"),t.data,sa(t.accessList||[])];return e&&(r.push(ia(e.yParity,"yParity")),r.push(G(e.r)),r.push(G(e.s))),_(["0x02",jo(r)])}(this,r);case 3:return function(t,e,r){const n=[ia(t.chainId,"chainId"),ia(t.nonce,"nonce"),ia(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),ia(t.maxFeePerGas||0,"maxFeePerGas"),ia(t.gasLimit,"gasLimit"),t.to||ln,ia(t.value,"value"),t.data,sa(t.accessList||[]),ia(t.maxFeePerBlobGas||0,"maxFeePerBlobGas"),oa(t.blobVersionedHashes||[],"blobVersionedHashes")];return e&&(n.push(ia(e.yParity,"yParity")),n.push(G(e.r)),n.push(G(e.s)),r)?_(["0x03",jo([n,r.map(t=>t.data),r.map(t=>t.commitment),r.map(t=>t.proof)])]):_(["0x03",jo(n)])}(this,r,e?this.blobs:null);case 4:return function(t,e){const r=[ia(t.chainId,"chainId"),ia(t.nonce,"nonce"),ia(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),ia(t.maxFeePerGas||0,"maxFeePerGas"),ia(t.gasLimit,"gasLimit"),t.to||"0x",ia(t.value,"value"),t.data,sa(t.accessList||[]),(n=t.authorizationList||[],n.map(t=>[ia(t.chainId,"chainId"),t.address,ia(t.nonce,"nonce"),ia(t.signature.yParity,"yParity"),G(t.signature.r),G(t.signature.s)]))];var n;return e&&(r.push(ia(e.yParity,"yParity")),r.push(G(e.r)),r.push(G(e.s))),_(["0x04",jo(r)])}(this,r)}h(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#At(!0,!0)}get unsignedSerialized(){return this.#At(!1,!1)}inferType(){const t=this.inferTypes();return t.indexOf(2)>=0?2:t.pop()}inferTypes(){const t=null!=this.gasPrice,e=null!=this.maxFeePerGas||null!=this.maxPriorityFeePerGas,r=null!=this.accessList,n=null!=this.#gt||this.#mt;null!=this.maxFeePerGas&&null!=this.maxPriorityFeePerGas&&h(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),h(!e||0!==this.type&&1!==this.type,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),h(0!==this.type||!r,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const i=[];return null!=this.type?i.push(this.type):this.authorizationList&&this.authorizationList.length?i.push(4):e?i.push(2):t?(i.push(1),r||i.push(0)):r?(i.push(1),i.push(2)):(n&&this.to||(i.push(0),i.push(1),i.push(2)),i.push(3)),i.sort(),i}isLegacy(){return 0===this.type}isBerlin(){return 1===this.type}isLondon(){return 2===this.type}isCancun(){return 3===this.type}clone(){return ua.from(this)}toJSON(){const t=t=>null==t?null:t.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:t(this.gasLimit),gasPrice:t(this.gasPrice),maxPriorityFeePerGas:t(this.maxPriorityFeePerGas),maxFeePerGas:t(this.maxFeePerGas),value:t(this.value),chainId:t(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(t){if(null==t)return new ua;if("string"==typeof t){const e=y(t);if(e[0]>=127)return ua.from(function(t){const e=Go(t);f(Array.isArray(e)&&(9===e.length||6===e.length),"invalid field count for legacy transaction","data",t);const r={type:0,nonce:ra(e[0],"nonce"),gasPrice:na(e[1],"gasPrice"),gasLimit:na(e[2],"gasLimit"),to:$o(e[3]),value:na(e[4],"value"),data:E(e[5]),chainId:Qo};if(6===e.length)return r;const n=na(e[6],"v"),i=na(e[7],"r"),s=na(e[8],"s");if(i===Qo&&s===Qo)r.chainId=n;else{let t=(n-Wo)/Vo;t<Qo&&(t=Qo),r.chainId=t,f(t!==Qo||n===Jo||n===Ko,"non-canonical legacy v","v",e[6]),r.signature=Jr.from({r:B(e[7],32),s:B(e[8],32),v:n})}return r}(e));switch(e[0]){case 1:return ua.from(function(t){const e=Go(y(t).slice(1));f(Array.isArray(e)&&(8===e.length||11===e.length),"invalid field count for transaction type: 1","data",E(t));const r={type:1,chainId:na(e[0],"chainId"),nonce:ra(e[1],"nonce"),gasPrice:na(e[2],"gasPrice"),gasLimit:na(e[3],"gasLimit"),to:$o(e[4]),value:na(e[5],"value"),data:E(e[6]),accessList:ta(e[7],"accessList")};return 8===e.length||aa(r,e.slice(8)),r}(e));case 2:return ua.from(function(t){const e=Go(y(t).slice(1));f(Array.isArray(e)&&(9===e.length||12===e.length),"invalid field count for transaction type: 2","data",E(t));const r={type:2,chainId:na(e[0],"chainId"),nonce:ra(e[1],"nonce"),maxPriorityFeePerGas:na(e[2],"maxPriorityFeePerGas"),maxFeePerGas:na(e[3],"maxFeePerGas"),gasPrice:null,gasLimit:na(e[4],"gasLimit"),to:$o(e[5]),value:na(e[6],"value"),data:E(e[7]),accessList:ta(e[8],"accessList")};return 9===e.length||aa(r,e.slice(9)),r}(e));case 3:return ua.from(function(t){let e=Go(y(t).slice(1)),r="3",n=null;if(4===e.length&&Array.isArray(e[0])){r="3 (network format)";const t=e[1],i=e[2],s=e[3];f(Array.isArray(t),"invalid network format: blobs not an array","fields[1]",t),f(Array.isArray(i),"invalid network format: commitments not an array","fields[2]",i),f(Array.isArray(s),"invalid network format: proofs not an array","fields[3]",s),f(t.length===i.length,"invalid network format: blobs/commitments length mismatch","fields",e),f(t.length===s.length,"invalid network format: blobs/proofs length mismatch","fields",e),n=[];for(let r=0;r<e[1].length;r++)n.push({data:t[r],commitment:i[r],proof:s[r]});e=e[0]}f(Array.isArray(e)&&(11===e.length||14===e.length),`invalid field count for transaction type: ${r}`,"data",E(t));const i={type:3,chainId:na(e[0],"chainId"),nonce:ra(e[1],"nonce"),maxPriorityFeePerGas:na(e[2],"maxPriorityFeePerGas"),maxFeePerGas:na(e[3],"maxFeePerGas"),gasPrice:null,gasLimit:na(e[4],"gasLimit"),to:$o(e[5]),value:na(e[6],"value"),data:E(e[7]),accessList:ta(e[8],"accessList"),maxFeePerBlobGas:na(e[9],"maxFeePerBlobGas"),blobVersionedHashes:e[10]};n&&(i.blobs=n),f(null!=i.to,`invalid address for transaction type: ${r}`,"data",t),f(Array.isArray(i.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",t);for(let e=0;e<i.blobVersionedHashes.length;e++)f(b(i.blobVersionedHashes[e],32),`invalid blobVersionedHash at index ${e}: must be length 32`,"data",t);return 11===e.length||aa(i,e.slice(11)),i}(e));case 4:return ua.from(function(t){const e=Go(y(t).slice(1));f(Array.isArray(e)&&(10===e.length||13===e.length),"invalid field count for transaction type: 4","data",E(t));const r={type:4,chainId:na(e[0],"chainId"),nonce:ra(e[1],"nonce"),maxPriorityFeePerGas:na(e[2],"maxPriorityFeePerGas"),maxFeePerGas:na(e[3],"maxFeePerGas"),gasPrice:null,gasLimit:na(e[4],"gasLimit"),to:$o(e[5]),value:na(e[6],"value"),data:E(e[7]),accessList:ta(e[8],"accessList"),authorizationList:ea(e[9],"authorizationList")};return 10===e.length||aa(r,e.slice(10)),r}(e))}h(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const e=new ua;return null!=t.type&&(e.type=t.type),null!=t.to&&(e.to=t.to),null!=t.nonce&&(e.nonce=t.nonce),null!=t.gasLimit&&(e.gasLimit=t.gasLimit),null!=t.gasPrice&&(e.gasPrice=t.gasPrice),null!=t.maxPriorityFeePerGas&&(e.maxPriorityFeePerGas=t.maxPriorityFeePerGas),null!=t.maxFeePerGas&&(e.maxFeePerGas=t.maxFeePerGas),null!=t.maxFeePerBlobGas&&(e.maxFeePerBlobGas=t.maxFeePerBlobGas),null!=t.data&&(e.data=t.data),null!=t.value&&(e.value=t.value),null!=t.chainId&&(e.chainId=t.chainId),null!=t.signature&&(e.signature=Jr.from(t.signature)),null!=t.accessList&&(e.accessList=t.accessList),null!=t.authorizationList&&(e.authorizationList=t.authorizationList),null!=t.blobVersionedHashes&&(e.blobVersionedHashes=t.blobVersionedHashes),null!=t.kzg&&(e.kzg=t.kzg),null!=t.blobs&&(e.blobs=t.blobs),null!=t.hash&&(f(e.isSigned(),"unsigned transaction cannot define '.hash'","tx",t),f(e.hash===t.hash,"hash mismatch","tx",t)),null!=t.from&&(f(e.isSigned(),"unsigned transaction cannot define '.from'","tx",t),f(e.from.toLowerCase()===(t.from||"").toLowerCase(),"from mismatch","tx",t)),e}}const ca="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";BigInt(0);const la=BigInt(58);function ha(t){return t.match(/^ipfs:\/\/ipfs\//i)?t=t.substring(12):t.match(/^ipfs:\/\//i)?t=t.substring(7):f(!1,"unsupported IPFS format","link",t),`https://gateway.ipfs.io/ipfs/${t}`}class fa{name;constructor(t){o(this,{name:t})}connect(t){return this}supportsCoinType(t){return!1}async encodeAddress(t,e){throw new Error("unsupported coin")}async decodeAddress(t,e){throw new Error("unsupported coin")}}const da=new RegExp("^(ipfs)://(.*)$","i"),pa=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),da,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];class ga{provider;address;name;#vt;#Et;constructor(t,e,r){o(this,{provider:t,address:e,name:r}),this.#vt=null,this.#Et=new ni(e,["function supportsInterface(bytes4) view returns (bool)","function resolve(bytes, bytes) view returns (bytes)","function addr(bytes32) view returns (address)","function addr(bytes32, uint) view returns (bytes)","function text(bytes32, string) view returns (string)","function contenthash(bytes32) view returns (bytes)"],t)}async supportsWildcard(){return null==this.#vt&&(this.#vt=(async()=>{try{return await this.#Et.supportsInterface("0x9061b923")}catch(t){if(u(t,"CALL_EXCEPTION"))return!1;throw this.#vt=null,t}})()),await this.#vt}async#_t(t,e){e=(e||[]).slice();const r=this.#Et.interface;e.unshift(us(this.name));let n=null;await this.supportsWildcard()&&(n=r.getFunction(t),h(n,"missing fragment","UNKNOWN_ERROR",{info:{funcName:t}}),e=[cs(this.name,255),r.encodeFunctionData(n,e)],t="resolve(bytes,bytes)"),e.push({enableCcipRead:!0});try{const i=await this.#Et[t](...e);return n?r.decodeFunctionResult(n,i)[0]:i}catch(t){if(!u(t,"CALL_EXCEPTION"))throw t}return null}async getAddress(t){if(null==t&&(t=60),60===t)try{const t=await this.#_t("addr(bytes32)");return null==t||t===ln?null:t}catch(t){if(u(t,"CALL_EXCEPTION"))return null;throw t}if(t>=0&&t<2147483648){let e=t+2147483648;const r=await this.#_t("addr(bytes32,uint)",[e]);if(b(r,20))return Jt(r)}let e=null;for(const r of this.provider.plugins)if(r instanceof fa&&r.supportsCoinType(t)){e=r;break}if(null==e)return null;const r=await this.#_t("addr(bytes32,uint)",[t]);if(null==r||"0x"===r)return null;const n=await e.decodeAddress(t,r);if(null!=n)return n;h(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${t})`,info:{coinType:t,data:r}})}async getText(t){const e=await this.#_t("text(bytes32,string)",[t]);return null==e||"0x"===e?null:e}async getContentHash(){const t=await this.#_t("contenthash(bytes32)");if(null==t||"0x"===t)return null;const e=t.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(e){const t="e3010170"===e[1]?"ipfs":"ipns",r=parseInt(e[4],16);if(e[5].length===2*r)return`${t}://${function(t){const e=y(t);let r=F(e),n="";for(;r;)n=ca[Number(r%la)]+n,r/=la;for(let t=0;t<e.length&&!e[t];t++)n=ca[0]+n;return n}("0x"+e[2])}`}const r=t.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(r&&64===r[1].length)return`bzz://${r[1]}`;h(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:t}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){const t=[{type:"name",value:this.name}];try{const e=await this.getText("avatar");if(null==e)return t.push({type:"!avatar",value:""}),{url:null,linkage:t};t.push({type:"avatar",value:e});for(let r=0;r<pa.length;r++){const n=e.match(pa[r]);if(null==n)continue;const i=n[1].toLowerCase();switch(i){case"https":case"data":return t.push({type:"url",value:e}),{linkage:t,url:e};case"ipfs":{const r=ha(e);return t.push({type:"ipfs",value:e}),t.push({type:"url",value:r}),{linkage:t,url:r}}case"erc721":case"erc1155":{const r="erc721"===i?"tokenURI(uint256)":"uri(uint256)";t.push({type:i,value:e});const s=await this.getAddress();if(null==s)return t.push({type:"!owner",value:""}),{url:null,linkage:t};const o=(n[2]||"").split("/");if(2!==o.length)return t.push({type:`!${i}caip`,value:n[2]||""}),{url:null,linkage:t};const a=o[1],u=new ni(o[0],["function tokenURI(uint) view returns (string)","function ownerOf(uint) view returns (address)","function uri(uint) view returns (string)","function balanceOf(address, uint256) view returns (uint)"],this.provider);if("erc721"===i){const e=await u.ownerOf(a);if(s!==e)return t.push({type:"!owner",value:e}),{url:null,linkage:t};t.push({type:"owner",value:e})}else if("erc1155"===i){const e=await u.balanceOf(s,a);if(!e)return t.push({type:"!balance",value:"0"}),{url:null,linkage:t};t.push({type:"balance",value:e.toString()})}let c=await u[r](a);if(null==c||"0x"===c)return t.push({type:"!metadata-url",value:""}),{url:null,linkage:t};t.push({type:"metadata-url-base",value:c}),"erc1155"===i&&(c=c.replace("{id}",U(a,32).substring(2)),t.push({type:"metadata-url-expanded",value:c})),c.match(/^ipfs:/i)&&(c=ha(c)),t.push({type:"metadata-url",value:c});let l={};const h=await new an(c).send();h.assertOk();try{l=h.bodyJson}catch(e){try{t.push({type:"!metadata",value:h.bodyText})}catch(e){const r=h.body;return r&&t.push({type:"!metadata",value:E(r)}),{url:null,linkage:t}}return{url:null,linkage:t}}if(!l)return t.push({type:"!metadata",value:""}),{url:null,linkage:t};t.push({type:"metadata",value:JSON.stringify(l)});let f=l.image;if("string"!=typeof f)return t.push({type:"!imageUrl",value:""}),{url:null,linkage:t};if(f.match(/^(https:\/\/|data:)/i));else{if(null==f.match(da))return t.push({type:"!imageUrl-ipfs",value:f}),{url:null,linkage:t};t.push({type:"imageUrl-ipfs",value:f}),f=ha(f)}return t.push({type:"url",value:f}),{linkage:t,url:f}}}}}catch(t){}return{linkage:t,url:null}}static async getEnsAddress(t){const e=await t.getNetwork(),r=e.getPlugin("org.ethers.plugins.network.Ens");return h(r,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:e}}),r.address}static async#xt(t,e){const r=await ga.getEnsAddress(t);try{const n=new ni(r,["function resolver(bytes32) view returns (address)"],t),i=await n.resolver(us(e),{enableCcipRead:!0});return i===ln?null:i}catch(t){throw t}}static async fromName(t,e){let r=e;for(;;){if(""===r||"."===r)return null;if("eth"!==e&&"eth"===r)return null;const n=await ga.#xt(t,r);if(null!=n){const i=new ga(t,n,e);return r===e||await i.supportsWildcard()?i:null}r=r.split(".").slice(1).join(".")}}}const ma=BigInt(0);function ya(t,e){return function(r){return null==r?e:t(r)}}function wa(t,e){return r=>{if(e&&null==r)return null;if(!Array.isArray(r))throw new Error("not an array");return r.map(e=>t(e))}}function ba(t,e){return r=>{const n={};for(const i in t){let s=i;if(e&&i in e&&!(s in r))for(const t of e[i])if(t in r){s=t;break}try{const e=t[i](r[s]);void 0!==e&&(n[i]=e)}catch(t){h(!1,`invalid value for value.${i} (${t instanceof Error?t.message:"not-an-error"})`,"BAD_DATA",{value:r})}}return n}}function Aa(t){return f(b(t,!0),"invalid data","value",t),t}function va(t){return f(b(t,32),"invalid hash","value",t),t}const Ea=ba({address:Jt,blockHash:va,blockNumber:L,data:Aa,index:L,removed:ya(function(t){switch(t){case!0:case"true":return!0;case!1:case"false":return!1}f(!1,`invalid boolean; ${JSON.stringify(t)}`,"value",t)},!1),topics:wa(va),transactionHash:va,transactionIndex:L},{index:["logIndex"]}),_a=ba({hash:ya(va),parentHash:va,parentBeaconBlockRoot:ya(va,null),number:L,timestamp:L,nonce:ya(Aa),difficulty:S,gasLimit:S,gasUsed:S,stateRoot:ya(va,null),receiptsRoot:ya(va,null),blobGasUsed:ya(S,null),excessBlobGas:ya(S,null),miner:ya(Jt),prevRandao:ya(va,null),extraData:Aa,baseFeePerGas:ya(S)},{prevRandao:["mixHash"]}),xa=ba({transactionIndex:L,blockNumber:L,transactionHash:va,address:Jt,topics:wa(va),data:Aa,index:L,blockHash:va},{index:["logIndex"]}),Ca=ba({to:ya(Jt,null),from:ya(Jt,null),contractAddress:ya(Jt,null),index:L,root:ya(E),gasUsed:S,blobGasUsed:ya(S,null),logsBloom:ya(Aa),blockHash:va,hash:va,logs:wa(function(t){return xa(t)}),blockNumber:L,cumulativeGasUsed:S,effectiveGasPrice:ya(S),blobGasPrice:ya(S,null),status:ya(L),type:ya(L,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function Na(t){t.to&&S(t.to)===ma&&(t.to="0x0000000000000000000000000000000000000000");const e=ba({hash:va,index:ya(L,void 0),type:t=>"0x"===t||null==t?0:L(t),accessList:ya(Fr,null),blobVersionedHashes:ya(wa(va,!0),null),authorizationList:ya(wa(t=>{let e;if(t.signature)e=t.signature;else{let r=t.yParity;"0x1b"===r?r=0:"0x1c"===r&&(r=1),e=Object.assign({},t,{yParity:r})}return{address:Jt(t.address),chainId:S(t.chainId),nonce:S(t.nonce),signature:Jr.from(e)}},!1),null),blockHash:ya(va,null),blockNumber:ya(L,null),transactionIndex:ya(L,null),from:Jt,gasPrice:ya(S),maxPriorityFeePerGas:ya(S),maxFeePerGas:ya(S),maxFeePerBlobGas:ya(S,null),gasLimit:S,to:ya(Jt,null),value:S,nonce:L,data:Aa,creates:ya(Jt,null),chainId:ya(S,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(t);if(null==e.to&&null==e.creates&&(e.creates=function(t){const e=Jt(t.from);let r=S(t.nonce,"tx.nonce").toString(16);return r="0"===r?"0x":r.length%2?"0x0"+r:"0x"+r,Jt(C(Ht(jo([e,r])),12))}(e)),1!==t.type&&2!==t.type||null!=t.accessList||(e.accessList=[]),t.signature?e.signature=Jr.from(t.signature):e.signature=Jr.from(t),null==e.chainId){const t=e.signature.legacyChainId;null!=t&&(e.chainId=t)}return e.blockHash&&S(e.blockHash)===ma&&(e.blockHash=null),e}class Ba{name;constructor(t){o(this,{name:t})}clone(){return new Ba(this.name)}}class Pa extends Ba{effectiveBlock;txBase;txCreate;txDataZero;txDataNonzero;txAccessListStorageKey;txAccessListAddress;constructor(t,e){null==t&&(t=0),super(`org.ethers.network.plugins.GasCost#${t||0}`);const r={effectiveBlock:t};function n(t,n){let i=(e||{})[t];null==i&&(i=n),f("number"==typeof i,`invalud value for ${t}`,"costs",e),r[t]=i}n("txBase",21e3),n("txCreate",32e3),n("txDataZero",4),n("txDataNonzero",16),n("txAccessListStorageKey",1900),n("txAccessListAddress",2400),o(this,r)}clone(){return new Pa(this.effectiveBlock,this)}}class Ia extends Ba{address;targetNetwork;constructor(t,e){super("org.ethers.plugins.network.Ens"),o(this,{address:t||"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",targetNetwork:null==e?1:e})}clone(){return new Ia(this.address,this.targetNetwork)}}class ka extends Ba{#k;#Ct;get url(){return this.#k}get processFunc(){return this.#Ct}constructor(t,e){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin"),this.#k=t,this.#Ct=e}clone(){return this}}const Oa=new Map;class Ma{#Nt;#ft;#Bt;constructor(t,e){this.#Nt=t,this.#ft=S(e),this.#Bt=new Map}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return this.#Nt}set name(t){this.#Nt=t}get chainId(){return this.#ft}set chainId(t){this.#ft=S(t,"chainId")}matches(t){if(null==t)return!1;if("string"==typeof t){try{return this.chainId===S(t)}catch(t){}return this.name===t}if("number"==typeof t||"bigint"==typeof t){try{return this.chainId===S(t)}catch(t){}return!1}if("object"==typeof t){if(null!=t.chainId){try{return this.chainId===S(t.chainId)}catch(t){}return!1}return null!=t.name&&this.name===t.name}return!1}get plugins(){return Array.from(this.#Bt.values())}attachPlugin(t){if(this.#Bt.get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return this.#Bt.set(t.name,t.clone()),this}getPlugin(t){return this.#Bt.get(t)||null}getPlugins(t){return this.plugins.filter(e=>e.name.split("#")[0]===t)}clone(){const t=new Ma(this.name,this.chainId);return this.plugins.forEach(e=>{t.attachPlugin(e.clone())}),t}computeIntrinsicGas(t){const e=this.getPlugin("org.ethers.plugins.network.GasCost")||new Pa;let r=e.txBase;if(null==t.to&&(r+=e.txCreate),t.data)for(let n=2;n<t.data.length;n+=2)"00"===t.data.substring(n,n+2)?r+=e.txDataZero:r+=e.txDataNonzero;if(t.accessList){const n=Fr(t.accessList);for(const t in n)r+=e.txAccessListAddress+e.txAccessListStorageKey*n[t].storageKeys.length}return r}static from(t){if(function(){function t(t,e,r){const n=function(){const n=new Ma(t,e);return null!=r.ensNetwork&&n.attachPlugin(new Ia(null,r.ensNetwork)),n.attachPlugin(new Pa),(r.plugins||[]).forEach(t=>{n.attachPlugin(t)}),n};Ma.register(t,n),Ma.register(e,n),r.altNames&&r.altNames.forEach(t=>{Ma.register(t,n)})}Ra||(Ra=!0,t("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),t("ropsten",3,{ensNetwork:3}),t("rinkeby",4,{ensNetwork:4}),t("goerli",5,{ensNetwork:5}),t("kovan",42,{ensNetwork:42}),t("sepolia",11155111,{ensNetwork:11155111}),t("holesky",17e3,{ensNetwork:17e3}),t("classic",61,{}),t("classicKotti",6,{}),t("arbitrum",42161,{ensNetwork:1}),t("arbitrum-goerli",421613,{}),t("arbitrum-sepolia",421614,{}),t("base",8453,{ensNetwork:1}),t("base-goerli",84531,{}),t("base-sepolia",84532,{}),t("bnb",56,{ensNetwork:1}),t("bnbt",97,{}),t("linea",59144,{ensNetwork:1}),t("linea-goerli",59140,{}),t("linea-sepolia",59141,{}),t("matic",137,{ensNetwork:1,plugins:[Sa("https://gasstation.polygon.technology/v2")]}),t("matic-amoy",80002,{}),t("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[Sa("https://gasstation-testnet.polygon.technology/v2")]}),t("optimism",10,{ensNetwork:1,plugins:[]}),t("optimism-goerli",420,{}),t("optimism-sepolia",11155420,{}),t("xdai",100,{ensNetwork:1}))}(),null==t)return Ma.from("mainnet");if("number"==typeof t&&(t=BigInt(t)),"string"==typeof t||"bigint"==typeof t){const e=Oa.get(t);if(e)return e();if("bigint"==typeof t)return new Ma("unknown",t);f(!1,"unknown network","network",t)}if("function"==typeof t.clone)return t.clone();if("object"==typeof t){f("string"==typeof t.name&&"number"==typeof t.chainId,"invalid network object name or chainId","network",t);const e=new Ma(t.name,t.chainId);return(t.ensAddress||null!=t.ensNetwork)&&e.attachPlugin(new Ia(t.ensAddress,t.ensNetwork)),e}f(!1,"invalid network","network",t)}static register(t,e){"number"==typeof t&&(t=BigInt(t));const r=Oa.get(t);r&&f(!1,`conflicting network for ${JSON.stringify(r.name)}`,"nameOrChainId",t),Oa.set(t,e)}}function Ta(t,e){const r=String(t);if(!r.match(/^[0-9.]+$/))throw new Error(`invalid gwei value: ${t}`);const n=r.split(".");if(1===n.length&&n.push(""),2!==n.length)throw new Error(`invalid gwei value: ${t}`);for(;n[1].length<e;)n[1]+="0";if(n[1].length>9){let t=BigInt(n[1].substring(0,9));n[1].substring(9).match(/^0+$/)||t++,n[1]=t.toString()}return BigInt(n[0]+n[1])}function Sa(t){return new ka(t,async(t,e,r)=>{let n;r.setHeader("User-Agent","ethers");try{const[e,i]=await Promise.all([r.send(),t()]);n=e;const s=n.bodyJson.standard;return{gasPrice:i.gasPrice,maxFeePerGas:Ta(s.maxFee,9),maxPriorityFeePerGas:Ta(s.maxPriorityFee,9)}}catch(t){h(!1,`error encountered with polygon gas station (${JSON.stringify(r.url)})`,"SERVER_ERROR",{request:r,response:n,error:t})}})}let Ra=!1;function Da(t){return JSON.parse(JSON.stringify(t))}class Fa{#Pt;#It;#kt;#Ot;constructor(t){this.#Pt=t,this.#It=null,this.#kt=4e3,this.#Ot=-2}get pollingInterval(){return this.#kt}set pollingInterval(t){this.#kt=t}async#Mt(){try{const t=await this.#Pt.getBlockNumber();if(-2===this.#Ot)return void(this.#Ot=t);if(t!==this.#Ot){for(let e=this.#Ot+1;e<=t;e++){if(null==this.#It)return;await this.#Pt.emit("block",e)}this.#Ot=t}}catch(t){}null!=this.#It&&(this.#It=this.#Pt._setTimeout(this.#Mt.bind(this),this.#kt))}start(){this.#It||(this.#It=this.#Pt._setTimeout(this.#Mt.bind(this),this.#kt),this.#Mt())}stop(){this.#It&&(this.#Pt._clearTimeout(this.#It),this.#It=null)}pause(t){this.stop(),t&&(this.#Ot=-2)}resume(){this.start()}}class La{#Pt;#Mt;#Tt;constructor(t){this.#Pt=t,this.#Tt=!1,this.#Mt=t=>{this._poll(t,this.#Pt)}}async _poll(t,e){throw new Error("sub-classes must override this")}start(){this.#Tt||(this.#Tt=!0,this.#Mt(-2),this.#Pt.on("block",this.#Mt))}stop(){this.#Tt&&(this.#Tt=!1,this.#Pt.off("block",this.#Mt))}pause(t){this.stop()}resume(){this.start()}}class Ua extends La{#St;#Rt;constructor(t,e){super(t),this.#St=e,this.#Rt=-2}pause(t){t&&(this.#Rt=-2),super.pause(t)}async _poll(t,e){const r=await e.getBlock(this.#St);null!=r&&(-2===this.#Rt?this.#Rt=r.number:r.number>this.#Rt&&(e.emit(this.#St,r.number),this.#Rt=r.number))}}class Ga extends La{#rt;constructor(t,e){super(t),this.#rt=Da(e)}async _poll(t,e){throw new Error("@TODO")}}class Ha extends La{#Dt;constructor(t,e){super(t),this.#Dt=e}async _poll(t,e){const r=await e.getTransactionReceipt(this.#Dt);r&&e.emit(this.#Dt,r)}}class qa{#Pt;#rt;#It;#Tt;#Ot;constructor(t,e){this.#Pt=t,this.#rt=Da(e),this.#It=this.#Mt.bind(this),this.#Tt=!1,this.#Ot=-2}async#Mt(t){if(-2===this.#Ot)return;const e=Da(this.#rt);e.fromBlock=this.#Ot+1,e.toBlock=t;const r=await this.#Pt.getLogs(e);if(0!==r.length)for(const t of r)this.#Pt.emit(this.#rt,t),this.#Ot=t.blockNumber;else this.#Ot<t-60&&(this.#Ot=t-60)}start(){this.#Tt||(this.#Tt=!0,-2===this.#Ot&&this.#Pt.getBlockNumber().then(t=>{this.#Ot=t}),this.#Pt.on("block",this.#It))}stop(){this.#Tt&&(this.#Tt=!1,this.#Pt.off("block",this.#It))}pause(t){this.stop(),t&&(this.#Ot=-2)}resume(){this.start()}}const za=BigInt(2);function ja(t){return t&&"function"==typeof t.then}function Qa(t,e){return t+":"+JSON.stringify(e,(t,e)=>{if(null==e)return"null";if("bigint"==typeof e)return`bigint:${e.toString()}`;if("string"==typeof e)return e.toLowerCase();if("object"==typeof e&&!Array.isArray(e)){const t=Object.keys(e);return t.sort(),t.reduce((t,r)=>(t[r]=e[r],t),{})}return e})}class Va{name;constructor(t){o(this,{name:t})}start(){}stop(){}pause(t){}resume(){}}function Ja(t){return(t=Array.from(new Set(t).values())).sort(),t}async function Ka(t,e){if(null==t)throw new Error("invalid event");if(Array.isArray(t)&&(t={topics:t}),"string"==typeof t)switch(t){case"block":case"debug":case"error":case"finalized":case"network":case"pending":case"safe":return{type:t,tag:t}}if(b(t,32)){const e=t.toLowerCase();return{type:"transaction",tag:Qa("tx",{hash:e}),hash:e}}if(t.orphan){const e=t;return{type:"orphan",tag:Qa("orphan",e),filter:(r=e,JSON.parse(JSON.stringify(r)))}}var r;if(t.address||t.topics){const r=t,n={topics:(r.topics||[]).map(t=>null==t?null:Array.isArray(t)?Ja(t.map(t=>t.toLowerCase())):t.toLowerCase())};if(r.address){const t=[],i=[],s=r=>{b(r)?t.push(r):i.push((async()=>{t.push(await Ar(r,e))})())};Array.isArray(r.address)?r.address.forEach(s):s(r.address),i.length&&await Promise.all(i),n.address=Ja(t.map(t=>t.toLowerCase()))}return{filter:n,tag:Qa("event",n),type:"event"}}f(!1,"unknown ProviderEvent","event",t)}function Wa(){return(new Date).getTime()}const Za={cacheTimeout:250,pollingInterval:4e3};class Xa{#Ft;#Bt;#Lt;#Ut;#Gt;#Ht;#qt;#zt;#jt;#Qt;#Vt;#l;constructor(t,e){if(this.#l=Object.assign({},Za,e||{}),"any"===t)this.#Ht=!0,this.#Gt=null;else if(t){const e=Ma.from(t);this.#Ht=!1,this.#Gt=Promise.resolve(e),setTimeout(()=>{this.emit("network",e,null)},0)}else this.#Ht=!1,this.#Gt=null;this.#zt=-1,this.#qt=new Map,this.#Ft=new Map,this.#Bt=new Map,this.#Lt=null,this.#Ut=!1,this.#jt=1,this.#Qt=new Map,this.#Vt=!1}get pollingInterval(){return this.#l.pollingInterval}get provider(){return this}get plugins(){return Array.from(this.#Bt.values())}attachPlugin(t){if(this.#Bt.get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return this.#Bt.set(t.name,t.connect(this)),this}getPlugin(t){return this.#Bt.get(t)||null}get disableCcipRead(){return this.#Vt}set disableCcipRead(t){this.#Vt=!!t}async#Jt(t){const e=this.#l.cacheTimeout;if(e<0)return await this._perform(t);const r=Qa(t.method,t);let n=this.#qt.get(r);return n||(n=this._perform(t),this.#qt.set(r,n),setTimeout(()=>{this.#qt.get(r)===n&&this.#qt.delete(r)},e)),await n}async ccipReadFetch(t,e,r){if(this.disableCcipRead||0===r.length||null==t.to)return null;const n=t.to.toLowerCase(),i=e.toLowerCase(),s=[];for(let e=0;e<r.length;e++){const o=r[e],a=o.replace("{sender}",n).replace("{data}",i),u=new an(a);-1===o.indexOf("{data}")&&(u.body={data:i,sender:n}),this.emit("debug",{action:"sendCcipReadFetchRequest",request:u,index:e,urls:r});let c,l="unknown error";try{c=await u.send()}catch(t){s.push(t.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:u,result:{error:t}});continue}try{const t=c.bodyJson;if(t.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:u,result:t}),t.data;t.message&&(l=t.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:u,result:t})}catch(t){}h(c.statusCode<400||c.statusCode>=500,`response not found during CCIP fetch: ${l}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:t,info:{url:o,errorMessage:l}}),s.push(l)}h(!1,`error encountered during CCIP fetch: ${s.map(t=>JSON.stringify(t)).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:t,info:{urls:r,errorMessages:s}})}_wrapBlock(t,e){return new _n(function(t){const e=_a(t);return e.transactions=t.transactions.map(t=>"string"==typeof t?t:Na(t)),e}(t),this)}_wrapLog(t,e){return new xn(function(t){return Ea(t)}(t),this)}_wrapTransactionReceipt(t,e){return new Cn(function(t){return Ca(t)}(t),this)}_wrapTransactionResponse(t,e){return new Nn(Na(t),this)}_detectNetwork(){h(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(t){h(!1,`unsupported method: ${t.method}`,"UNSUPPORTED_OPERATION",{operation:t.method,info:t})}async getBlockNumber(){const t=L(await this.#Jt({method:"getBlockNumber"}),"%response");return this.#zt>=0&&(this.#zt=t),t}_getAddress(t){return Ar(t,this)}_getBlockTag(t){if(null==t)return"latest";switch(t){case"earliest":return"0x0";case"finalized":case"latest":case"pending":case"safe":return t}return b(t)?b(t,32)?t:H(t):("bigint"==typeof t&&(t=L(t,"blockTag")),"number"==typeof t?t>=0?H(t):this.#zt>=0?H(this.#zt+t):this.getBlockNumber().then(e=>H(e+t)):void f(!1,"invalid blockTag","blockTag",t))}_getFilter(t){const e=(t.topics||[]).map(t=>null==t?null:Array.isArray(t)?Ja(t.map(t=>t.toLowerCase())):t.toLowerCase()),r="blockHash"in t?t.blockHash:void 0,n=(t,n,i)=>{let s;switch(t.length){case 0:break;case 1:s=t[0];break;default:t.sort(),s=t}if(r&&(null!=n||null!=i))throw new Error("invalid filter");const o={};return s&&(o.address=s),e.length&&(o.topics=e),n&&(o.fromBlock=n),i&&(o.toBlock=i),r&&(o.blockHash=r),o};let i,s,o=[];if(t.address)if(Array.isArray(t.address))for(const e of t.address)o.push(this._getAddress(e));else o.push(this._getAddress(t.address));return"fromBlock"in t&&(i=this._getBlockTag(t.fromBlock)),"toBlock"in t&&(s=this._getBlockTag(t.toBlock)),o.filter(t=>"string"!=typeof t).length||null!=i&&"string"!=typeof i||null!=s&&"string"!=typeof s?Promise.all([Promise.all(o),i,s]).then(t=>n(t[0],t[1],t[2])):n(o,i,s)}_getTransactionRequest(t){const e=En(t),r=[];if(["to","from"].forEach(t=>{if(null==e[t])return;const n=Ar(e[t],this);ja(n)?r.push(async function(){e[t]=await n}()):e[t]=n}),null!=e.blockTag){const t=this._getBlockTag(e.blockTag);ja(t)?r.push(async function(){e.blockTag=await t}()):e.blockTag=t}return r.length?async function(){return await Promise.all(r),e}():e}async getNetwork(){if(null==this.#Gt){const t=(async()=>{try{const t=await this._detectNetwork();return this.emit("network",t,null),t}catch(e){throw this.#Gt===t&&(this.#Gt=null),e}})();return this.#Gt=t,(await t).clone()}const t=this.#Gt,[e,r]=await Promise.all([t,this._detectNetwork()]);return e.chainId!==r.chainId&&(this.#Ht?(this.emit("network",r,e),this.#Gt===t&&(this.#Gt=Promise.resolve(r))):h(!1,`network changed: ${e.chainId} => ${r.chainId} `,"NETWORK_ERROR",{event:"changed"})),e.clone()}async getFeeData(){const t=await this.getNetwork(),e=async()=>{const{_block:e,gasPrice:r,priorityFee:n}=await s({_block:this.#Kt("latest",!1),gasPrice:(async()=>{try{return S(await this.#Jt({method:"getGasPrice"}),"%response")}catch(t){}return null})(),priorityFee:(async()=>{try{return S(await this.#Jt({method:"getPriorityFee"}),"%response")}catch(t){}return null})()});let i=null,o=null;const a=this._wrapBlock(e,t);return a&&a.baseFeePerGas&&(o=null!=n?n:BigInt("1000000000"),i=a.baseFeePerGas*za+o),new vn(r,i,o)},r=t.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(r){const t=new an(r.url),n=await r.processFunc(e,this,t);return new vn(n.gasPrice,n.maxFeePerGas,n.maxPriorityFeePerGas)}return await e()}async estimateGas(t){let e=this._getTransactionRequest(t);return ja(e)&&(e=await e),S(await this.#Jt({method:"estimateGas",transaction:e}),"%response")}async#Wt(t,e,r){h(r<10,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},t,{blockTag:e,enableCcipRead:!0})});const n=En(t);try{return E(await this._perform({method:"call",transaction:n,blockTag:e}))}catch(t){if(!this.disableCcipRead&&c(t)&&t.data&&r>=0&&"latest"===e&&null!=n.to&&"0x556f1830"===C(t.data,0,4)){const i=t.data,s=await Ar(n.to,this);let o;try{o=function(t){const e={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};h(x(t)>=160,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const r=C(t,0,32);h(C(r,0,12)===C(iu,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),e.sender=C(r,12);try{const r=[],n=L(C(t,32,64)),i=L(C(t,n,n+32)),s=C(t,n+32);for(let t=0;t<i;t++){const e=Ya(s,32*t);if(null==e)throw new Error("abort");r.push(e)}e.urls=r}catch(t){h(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{const r=$a(t,64);if(null==r)throw new Error("abort");e.calldata=r}catch(t){h(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}h(C(t,100,128)===C(iu,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),e.selector=C(t,96,100);try{const r=$a(t,128);if(null==r)throw new Error("abort");e.extraData=r}catch(t){h(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return e.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map(t=>e[t]),e}(C(t.data,4))}catch(t){h(!1,t.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:n,info:{data:i}})}h(o.sender.toLowerCase()===s.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:i,reason:"OffchainLookup",transaction:n,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:o.errorArgs}});const a=await this.ccipReadFetch(n,o.calldata,o.urls);h(null!=a,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:n,info:{data:t.data,errorArgs:o.errorArgs}});const u={to:s,data:_([o.selector,nu([a,o.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:u});try{const t=await this.#Wt(u,e,r+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},u),result:t}),t}catch(t){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},u),error:t}),t}}throw t}}async#Zt(t){const{value:e}=await s({network:this.getNetwork(),value:t});return e}async call(t){const{tx:e,blockTag:r}=await s({tx:this._getTransactionRequest(t),blockTag:this._getBlockTag(t.blockTag)});return await this.#Zt(this.#Wt(e,r,t.enableCcipRead?0:-1))}async#Xt(t,e,r){let n=this._getAddress(e),i=this._getBlockTag(r);return"string"==typeof n&&"string"==typeof i||([n,i]=await Promise.all([n,i])),await this.#Zt(this.#Jt(Object.assign(t,{address:n,blockTag:i})))}async getBalance(t,e){return S(await this.#Xt({method:"getBalance"},t,e),"%response")}async getTransactionCount(t,e){return L(await this.#Xt({method:"getTransactionCount"},t,e),"%response")}async getCode(t,e){return E(await this.#Xt({method:"getCode"},t,e))}async getStorage(t,e,r){const n=S(e,"position");return E(await this.#Xt({method:"getStorage",position:n},t,r))}async broadcastTransaction(t){const{blockNumber:e,hash:r,network:n}=await s({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:t}),network:this.getNetwork()}),i=ua.from(t);if(i.hash!==r)throw new Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(i,n).replaceableTransaction(e)}async#Kt(t,e){if(b(t,32))return await this.#Jt({method:"getBlock",blockHash:t,includeTransactions:e});let r=this._getBlockTag(t);return"string"!=typeof r&&(r=await r),await this.#Jt({method:"getBlock",blockTag:r,includeTransactions:e})}async getBlock(t,e){const{network:r,params:n}=await s({network:this.getNetwork(),params:this.#Kt(t,!!e)});return null==n?null:this._wrapBlock(n,r)}async getTransaction(t){const{network:e,params:r}=await s({network:this.getNetwork(),params:this.#Jt({method:"getTransaction",hash:t})});return null==r?null:this._wrapTransactionResponse(r,e)}async getTransactionReceipt(t){const{network:e,params:r}=await s({network:this.getNetwork(),params:this.#Jt({method:"getTransactionReceipt",hash:t})});if(null==r)return null;if(null==r.gasPrice&&null==r.effectiveGasPrice){const e=await this.#Jt({method:"getTransaction",hash:t});if(null==e)throw new Error("report this; could not find tx or effectiveGasPrice");r.effectiveGasPrice=e.gasPrice}return this._wrapTransactionReceipt(r,e)}async getTransactionResult(t){const{result:e}=await s({network:this.getNetwork(),result:this.#Jt({method:"getTransactionResult",hash:t})});return null==e?null:E(e)}async getLogs(t){let e=this._getFilter(t);ja(e)&&(e=await e);const{network:r,params:n}=await s({network:this.getNetwork(),params:this.#Jt({method:"getLogs",filter:e})});return n.map(t=>this._wrapLog(t,r))}_getProvider(t){h(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(t){return await ga.fromName(this,t)}async getAvatar(t){const e=await this.getResolver(t);return e?await e.getAvatar():null}async resolveName(t){const e=await this.getResolver(t);return e?await e.getAddress():null}async lookupAddress(t){const e=us((t=Jt(t)).substring(2).toLowerCase()+".addr.reverse");try{const r=await ga.getEnsAddress(this),n=new ni(r,["function resolver(bytes32) view returns (address)"],this),i=await n.resolver(e);if(null==i||i===ln)return null;const s=new ni(i,["function name(bytes32) view returns (string)"],this),o=await s.name(e);return await this.resolveName(o)!==t?null:o}catch(t){if(u(t,"BAD_DATA")&&"0x"===t.value)return null;if(u(t,"CALL_EXCEPTION"))return null;throw t}}async waitForTransaction(t,e,r){const n=null!=e?e:1;return 0===n?this.getTransactionReceipt(t):new Promise(async(e,i)=>{let s=null;const o=async r=>{try{const i=await this.getTransactionReceipt(t);if(null!=i&&r-i.blockNumber+1>=n)return e(i),void(s&&(clearTimeout(s),s=null))}catch(t){console.log("EEE",t)}this.once("block",o)};null!=r&&(s=setTimeout(()=>{null!=s&&(s=null,this.off("block",o),i(l("timeout","TIMEOUT",{reason:"timeout"})))},r)),o(await this.getBlockNumber())})}async waitForBlock(t){h(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(t){const e=this.#Qt.get(t);e&&(e.timer&&clearTimeout(e.timer),this.#Qt.delete(t))}_setTimeout(t,e){null==e&&(e=0);const r=this.#jt++,n=()=>{this.#Qt.delete(r),t()};if(this.paused)this.#Qt.set(r,{timer:null,func:n,time:e});else{const t=setTimeout(n,e);this.#Qt.set(r,{timer:t,func:n,time:Wa()})}return r}_forEachSubscriber(t){for(const e of this.#Ft.values())t(e.subscriber)}_getSubscriber(t){switch(t.type){case"debug":case"error":case"network":return new Va(t.type);case"block":{const t=new Fa(this);return t.pollingInterval=this.pollingInterval,t}case"safe":case"finalized":return new Ua(this,t.type);case"event":return new qa(this,t.filter);case"transaction":return new Ha(this,t.hash);case"orphan":return new Ga(this,t.filter)}throw new Error(`unsupported event: ${t.type}`)}_recoverSubscriber(t,e){for(const r of this.#Ft.values())if(r.subscriber===t){r.started&&r.subscriber.stop(),r.subscriber=e,r.started&&e.start(),null!=this.#Lt&&e.pause(this.#Lt);break}}async#Yt(t,e){let r=await Ka(t,this);return"event"===r.type&&e&&e.length>0&&!0===e[0].removed&&(r=await Ka({orphan:"drop-log",log:e[0]},this)),this.#Ft.get(r.tag)||null}async#$t(t){const e=await Ka(t,this),r=e.tag;let n=this.#Ft.get(r);return n||(n={subscriber:this._getSubscriber(e),tag:r,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},this.#Ft.set(r,n)),n}async on(t,e){const r=await this.#$t(t);return r.listeners.push({listener:e,once:!1}),r.started||(r.subscriber.start(),r.started=!0,null!=this.#Lt&&r.subscriber.pause(this.#Lt)),this}async once(t,e){const r=await this.#$t(t);return r.listeners.push({listener:e,once:!0}),r.started||(r.subscriber.start(),r.started=!0,null!=this.#Lt&&r.subscriber.pause(this.#Lt)),this}async emit(t,...e){const r=await this.#Yt(t,e);if(!r||0===r.listeners.length)return!1;const n=r.listeners.length;return r.listeners=r.listeners.filter(({listener:r,once:n})=>{const i=new In(this,n?null:r,t);try{r.call(this,...e,i)}catch(t){}return!n}),0===r.listeners.length&&(r.started&&r.subscriber.stop(),this.#Ft.delete(r.tag)),n>0}async listenerCount(t){if(t){const e=await this.#Yt(t);return e?e.listeners.length:0}let e=0;for(const{listeners:t}of this.#Ft.values())e+=t.length;return e}async listeners(t){if(t){const e=await this.#Yt(t);return e?e.listeners.map(({listener:t})=>t):[]}let e=[];for(const{listeners:t}of this.#Ft.values())e=e.concat(t.map(({listener:t})=>t));return e}async off(t,e){const r=await this.#Yt(t);if(!r)return this;if(e){const t=r.listeners.map(({listener:t})=>t).indexOf(e);t>=0&&r.listeners.splice(t,1)}return e&&0!==r.listeners.length||(r.started&&r.subscriber.stop(),this.#Ft.delete(r.tag)),this}async removeAllListeners(t){if(t){const{tag:e,started:r,subscriber:n}=await this.#$t(t);r&&n.stop(),this.#Ft.delete(e)}else for(const[t,{started:e,subscriber:r}]of this.#Ft)e&&r.stop(),this.#Ft.delete(t);return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return this.off(t,e)}get destroyed(){return this.#Ut}destroy(){this.removeAllListeners();for(const t of this.#Qt.keys())this._clearTimeout(t);this.#Ut=!0}get paused(){return null!=this.#Lt}set paused(t){!!t!==this.paused&&(this.paused?this.resume():this.pause(!1))}pause(t){if(this.#zt=-1,null!=this.#Lt){if(this.#Lt==!!t)return;h(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber(e=>e.pause(t)),this.#Lt=!!t;for(const t of this.#Qt.values())t.timer&&clearTimeout(t.timer),t.time=Wa()-t.time}resume(){if(null!=this.#Lt){this._forEachSubscriber(t=>t.resume()),this.#Lt=null;for(const t of this.#Qt.values()){let e=t.time;e<0&&(e=0),t.time=Wa(),setTimeout(t.func,e)}}}}function Ya(t,e){try{const r=$a(t,e);if(r)return ye(r)}catch(t){}return null}function $a(t,e){if("0x"===t)return null;try{const r=L(C(t,e,e+32)),n=L(C(t,r,r+32));return C(t,r+32,r+32+n)}catch(t){}return null}function tu(t){const e=G(t);if(e.length>32)throw new Error("internal; should not happen");const r=new Uint8Array(32);return r.set(e,32-e.length),r}function eu(t){if(t.length%32==0)return t;const e=new Uint8Array(32*Math.ceil(t.length/32));return e.set(t),e}const ru=new Uint8Array([]);function nu(t){const e=[];let r=0;for(let n=0;n<t.length;n++)e.push(ru),r+=32;for(let n=0;n<t.length;n++){const i=y(t[n]);e[n]=tu(r),e.push(tu(i.length)),e.push(eu(i)),r+=32+32*Math.ceil(i.length/32)}return _(e)}const iu="0x0000000000000000000000000000000000000000000000000000000000000000";function su(t,e){if(t.provider)return t.provider;h(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:e})}async function ou(t,e){let r=En(e);if(null!=r.to&&(r.to=Ar(r.to,t)),null!=r.from){const e=r.from;r.from=Promise.all([t.getAddress(),Ar(e,t)]).then(([t,e])=>(f(t.toLowerCase()===e.toLowerCase(),"transaction from mismatch","tx.from",e),t))}else r.from=t.getAddress();return await s(r)}class au{provider;constructor(t){o(this,{provider:t||null})}async getNonce(t){return su(this,"getTransactionCount").getTransactionCount(await this.getAddress(),t)}async populateCall(t){return await ou(this,t)}async populateTransaction(t){const e=su(this,"populateTransaction"),r=await ou(this,t);null==r.nonce&&(r.nonce=await this.getNonce("pending")),null==r.gasLimit&&(r.gasLimit=await this.estimateGas(r));const n=await this.provider.getNetwork();null!=r.chainId?f(S(r.chainId)===n.chainId,"transaction chainId mismatch","tx.chainId",t.chainId):r.chainId=n.chainId;const i=null!=r.maxFeePerGas||null!=r.maxPriorityFeePerGas;if(null==r.gasPrice||2!==r.type&&!i?0!==r.type&&1!==r.type||!i||f(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",t):f(!1,"eip-1559 transaction do not support gasPrice","tx",t),2!==r.type&&null!=r.type||null==r.maxFeePerGas||null==r.maxPriorityFeePerGas)if(0===r.type||1===r.type){const t=await e.getFeeData();h(null!=t.gasPrice,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),null==r.gasPrice&&(r.gasPrice=t.gasPrice)}else{const t=await e.getFeeData();if(null==r.type)if(null!=t.maxFeePerGas&&null!=t.maxPriorityFeePerGas)if(r.authorizationList&&r.authorizationList.length?r.type=4:r.type=2,null!=r.gasPrice){const t=r.gasPrice;delete r.gasPrice,r.maxFeePerGas=t,r.maxPriorityFeePerGas=t}else null==r.maxFeePerGas&&(r.maxFeePerGas=t.maxFeePerGas),null==r.maxPriorityFeePerGas&&(r.maxPriorityFeePerGas=t.maxPriorityFeePerGas);else null!=t.gasPrice?(h(!i,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),null==r.gasPrice&&(r.gasPrice=t.gasPrice),r.type=0):h(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else 2!==r.type&&3!==r.type&&4!==r.type||(null==r.maxFeePerGas&&(r.maxFeePerGas=t.maxFeePerGas),null==r.maxPriorityFeePerGas&&(r.maxPriorityFeePerGas=t.maxPriorityFeePerGas))}else r.type=2;return await s(r)}async populateAuthorization(t){const e=Object.assign({},t);return null==e.chainId&&(e.chainId=(await su(this,"getNetwork").getNetwork()).chainId),null==e.nonce&&(e.nonce=await this.getNonce()),e}async estimateGas(t){return su(this,"estimateGas").estimateGas(await this.populateCall(t))}async call(t){return su(this,"call").call(await this.populateCall(t))}async resolveName(t){const e=su(this,"resolveName");return await e.resolveName(t)}async sendTransaction(t){const e=su(this,"sendTransaction"),r=await this.populateTransaction(t);delete r.from;const n=ua.from(r);return await e.broadcastTransaction(await this.signTransaction(n))}authorize(t){h(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class uu{#Pt;#te;#It;#Tt;#ee;#re;constructor(t){this.#Pt=t,this.#te=null,this.#It=this.#Mt.bind(this),this.#Tt=!1,this.#ee=null,this.#re=!1}_subscribe(t){throw new Error("subclasses must override this")}_emitResults(t,e){throw new Error("subclasses must override this")}_recover(t){throw new Error("subclasses must override this")}async#Mt(t){try{null==this.#te&&(this.#te=this._subscribe(this.#Pt));let t=null;try{t=await this.#te}catch(t){if(!u(t,"UNSUPPORTED_OPERATION")||"eth_newFilter"!==t.operation)throw t}if(null==t)return this.#te=null,void this.#Pt._recoverSubscriber(this,this._recover(this.#Pt));const e=await this.#Pt.getNetwork();if(this.#ee||(this.#ee=e),this.#ee.chainId!==e.chainId)throw new Error("chaid changed");if(this.#re)return;const r=await this.#Pt.send("eth_getFilterChanges",[t]);await this._emitResults(this.#Pt,r)}catch(t){console.log("@TODO",t)}this.#Pt.once("block",this.#It)}#ne(){const t=this.#te;t&&(this.#te=null,t.then(t=>{this.#Pt.destroyed||this.#Pt.send("eth_uninstallFilter",[t])}))}start(){this.#Tt||(this.#Tt=!0,this.#Mt(-2))}stop(){this.#Tt&&(this.#Tt=!1,this.#re=!0,this.#ne(),this.#Pt.off("block",this.#It))}pause(t){t&&this.#ne(),this.#Pt.off("block",this.#It)}resume(){this.start()}}class cu extends uu{#ie;constructor(t,e){var r;super(t),this.#ie=(r=e,JSON.parse(JSON.stringify(r)))}_recover(t){return new qa(t,this.#ie)}async _subscribe(t){return await t.send("eth_newFilter",[this.#ie])}async _emitResults(t,e){for(const r of e)t.emit(this.#ie,t._wrapLog(r,t._network))}}class lu extends uu{async _subscribe(t){return await t.send("eth_newPendingTransactionFilter",[])}async _emitResults(t,e){for(const r of e)t.emit("pending",r)}}const hu="bigint,boolean,function,number,string,symbol".split(/,/g);function fu(t){if(null==t||hu.indexOf(typeof t)>=0)return t;if("function"==typeof t.getAddress)return t;if(Array.isArray(t))return t.map(fu);if("object"==typeof t)return Object.keys(t).reduce((e,r)=>(e[r]=t[r],e),{});throw new Error(`should not happen: ${t} (${typeof t})`)}function du(t){return new Promise(e=>{setTimeout(e,t)})}function pu(t){return t?t.toLowerCase():t}function gu(t){return t&&"number"==typeof t.pollingInterval}const mu={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class yu extends au{address;constructor(t,e){super(t),o(this,{address:e=Jt(e)})}connect(t){h(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(t){return await this.populateCall(t)}async sendUncheckedTransaction(t){const e=fu(t),r=[];if(e.from){const n=e.from;r.push((async()=>{const r=await Ar(n,this.provider);f(null!=r&&r.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),e.from=r})())}else e.from=this.address;if(null==e.gasLimit&&r.push((async()=>{e.gasLimit=await this.provider.estimateGas({...e,from:this.address})})()),null!=e.to){const t=e.to;r.push((async()=>{e.to=await Ar(t,this.provider)})())}r.length&&await Promise.all(r);const n=this.provider.getRpcTransaction(e);return this.provider.send("eth_sendTransaction",[n])}async sendTransaction(t){const e=await this.provider.getBlockNumber(),r=await this.sendUncheckedTransaction(t);return await new Promise((t,n)=>{const i=[1e3,100];let s=0;const o=async()=>{try{const n=await this.provider.getTransaction(r);if(null!=n)return void t(n.replaceableTransaction(e))}catch(t){if(u(t,"CANCELLED")||u(t,"BAD_DATA")||u(t,"NETWORK_ERROR")||u(t,"UNSUPPORTED_OPERATION"))return null==t.info&&(t.info={}),t.info.sendTransactionHash=r,void n(t);if(u(t,"INVALID_ARGUMENT")&&(s++,null==t.info&&(t.info={}),t.info.sendTransactionHash=r,s>10))return void n(t);this.provider.emit("error",l("failed to fetch transation after sending (will try again)","UNKNOWN_ERROR",{error:t}))}this.provider._setTimeout(()=>{o()},i.pop()||4e3)};o()})}async signTransaction(t){const e=fu(t);if(e.from){const r=await Ar(e.from,this.provider);f(null!=r&&r.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),e.from=r}else e.from=this.address;const r=this.provider.getRpcTransaction(e);return await this.provider.send("eth_signTransaction",[r])}async signMessage(t){const e="string"==typeof t?me(t):t;return await this.provider.send("personal_sign",[E(e),this.address.toLowerCase()])}async signTypedData(t,e,r){const n=fu(r),i=await Rr.resolveNames(t,e,n,async t=>{const e=await Ar(t);return f(null!=e,"TypedData does not support null address","value",t),e});return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(Rr.getPayload(i.domain,e,i.value))])}async unlock(t){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),t,null])}async _legacySignMessage(t){const e="string"==typeof t?me(t):t;return await this.provider.send("eth_sign",[this.address.toLowerCase(),E(e)])}}class wu extends Xa{#l;#se;#oe;#ae;#ue;#ee;#ce;#le(){if(this.#ae)return;const t=1===this._getOption("batchMaxCount")?0:this._getOption("batchStallTime");this.#ae=setTimeout(()=>{this.#ae=null;const t=this.#oe;for(this.#oe=[];t.length;){const e=[t.shift()];for(;t.length&&e.length!==this.#l.batchMaxCount;)if(e.push(t.shift()),JSON.stringify(e.map(t=>t.payload)).length>this.#l.batchMaxSize){t.unshift(e.pop());break}(async()=>{const t=1===e.length?e[0].payload:e.map(t=>t.payload);this.emit("debug",{action:"sendRpcPayload",payload:t});try{const r=await this._send(t);this.emit("debug",{action:"receiveRpcResult",result:r});for(const{resolve:t,reject:n,payload:i}of e){if(this.destroyed){n(l("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:i.method}));continue}const e=r.filter(t=>t.id===i.id)[0];if(null==e){const t=l("missing response for request","BAD_DATA",{value:r,info:{payload:i}});this.emit("error",t),n(t);continue}"error"in e?n(this.getRpcError(i,e)):t(e.result)}}catch(t){this.emit("debug",{action:"receiveRpcError",error:t});for(const{reject:r}of e)r(t)}})()}},t)}constructor(t,e){super(t,e),this.#se=1,this.#l=Object.assign({},mu,e||{}),this.#oe=[],this.#ae=null,this.#ee=null,this.#ce=null;{let t=null;const e=new Promise(e=>{t=e});this.#ue={promise:e,resolve:t}}const r=this._getOption("staticNetwork");"boolean"==typeof r?(f(!r||"any"!==t,"staticNetwork cannot be used on special network 'any'","options",e),r&&null!=t&&(this.#ee=Ma.from(t))):r&&(f(null==t||r.matches(t),"staticNetwork MUST match network object","options",e),this.#ee=r)}_getOption(t){return this.#l[t]}get _network(){return h(this.#ee,"network is not available yet","NETWORK_ERROR"),this.#ee}async _perform(t){if("call"===t.method||"estimateGas"===t.method){let e=t.transaction;if(e&&null!=e.type&&S(e.type)&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const r=await this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&(t=Object.assign({},t,{transaction:Object.assign({},e,{type:void 0})}))}}const e=this.getRpcRequest(t);return null!=e?await this.send(e.method,e.args):super._perform(t)}async _detectNetwork(){const t=this._getOption("staticNetwork");if(t){if(!0!==t)return t;if(this.#ee)return this.#ee}return this.#ce?await this.#ce:this.ready?(this.#ce=(async()=>{try{const t=Ma.from(S(await this.send("eth_chainId",[])));return this.#ce=null,t}catch(t){throw this.#ce=null,t}})(),await this.#ce):(this.#ce=(async()=>{const t={id:this.#se++,method:"eth_chainId",params:[],jsonrpc:"2.0"};let e;this.emit("debug",{action:"sendRpcPayload",payload:t});try{e=(await this._send(t))[0],this.#ce=null}catch(t){throw this.#ce=null,this.emit("debug",{action:"receiveRpcError",error:t}),t}if(this.emit("debug",{action:"receiveRpcResult",result:e}),"result"in e)return Ma.from(S(e.result));throw this.getRpcError(t,e)})(),await this.#ce)}_start(){null!=this.#ue&&null!=this.#ue.resolve&&(this.#ue.resolve(),this.#ue=null,(async()=>{for(;null==this.#ee&&!this.destroyed;)try{this.#ee=await this._detectNetwork()}catch(t){if(this.destroyed)break;console.log("JsonRpcProvider failed to detect network and cannot start up; retry in 1s (perhaps the URL is wrong or the node is not started)"),this.emit("error",l("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:t}})),await du(1e3)}this.#le()})())}async _waitUntilReady(){if(null!=this.#ue)return await this.#ue.promise}_getSubscriber(t){return"pending"===t.type?new lu(this):"event"===t.type?this._getOption("polling")?new qa(this,t.filter):new cu(this,t.filter):"orphan"===t.type&&"drop-log"===t.filter.orphan?new Va("orphan"):super._getSubscriber(t)}get ready(){return null==this.#ue}getRpcTransaction(t){const e={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(r=>{if(null==t[r])return;let n=r;"gasLimit"===r&&(n="gas"),e[n]=H(S(t[r],`tx.${r}`))}),["from","to","data"].forEach(r=>{null!=t[r]&&(e[r]=E(t[r]))}),t.accessList&&(e.accessList=Fr(t.accessList)),t.blobVersionedHashes&&(e.blobVersionedHashes=t.blobVersionedHashes.map(t=>t.toLowerCase())),t.authorizationList&&(e.authorizationList=t.authorizationList.map(t=>{const e=Kr(t);return{address:e.address,nonce:H(e.nonce),chainId:H(e.chainId),yParity:H(e.signature.yParity),r:H(e.signature.r),s:H(e.signature.s)}})),e}getRpcRequest(t){switch(t.method){case"chainId":return{method:"eth_chainId",args:[]};case"getBlockNumber":return{method:"eth_blockNumber",args:[]};case"getGasPrice":return{method:"eth_gasPrice",args:[]};case"getPriorityFee":return{method:"eth_maxPriorityFeePerGas",args:[]};case"getBalance":return{method:"eth_getBalance",args:[pu(t.address),t.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[pu(t.address),t.blockTag]};case"getCode":return{method:"eth_getCode",args:[pu(t.address),t.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[pu(t.address),"0x"+t.position.toString(16),t.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[t.signedTransaction]};case"getBlock":if("blockTag"in t)return{method:"eth_getBlockByNumber",args:[t.blockTag,!!t.includeTransactions]};if("blockHash"in t)return{method:"eth_getBlockByHash",args:[t.blockHash,!!t.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[t.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[t.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(t.transaction),t.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(t.transaction)]};case"getLogs":return t.filter&&null!=t.filter.address&&(Array.isArray(t.filter.address)?t.filter.address=t.filter.address.map(pu):t.filter.address=pu(t.filter.address)),{method:"eth_getLogs",args:[t.filter]}}return null}getRpcError(t,e){const{method:r}=t,{error:n}=e;if("eth_estimateGas"===r&&n.message){const e=n.message;if(!e.match(/revert/i)&&e.match(/insufficient funds/i))return l("insufficient funds","INSUFFICIENT_FUNDS",{transaction:t.params[0],info:{payload:t,error:n}});if(e.match(/nonce/i)&&e.match(/too low/i))return l("nonce has already been used","NONCE_EXPIRED",{transaction:t.params[0],info:{payload:t,error:n}})}if("eth_call"===r||"eth_estimateGas"===r){const e=vu(n),i=yr.getBuiltinCallException("eth_call"===r?"call":"estimateGas",t.params[0],e?e.data:null);return i.info={error:n,payload:t},i}const i=JSON.stringify(function(t){const e=[];return Eu(t,e),e}(n));if("string"==typeof n.message&&n.message.match(/user denied|ethers-user-denied/i))return l("user rejected action","ACTION_REJECTED",{action:{eth_sign:"signMessage",personal_sign:"signMessage",eth_signTypedData_v4:"signTypedData",eth_signTransaction:"signTransaction",eth_sendTransaction:"sendTransaction",eth_requestAccounts:"requestAccess",wallet_requestAccounts:"requestAccess"}[r]||"unknown",reason:"rejected",info:{payload:t,error:n}});if("eth_sendRawTransaction"===r||"eth_sendTransaction"===r){const e=t.params[0];if(i.match(/insufficient funds|base fee exceeds gas limit/i))return l("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:e,info:{error:n}});if(i.match(/nonce/i)&&i.match(/too low/i))return l("nonce has already been used","NONCE_EXPIRED",{transaction:e,info:{error:n}});if(i.match(/replacement transaction/i)&&i.match(/underpriced/i))return l("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:e,info:{error:n}});if(i.match(/only replay-protected/i))return l("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:r,info:{transaction:e,info:{error:n}}})}let s=!!i.match(/the method .* does not exist/i);return s||n&&n.details&&n.details.startsWith("Unauthorized method:")&&(s=!0),s?l("unsupported operation","UNSUPPORTED_OPERATION",{operation:t.method,info:{error:n,payload:t}}):l("could not coalesce error","UNKNOWN_ERROR",{error:n,payload:t})}send(t,e){if(this.destroyed)return Promise.reject(l("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t}));const r=this.#se++,n=new Promise((n,i)=>{this.#oe.push({resolve:n,reject:i,payload:{method:t,params:e,id:r,jsonrpc:"2.0"}})});return this.#le(),n}async getSigner(t){null==t&&(t=0);const e=this.send("eth_accounts",[]);if("number"==typeof t){const r=await e;if(t>=r.length)throw new Error("no such account");return new yu(this,r[t])}const{accounts:r}=await s({network:this.getNetwork(),accounts:e});t=Jt(t);for(const e of r)if(Jt(e)===t)return new yu(this,t);throw new Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map(t=>new yu(this,t))}destroy(){this.#ae&&(clearTimeout(this.#ae),this.#ae=null);for(const{payload:t,reject:e}of this.#oe)e(l("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t.method}));this.#oe=[],super.destroy()}}class bu extends wu{#he;constructor(t,e){super(t,e);let r=this._getOption("pollingInterval");null==r&&(r=mu.pollingInterval),this.#he=r}_getSubscriber(t){const e=super._getSubscriber(t);return gu(e)&&(e.pollingInterval=this.#he),e}get pollingInterval(){return this.#he}set pollingInterval(t){if(!Number.isInteger(t)||t<0)throw new Error("invalid interval");this.#he=t,this._forEachSubscriber(t=>{gu(t)&&(t.pollingInterval=this.#he)})}}class Au extends bu{#fe;constructor(t,e,r){null==t&&(t="http://localhost:8545"),super(e,r),this.#fe="string"==typeof t?new an(t):t.clone()}_getConnection(){return this.#fe.clone()}async send(t,e){return await this._start(),await super.send(t,e)}async _send(t){const e=this._getConnection();e.body=JSON.stringify(t),e.setHeader("content-type","application/json");const r=await e.send();r.assertOk();let n=r.bodyJson;return Array.isArray(n)||(n=[n]),n}}function vu(t){if(null==t)return null;if("string"==typeof t.message&&t.message.match(/revert/i)&&b(t.data))return{message:t.message,data:t.data};if("object"==typeof t){for(const e in t){const r=vu(t[e]);if(r)return r}return null}if("string"==typeof t)try{return vu(JSON.parse(t))}catch(t){}return null}function Eu(t,e){if(null!=t){if("string"==typeof t.message&&e.push(t.message),"object"==typeof t)for(const r in t)Eu(t[r],e);if("string"==typeof t)try{return Eu(JSON.parse(t),e)}catch(t){}}}class _u extends bu{#z;#de;constructor(t,e,r){const n=Object.assign({},null!=r?r:{},{batchMaxCount:1});f(t&&t.request,"invalid EIP-1193 provider","ethereum",t),super(e,n),this.#de=null,r&&r.providerInfo&&(this.#de=r.providerInfo),this.#z=async(e,r)=>{const n={method:e,params:r};this.emit("debug",{action:"sendEip1193Request",payload:n});try{const e=await t.request(n);return this.emit("debug",{action:"receiveEip1193Result",result:e}),e}catch(t){const e=new Error(t.message);throw e.code=t.code,e.data=t.data,e.payload=n,this.emit("debug",{action:"receiveEip1193Error",error:e}),e}}}get providerInfo(){return this.#de}async send(t,e){return await this._start(),await super.send(t,e)}async _send(t){f(!Array.isArray(t),"EIP-1193 does not support batch request","payload",t);try{const e=await this.#z(t.method,t.params||[]);return[{id:t.id,result:e}]}catch(e){return[{id:t.id,error:{code:e.code,data:e.data,message:e.message}}]}}getRpcError(t,e){switch((e=JSON.parse(JSON.stringify(e))).error.code||-1){case 4001:e.error.message=`ethers-user-denied: ${e.error.message}`;break;case 4200:e.error.message=`ethers-unsupported: ${e.error.message}`}return super.getRpcError(t,e)}async hasSigner(t){null==t&&(t=0);const e=await this.send("eth_accounts",[]);return"number"==typeof t?e.length>t:(t=t.toLowerCase(),0!==e.filter(e=>e.toLowerCase()===t).length)}async getSigner(t){if(null==t&&(t=0),!await this.hasSigner(t))try{await this.#z("eth_requestAccounts",[])}catch(t){const e=t.payload;throw this.getRpcError(e,{id:e.id,error:t})}return await super.getSigner(t)}static async discover(t){if(null==t&&(t={}),t.provider)return new _u(t.provider);const e=t.window?t.window:"undefined"!=typeof window?window:null;if(null==e)return null;const r=t.anyProvider;if(r&&e.ethereum)return new _u(e.ethereum);if(!("addEventListener"in e&&"dispatchEvent"in e&&"removeEventListener"in e))return null;const n=t.timeout?t.timeout:300;return 0===n?null:await new Promise((i,s)=>{let o=[];const a=t=>{o.push(t.detail),r&&u()},u=()=>{if(clearTimeout(c),o.length)if(t&&t.filter){const e=t.filter(o.map(t=>Object.assign({},t.info)));if(null==e)i(null);else if(e instanceof _u)i(e);else{let t=null;if(e.uuid&&(t=o.filter(t=>e.uuid===t.info.uuid)[0]),t){const{provider:e,info:r}=t;i(new _u(e,void 0,{providerInfo:r}))}else s(l("filter returned unknown info","UNSUPPORTED_OPERATION",{value:e}))}}else{const{provider:t,info:e}=o[0];i(new _u(t,void 0,{providerInfo:e}))}else i(null);e.removeEventListener("eip6963:announceProvider",a)},c=setTimeout(()=>{u()},n);e.addEventListener("eip6963:announceProvider",a),e.dispatchEvent(new Event("eip6963:requestProvider"))})}}class xu{constructor(t,e){this.signer=null,this.address=null,this.config=t,this.networkProvider=new Au(t.rpcUrl,{name:t.name,chainId:t.chainId},t.additionalJsonRpcApiProviderOptionsOptions),e&&this.connect(this.injectedProvider)}async connect(t){if(t&&(this.injectedProvider=t,this.walletProvider=new _u(this.injectedProvider)),!this.injectedProvider||!this.walletProvider)throw new Error("Please connect wallet.");try{const t=await this.injectedProvider.request({method:"eth_requestAccounts"});if(0===t.length)throw new Error("No accounts found");this.address=t[0];const e=await this.injectedProvider.request({method:"eth_chainId"});if(parseInt(e,16)!==this.config.chainId)try{await this.injectedProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:`0x${this.config.chainId.toString(16)}`}]})}catch(t){if(4902!==t.code)throw new Error(`Please switch to ${this.config.name} network`);await this.injectedProvider.request({method:"wallet_addEthereumChain",params:[{chainId:`0x${this.config.chainId.toString(16)}`,chainName:this.config.name,nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},rpcUrls:[this.config.rpcUrl],blockExplorerUrls:this.config.blockExplorerUrl?[this.config.blockExplorerUrl]:[]}]}),await this.injectedProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:`0x${this.config.chainId.toString(16)}`}]})}return this.signer=await this.walletProvider.getSigner(),this.address}catch(t){if(4001===t.code)throw new Error("User rejected wallet connection");throw new Error(`Failed to connect wallet: ${t.message}`)}}disconnect(){this.address=null,this.signer=null}isConnected(){return!!this.address&&!!this.signer}getAddress(){return this.address}getProvider(){return this.walletProvider||this.networkProvider}getSigner(){return this.signer}async getCurrentChainId(){if(!this.injectedProvider)throw new Error("No Ethereum wallet detected");const t=await this.injectedProvider.request({method:"eth_chainId"});return parseInt(t,16)}async connectWallet(){if(!this.injectedProvider)throw new Error("No Ethereum wallet detected. Please connect a wallet provider.");try{const t=await this.injectedProvider.request({method:"eth_requestAccounts"});if(t.length>0&&"string"==typeof t[0]){const e=t[0];return this.address=e,e}throw new Error("No accounts found")}catch(t){throw console.error("Failed to connect wallet:",t),t}}disconnectWallet(){this.address=null,this.signer=null}}const Cu=BigInt(-1),Nu=BigInt(0),Bu=BigInt(1),Pu=BigInt(5),Iu={};let ku="0000";for(;ku.length<80;)ku+=ku;function Ou(t){let e=ku;for(;e.length<t;)e+=e;return BigInt("1"+e.substring(0,t))}function Mu(t,e,r){const n=BigInt(e.width);if(e.signed){const e=Bu<<n-Bu;h(null==r||t>=-e&&t<e,"overflow","NUMERIC_FAULT",{operation:r,fault:"overflow",value:t}),t=t>Nu?O(T(t,n),n):-O(T(-t,n),n)}else{const e=Bu<<n;h(null==r||t>=0&&t<e,"overflow","NUMERIC_FAULT",{operation:r,fault:"overflow",value:t}),t=(t%e+e)%e&e-Bu}return t}function Tu(t){"number"==typeof t&&(t=`fixed128x${t}`);let e=!0,r=128,n=18;if("string"==typeof t)if("fixed"===t);else if("ufixed"===t)e=!1;else{const i=t.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);f(i,"invalid fixed format","format",t),e="u"!==i[1],r=parseInt(i[2]),n=parseInt(i[3])}else if(t){const i=t,s=(t,e,r)=>null==i[t]?r:(f(typeof i[t]===e,"invalid fixed format ("+t+" not "+e+")","format."+t,i[t]),i[t]);e=s("signed","boolean",e),r=s("width","number",r),n=s("decimals","number",n)}return f(r%8==0,"invalid FixedNumber width (not byte aligned)","format.width",r),f(n<=80,"invalid FixedNumber decimals (too large)","format.decimals",n),{signed:e,width:r,decimals:n,name:(e?"":"u")+"fixed"+String(r)+"x"+String(n)}}class Su{format;#pe;#ge;#me;_value;constructor(t,e,r){g(t,Iu,"FixedNumber"),this.#ge=e,this.#pe=r;const n=function(t,e){let r="";t<Nu&&(r="-",t*=Cu);let n=t.toString();if(0===e)return r+n;for(;n.length<=e;)n=ku+n;const i=n.length-e;for(n=n.substring(0,i)+"."+n.substring(i);"0"===n[0]&&"."!==n[1];)n=n.substring(1);for(;"0"===n[n.length-1]&&"."!==n[n.length-2];)n=n.substring(0,n.length-1);return r+n}(e,r.decimals);o(this,{format:r.name,_value:n}),this.#me=Ou(r.decimals)}get signed(){return this.#pe.signed}get width(){return this.#pe.width}get decimals(){return this.#pe.decimals}get value(){return this.#ge}#ye(t){f(this.format===t.format,"incompatible format; use fixedNumber.toFormat","other",t)}#we(t,e){return t=Mu(t,this.#pe,e),new Su(Iu,t,this.#pe)}#be(t,e){return this.#ye(t),this.#we(this.#ge+t.#ge,e)}addUnsafe(t){return this.#be(t)}add(t){return this.#be(t,"add")}#Ae(t,e){return this.#ye(t),this.#we(this.#ge-t.#ge,e)}subUnsafe(t){return this.#Ae(t)}sub(t){return this.#Ae(t,"sub")}#ve(t,e){return this.#ye(t),this.#we(this.#ge*t.#ge/this.#me,e)}mulUnsafe(t){return this.#ve(t)}mul(t){return this.#ve(t,"mul")}mulSignal(t){this.#ye(t);const e=this.#ge*t.#ge;return h(e%this.#me===Nu,"precision lost during signalling mul","NUMERIC_FAULT",{operation:"mulSignal",fault:"underflow",value:this}),this.#we(e/this.#me,"mulSignal")}#Ee(t,e){return h(t.#ge!==Nu,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),this.#ye(t),this.#we(this.#ge*this.#me/t.#ge,e)}divUnsafe(t){return this.#Ee(t)}div(t){return this.#Ee(t,"div")}divSignal(t){h(t.#ge!==Nu,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),this.#ye(t);const e=this.#ge*this.#me;return h(e%t.#ge===Nu,"precision lost during signalling div","NUMERIC_FAULT",{operation:"divSignal",fault:"underflow",value:this}),this.#we(e/t.#ge,"divSignal")}cmp(t){let e=this.value,r=t.value;const n=this.decimals-t.decimals;return n>0?r*=Ou(n):n<0&&(e*=Ou(-n)),e<r?-1:e>r?1:0}eq(t){return 0===this.cmp(t)}lt(t){return this.cmp(t)<0}lte(t){return this.cmp(t)<=0}gt(t){return this.cmp(t)>0}gte(t){return this.cmp(t)>=0}floor(){let t=this.#ge;return this.#ge<Nu&&(t-=this.#me-Bu),t=this.#ge/this.#me*this.#me,this.#we(t,"floor")}ceiling(){let t=this.#ge;return this.#ge>Nu&&(t+=this.#me-Bu),t=this.#ge/this.#me*this.#me,this.#we(t,"ceiling")}round(t){if(null==t&&(t=0),t>=this.decimals)return this;const e=this.decimals-t,r=Pu*Ou(e-1);let n=this.value+r;const i=Ou(e);return n=n/i*i,Mu(n,this.#pe,"round"),new Su(Iu,n,this.#pe)}isZero(){return this.#ge===Nu}isNegative(){return this.#ge<Nu}toString(){return this._value}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(t){return Su.fromString(this.toString(),t)}static fromValue(t,e,r){const n=null==e?0:L(e),i=Tu(r);let s=S(t,"value");const o=n-i.decimals;if(o>0){const e=Ou(o);h(s%e===Nu,"value loses precision for format","NUMERIC_FAULT",{operation:"fromValue",fault:"underflow",value:t}),s/=e}else o<0&&(s*=Ou(-o));return Mu(s,i,"fromValue"),new Su(Iu,s,i)}static fromString(t,e){const r=t.match(/^(-?)([0-9]*)\.?([0-9]*)$/);f(r&&r[2].length+r[3].length>0,"invalid FixedNumber string value","value",t);const n=Tu(e);let i=r[2]||"0",s=r[3]||"";for(;s.length<n.decimals;)s+=ku;h(s.substring(n.decimals).match(/^0*$/),"too many decimals for format","NUMERIC_FAULT",{operation:"fromString",fault:"underflow",value:t}),s=s.substring(0,n.decimals);const o=BigInt(r[1]+i+s);return Mu(o,n,"fromString"),new Su(Iu,o,n)}static fromBytes(t,e){let r=F(y(t,"value"));const n=Tu(e);return n.signed&&(r=O(r,n.width)),Mu(r,n,"fromBytes"),new Su(Iu,r,n)}}const Ru=["wei","kwei","mwei","gwei","szabo","finney","ether"];function Du(t,e){let r=18;if("string"==typeof e){const t=Ru.indexOf(e);f(t>=0,"invalid unit","unit",e),r=3*t}else null!=e&&(r=L(e,"unit"));return Su.fromValue(t,r,{decimals:r,width:512}).toString()}function Fu(t,e){f("string"==typeof t,"value must be a string","value",t);let r=18;if("string"==typeof e){const t=Ru.indexOf(e);f(t>=0,"invalid unit","unit",e),r=3*t}else null!=e&&(r=L(e,"unit"));return Su.fromString(t,{decimals:r,width:512}).value}BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),BigInt("1000000000000000000");const Lu=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");BigInt("0x8000000000000000000000000000000000000000000000000000000000000000"),BigInt(-1),BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Uu=r(951),Gu=r.n(Uu);function Hu(t,e){if(!t)throw new Error("Invariant failed")}var qu=r(351),zu=r.n(qu),ju=r(900),Qu=r.n(ju),Vu=r(937),Ju=r.n(Vu),Ku=r(404),Wu=r.n(Ku);let Zu=!1,Xu=!1;const Yu={debug:1,default:2,info:2,warning:3,error:4,off:5};let $u=Yu.default,tc=null;const ec=function(){try{const t=[];if(["NFD","NFC","NFKD","NFKC"].forEach(e=>{try{if("test"!=="test".normalize(e))throw new Error("bad normalize")}catch(r){t.push(e)}}),t.length)throw new Error("missing "+t.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(t){return t.message}return null}();var rc,nc;!function(t){t.DEBUG="DEBUG",t.INFO="INFO",t.WARNING="WARNING",t.ERROR="ERROR",t.OFF="OFF"}(rc||(rc={})),function(t){t.UNKNOWN_ERROR="UNKNOWN_ERROR",t.NOT_IMPLEMENTED="NOT_IMPLEMENTED",t.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.TIMEOUT="TIMEOUT",t.BUFFER_OVERRUN="BUFFER_OVERRUN",t.NUMERIC_FAULT="NUMERIC_FAULT",t.MISSING_NEW="MISSING_NEW",t.INVALID_ARGUMENT="INVALID_ARGUMENT",t.MISSING_ARGUMENT="MISSING_ARGUMENT",t.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",t.CALL_EXCEPTION="CALL_EXCEPTION",t.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",t.NONCE_EXPIRED="NONCE_EXPIRED",t.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",t.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",t.TRANSACTION_REPLACED="TRANSACTION_REPLACED",t.ACTION_REJECTED="ACTION_REJECTED"}(nc||(nc={}));const ic="0123456789abcdef";class sc{constructor(t){Object.defineProperty(this,"version",{enumerable:!0,value:t,writable:!1})}_log(t,e){const r=t.toLowerCase();null==Yu[r]&&this.throwArgumentError("invalid log level name","logLevel",t),$u>Yu[r]||console.log.apply(console,e)}debug(...t){this._log(sc.levels.DEBUG,t)}info(...t){this._log(sc.levels.INFO,t)}warn(...t){this._log(sc.levels.WARNING,t)}makeError(t,e,r){if(Xu)return this.makeError("censored error",e,{});e||(e=sc.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach(t=>{const e=r[t];try{if(e instanceof Uint8Array){let r="";for(let t=0;t<e.length;t++)r+=ic[e[t]>>4],r+=ic[15&e[t]];n.push(t+"=Uint8Array(0x"+r+")")}else n.push(t+"="+JSON.stringify(e))}catch(e){n.push(t+"="+JSON.stringify(r[t].toString()))}}),n.push(`code=${e}`),n.push(`version=${this.version}`);const i=t;let s="";switch(e){case nc.NUMERIC_FAULT:{s="NUMERIC_FAULT";const e=t;switch(e){case"overflow":case"underflow":case"division-by-zero":s+="-"+e;break;case"negative-power":case"negative-width":s+="-unsupported";break;case"unbound-bitwise-result":s+="-unbound-result"}break}case nc.CALL_EXCEPTION:case nc.INSUFFICIENT_FUNDS:case nc.MISSING_NEW:case nc.NONCE_EXPIRED:case nc.REPLACEMENT_UNDERPRICED:case nc.TRANSACTION_REPLACED:case nc.UNPREDICTABLE_GAS_LIMIT:s=e}s&&(t+=" [ See: https://links.ethers.org/v5-errors-"+s+" ]"),n.length&&(t+=" ("+n.join(", ")+")");const o=new Error(t);return o.reason=i,o.code=e,Object.keys(r).forEach(function(t){o[t]=r[t]}),o}throwError(t,e,r){throw this.makeError(t,e,r)}throwArgumentError(t,e,r){return this.throwError(t,sc.errors.INVALID_ARGUMENT,{argument:e,value:r})}assert(t,e,r,n){t||this.throwError(e,r,n)}assertArgument(t,e,r,n){t||this.throwArgumentError(e,r,n)}checkNormalize(t){null==t&&(t="platform missing String.prototype.normalize"),ec&&this.throwError("platform missing String.prototype.normalize",sc.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:ec})}checkSafeUint53(t,e){"number"==typeof t&&(null==e&&(e="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(e,sc.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(e,sc.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,e,r){r=r?": "+r:"",t<e&&this.throwError("missing argument"+r,sc.errors.MISSING_ARGUMENT,{count:t,expectedCount:e}),t>e&&this.throwError("too many arguments"+r,sc.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:e})}checkNew(t,e){t!==Object&&null!=t||this.throwError("missing new",sc.errors.MISSING_NEW,{name:e.name})}checkAbstract(t,e){t===e?this.throwError("cannot instantiate abstract class "+JSON.stringify(e.name)+" directly; use a sub-class",sc.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",sc.errors.MISSING_NEW,{name:e.name})}static globalLogger(){return tc||(tc=new sc("logger/5.8.0")),tc}static setCensorship(t,e){if(!t&&e&&this.globalLogger().throwError("cannot permanently disable censorship",sc.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),Zu){if(!t)return;this.globalLogger().throwError("error censorship permanent",sc.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}Xu=!!t,Zu=!!e}static setLogLevel(t){const e=Yu[t.toLowerCase()];null!=e?$u=e:sc.globalLogger().warn("invalid log level - "+t)}static from(t){return new sc(t)}}sc.errors=nc,sc.levels=rc;const oc=new sc("bytes/5.8.0");function ac(t){return!!t.toHexString}function uc(t){return t.slice||(t.slice=function(){const e=Array.prototype.slice.call(arguments);return uc(new Uint8Array(Array.prototype.slice.apply(t,e)))}),t}function cc(t){return"number"==typeof t&&t==t&&t%1==0}function lc(t){if(null==t)return!1;if(t.constructor===Uint8Array)return!0;if("string"==typeof t)return!1;if(!cc(t.length)||t.length<0)return!1;for(let e=0;e<t.length;e++){const r=t[e];if(!cc(r)||r<0||r>=256)return!1}return!0}function hc(t,e){if(e||(e={}),"number"==typeof t){oc.checkSafeUint53(t,"invalid arrayify value");const e=[];for(;t;)e.unshift(255&t),t=parseInt(String(t/256));return 0===e.length&&e.push(0),uc(new Uint8Array(e))}if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),ac(t)&&(t=t.toHexString()),pc(t)){let r=t.substring(2);r.length%2&&("left"===e.hexPad?r="0"+r:"right"===e.hexPad?r+="0":oc.throwArgumentError("hex data is odd-length","value",t));const n=[];for(let t=0;t<r.length;t+=2)n.push(parseInt(r.substring(t,t+2),16));return uc(new Uint8Array(n))}return lc(t)?uc(new Uint8Array(t)):oc.throwArgumentError("invalid arrayify value","value",t)}function fc(t){const e=t.map(t=>hc(t)),r=e.reduce((t,e)=>t+e.length,0),n=new Uint8Array(r);return e.reduce((t,e)=>(n.set(e,t),t+e.length),0),uc(n)}function dc(t,e){(t=hc(t)).length>e&&oc.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(e);return r.set(t,e-t.length),uc(r)}function pc(t,e){return!("string"!=typeof t||!t.match(/^0x[0-9A-Fa-f]*$/)||e&&t.length!==2+2*e)}const gc="0123456789abcdef";function mc(t,e){if(e||(e={}),"number"==typeof t){oc.checkSafeUint53(t,"invalid hexlify value");let e="";for(;t;)e=gc[15&t]+e,t=Math.floor(t/16);return e.length?(e.length%2&&(e="0"+e),"0x"+e):"0x00"}if("bigint"==typeof t)return(t=t.toString(16)).length%2?"0x0"+t:"0x"+t;if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),ac(t))return t.toHexString();if(pc(t))return t.length%2&&("left"===e.hexPad?t="0x0"+t.substring(2):"right"===e.hexPad?t+="0":oc.throwArgumentError("hex data is odd-length","value",t)),t.toLowerCase();if(lc(t)){let e="0x";for(let r=0;r<t.length;r++){let n=t[r];e+=gc[(240&n)>>4]+gc[15&n]}return e}return oc.throwArgumentError("invalid hexlify value","value",t)}function yc(t){if("string"!=typeof t)t=mc(t);else if(!pc(t)||t.length%2)return null;return(t.length-2)/2}var wc=Wu().BN;const bc=new sc("bignumber/5.8.0"),Ac={},vc=9007199254740991;let Ec=!1;class _c{constructor(t,e){t!==Ac&&bc.throwError("cannot call constructor directly; use BigNumber.from",sc.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=e,this._isBigNumber=!0,Object.freeze(this)}fromTwos(t){return Cc(Nc(this).fromTwos(t))}toTwos(t){return Cc(Nc(this).toTwos(t))}abs(){return"-"===this._hex[0]?_c.from(this._hex.substring(1)):this}add(t){return Cc(Nc(this).add(Nc(t)))}sub(t){return Cc(Nc(this).sub(Nc(t)))}div(t){return _c.from(t).isZero()&&Bc("division-by-zero","div"),Cc(Nc(this).div(Nc(t)))}mul(t){return Cc(Nc(this).mul(Nc(t)))}mod(t){const e=Nc(t);return e.isNeg()&&Bc("division-by-zero","mod"),Cc(Nc(this).umod(e))}pow(t){const e=Nc(t);return e.isNeg()&&Bc("negative-power","pow"),Cc(Nc(this).pow(e))}and(t){const e=Nc(t);return(this.isNegative()||e.isNeg())&&Bc("unbound-bitwise-result","and"),Cc(Nc(this).and(e))}or(t){const e=Nc(t);return(this.isNegative()||e.isNeg())&&Bc("unbound-bitwise-result","or"),Cc(Nc(this).or(e))}xor(t){const e=Nc(t);return(this.isNegative()||e.isNeg())&&Bc("unbound-bitwise-result","xor"),Cc(Nc(this).xor(e))}mask(t){return(this.isNegative()||t<0)&&Bc("negative-width","mask"),Cc(Nc(this).maskn(t))}shl(t){return(this.isNegative()||t<0)&&Bc("negative-width","shl"),Cc(Nc(this).shln(t))}shr(t){return(this.isNegative()||t<0)&&Bc("negative-width","shr"),Cc(Nc(this).shrn(t))}eq(t){return Nc(this).eq(Nc(t))}lt(t){return Nc(this).lt(Nc(t))}lte(t){return Nc(this).lte(Nc(t))}gt(t){return Nc(this).gt(Nc(t))}gte(t){return Nc(this).gte(Nc(t))}isNegative(){return"-"===this._hex[0]}isZero(){return Nc(this).isZero()}toNumber(){try{return Nc(this).toNumber()}catch(t){Bc("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(t){}return bc.throwError("this platform does not support BigInt",sc.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Ec||(Ec=!0,bc.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?bc.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",sc.errors.UNEXPECTED_ARGUMENT,{}):bc.throwError("BigNumber.toString does not accept parameters",sc.errors.UNEXPECTED_ARGUMENT,{})),Nc(this).toString(10)}toHexString(){return this._hex}toJSON(t){return{type:"BigNumber",hex:this.toHexString()}}static from(t){if(t instanceof _c)return t;if("string"==typeof t)return t.match(/^-?0x[0-9a-f]+$/i)?new _c(Ac,xc(t)):t.match(/^-?[0-9]+$/)?new _c(Ac,xc(new wc(t))):bc.throwArgumentError("invalid BigNumber string","value",t);if("number"==typeof t)return t%1&&Bc("underflow","BigNumber.from",t),(t>=vc||t<=-vc)&&Bc("overflow","BigNumber.from",t),_c.from(String(t));const e=t;if("bigint"==typeof e)return _c.from(e.toString());if(lc(e))return _c.from(mc(e));if(e)if(e.toHexString){const t=e.toHexString();if("string"==typeof t)return _c.from(t)}else{let t=e._hex;if(null==t&&"BigNumber"===e.type&&(t=e.hex),"string"==typeof t&&(pc(t)||"-"===t[0]&&pc(t.substring(1))))return _c.from(t)}return bc.throwArgumentError("invalid BigNumber value","value",t)}static isBigNumber(t){return!(!t||!t._isBigNumber)}}function xc(t){if("string"!=typeof t)return xc(t.toString(16));if("-"===t[0])return"-"===(t=t.substring(1))[0]&&bc.throwArgumentError("invalid hex","value",t),"0x00"===(t=xc(t))?t:"-"+t;if("0x"!==t.substring(0,2)&&(t="0x"+t),"0x"===t)return"0x00";for(t.length%2&&(t="0x0"+t.substring(2));t.length>4&&"0x00"===t.substring(0,4);)t="0x"+t.substring(4);return t}function Cc(t){return _c.from(xc(t))}function Nc(t){const e=_c.from(t).toHexString();return"-"===e[0]?new wc("-"+e.substring(3),16):new wc(e.substring(2),16)}function Bc(t,e,r){const n={fault:t,operation:e};return null!=r&&(n.value=r),bc.throwError(t,sc.errors.NUMERIC_FAULT,n)}var Pc=r(176),Ic=r.n(Pc);function kc(t){return"0x"+Ic().keccak_256(hc(t))}const Oc=new sc("address/5.8.0");function Mc(t){pc(t,20)||Oc.throwArgumentError("invalid address","address",t);const e=(t=t.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let t=0;t<40;t++)r[t]=e[t].charCodeAt(0);const n=hc(kc(r));for(let t=0;t<40;t+=2)n[t>>1]>>4>=8&&(e[t]=e[t].toUpperCase()),(15&n[t>>1])>=8&&(e[t+1]=e[t+1].toUpperCase());return"0x"+e.join("")}const Tc={};for(let t=0;t<10;t++)Tc[String(t)]=String(t);for(let t=0;t<26;t++)Tc[String.fromCharCode(65+t)]=String(10+t);const Sc=Math.floor((Rc=9007199254740991,Math.log10?Math.log10(Rc):Math.log(Rc)/Math.LN10));var Rc,Dc,Fc,Lc,Uc,Gc;function Hc(t){let e=null;if("string"!=typeof t&&Oc.throwArgumentError("invalid address","address",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==t.substring(0,2)&&(t="0x"+t),e=Mc(t),t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&e!==t&&Oc.throwArgumentError("bad address checksum","address",t);else if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(t.substring(2,4)!==function(t){let e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+"00").split("").map(t=>Tc[t]).join("");for(;e.length>=Sc;){let t=e.substring(0,Sc);e=parseInt(t,10)%97+e.substring(t.length)}let r=String(98-parseInt(e,10)%97);for(;r.length<2;)r="0"+r;return r}(t)&&Oc.throwArgumentError("bad icap checksum","address",t),r=t.substring(4),e=new wc(r,36).toString(16);e.length<40;)e="0"+e;e=Mc("0x"+e)}else Oc.throwArgumentError("invalid address","address",t);var r;return e}function qc(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Jc(n.key),n)}}function zc(t,e,r){return e&&qc(t.prototype,e),r&&qc(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function jc(){return jc=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},jc.apply(null,arguments)}function Qc(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,Vc(t,e)}function Vc(t,e){return Vc=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Vc(t,e)}function Jc(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}!function(t){t[t.MAINNET=1]="MAINNET",t[t.GOERLI=5]="GOERLI",t[t.SEPOLIA=11155111]="SEPOLIA",t[t.OPTIMISM=10]="OPTIMISM",t[t.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",t[t.OPTIMISM_SEPOLIA=11155420]="OPTIMISM_SEPOLIA",t[t.ARBITRUM_ONE=42161]="ARBITRUM_ONE",t[t.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",t[t.ARBITRUM_SEPOLIA=421614]="ARBITRUM_SEPOLIA",t[t.POLYGON=137]="POLYGON",t[t.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",t[t.CELO=42220]="CELO",t[t.CELO_ALFAJORES=44787]="CELO_ALFAJORES",t[t.GNOSIS=100]="GNOSIS",t[t.MOONBEAM=1284]="MOONBEAM",t[t.BNB=56]="BNB",t[t.AVALANCHE=43114]="AVALANCHE",t[t.BASE_GOERLI=84531]="BASE_GOERLI",t[t.BASE_SEPOLIA=84532]="BASE_SEPOLIA",t[t.BASE=8453]="BASE",t[t.ZORA=7777777]="ZORA",t[t.ZORA_SEPOLIA=999999999]="ZORA_SEPOLIA",t[t.ROOTSTOCK=30]="ROOTSTOCK",t[t.BLAST=81457]="BLAST",t[t.ZKSYNC=324]="ZKSYNC",t[t.WORLDCHAIN=480]="WORLDCHAIN",t[t.UNICHAIN_SEPOLIA=1301]="UNICHAIN_SEPOLIA",t[t.UNICHAIN=130]="UNICHAIN",t[t.MONAD_TESTNET=10143]="MONAD_TESTNET",t[t.SONEIUM=1868]="SONEIUM"}(Dc||(Dc={})),Dc.MAINNET,Dc.OPTIMISM,Dc.OPTIMISM_GOERLI,Dc.OPTIMISM_SEPOLIA,Dc.ARBITRUM_ONE,Dc.ARBITRUM_GOERLI,Dc.ARBITRUM_SEPOLIA,Dc.POLYGON,Dc.POLYGON_MUMBAI,Dc.GOERLI,Dc.SEPOLIA,Dc.CELO_ALFAJORES,Dc.CELO,Dc.BNB,Dc.AVALANCHE,Dc.BASE,Dc.BASE_GOERLI,Dc.BASE_SEPOLIA,Dc.ZORA,Dc.ZORA_SEPOLIA,Dc.ROOTSTOCK,Dc.BLAST,Dc.ZKSYNC,Dc.WORLDCHAIN,Dc.UNICHAIN_SEPOLIA,Dc.UNICHAIN,Dc.MONAD_TESTNET,Dc.SONEIUM,function(t){t.ETHER="ETH",t.MATIC="MATIC",t.CELO="CELO",t.GNOSIS="XDAI",t.MOONBEAM="GLMR",t.BNB="BNB",t.AVAX="AVAX",t.ROOTSTOCK="RBTC"}(Fc||(Fc={}));Dc.MAINNET,Dc.GOERLI,Dc.SEPOLIA;Dc.OPTIMISM,Dc.ARBITRUM_ONE,Dc.POLYGON,Dc.POLYGON_MUMBAI,Dc.SEPOLIA;var Kc,Wc,Zc,Xc=((Lc={})[Dc.MAINNET]="0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",Lc[Dc.GOERLI]="0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",Lc[Dc.SEPOLIA]="0xF62c03E08ada871A0bEb309762E260a7a6a880E6",Lc[Dc.OPTIMISM]="0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf",Lc[Dc.ARBITRUM_ONE]="0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9",Lc[Dc.AVALANCHE]="0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C",Lc[Dc.BASE_SEPOLIA]="0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e",Lc[Dc.BASE]="0x8909dc15e40173ff4699343b6eb8132c65e18ec6",Lc[Dc.BNB]="0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",Lc[Dc.POLYGON]="0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C",Lc[Dc.CELO]="0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f",Lc[Dc.BLAST]="0x5C346464d33F90bABaf70dB6388507CC889C1070",Lc[Dc.WORLDCHAIN]="0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",Lc[Dc.UNICHAIN_SEPOLIA]="0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",Lc[Dc.UNICHAIN]="0x1f98400000000000000000000000000000000002",Lc[Dc.MONAD_TESTNET]="0x733e88f248b742db6c14c0b1713af5ad7fdd59d0",Lc[Dc.SONEIUM]="0x97febbc2adbd5644ba22736e962564b23f5828ce",Lc),Yc=((Uc={})[Dc.MAINNET]="0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",Uc[Dc.GOERLI]="0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",Uc[Dc.SEPOLIA]="0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3",Uc[Dc.ARBITRUM_ONE]="0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24",Uc[Dc.OPTIMISM]="0x4a7b5da61326a6379179b40d00f57e5bbdc962c2",Uc[Dc.BASE_SEPOLIA]="0x1689E7B1F10000AE47eBfE339a4f69dECd19F602",Uc[Dc.BASE]="0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24",Uc[Dc.AVALANCHE]="0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24",Uc[Dc.BNB]="0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24",Uc[Dc.POLYGON]="0xedf6066a2b290c185783862c7f4776a2c8077ad1",Uc[Dc.BLAST]="0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035",Uc[Dc.WORLDCHAIN]="0x541aB7c31A119441eF3575F6973277DE0eF460bd",Uc[Dc.UNICHAIN_SEPOLIA]="0x920b806E40A00E02E7D2b94fFc89860fDaEd3640",Uc[Dc.UNICHAIN]="0x284f11109359a7e1306c3e447ef14d38400063ff",Uc[Dc.MONAD_TESTNET]="0xfb8e1c3b833f9e67a71c859a132cf783b645e436",Uc[Dc.SONEIUM]="0x273f68c234fa55b550b40e563c4a488e0d334320",{v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x1F98415757620B543A52E61c46B32eB19261F984",quoterAddress:"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",v3MigratorAddress:"0xA5644E29708357803b5A882D272c41cC0dF92B34",nonfungiblePositionManagerAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88"}),$c=jc({},Yc,{mixedRouteQuoterV1Address:"0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E",v4PoolManagerAddress:"0x000000000004444c5dc75cB358380D2e3dE08A90",v4PositionManagerAddress:"0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e",v4StateView:"0x7ffe42c4a5deea5b0fec41c94c136cf115597227",v4QuoterAddress:"0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203"}),tl=jc({},Yc,{mixedRouteQuoterV1Address:"0xBa60b6e6fF25488308789E6e0A65D838be34194e"}),el=jc({},Yc,{v4PoolManagerAddress:"0x9a13f98cb987694c9f086b1f5eb990eea8264ec3",v4PositionManagerAddress:"0x3c3ea4b57a46241e54610e5f022e5c45859a1017",v4StateView:"0xc18a3169788f4f75a170290584eca6395c75ecdb",v4QuoterAddress:"0x1f3131a13296fb91c90870043742c3cdbff1a8d7"}),rl=jc({},Yc,{multicallAddress:"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",tickLensAddress:"0xbfd8137f7d1516D3ea5cA83523914859ec47F573",v4PoolManagerAddress:"0x360e68faccca8ca495c1b759fd9eee466db9fb32",v4PositionManagerAddress:"0xd88f38f930b7952f2db2432cb002e7abbf3dd869",v4StateView:"0x76fd297e2d437cd7f76d50f01afe6160f86e9990",v4QuoterAddress:"0x3972c00f7ed4885e145823eb7c655375d275a1c5"}),nl=jc({},Yc,{v4PoolManagerAddress:"0x67366782805870060151383f4bbff9dab53e5cd6",v4PositionManagerAddress:"0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9",v4StateView:"0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a",v4QuoterAddress:"0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9"}),il={v3CoreFactoryAddress:"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",multicallAddress:"0x633987602DE5C4F337e3DbF265303A1080324204",quoterAddress:"0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",v3MigratorAddress:"0x3cFd4d48EDfDCC53D3f173F596f621064614C582",nonfungiblePositionManagerAddress:"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",tickLensAddress:"0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D"};(Gc={})[Dc.MAINNET]=$c,Gc[Dc.OPTIMISM]=el,Gc[Dc.ARBITRUM_ONE]=rl,Gc[Dc.POLYGON]=nl,Gc[Dc.POLYGON_MUMBAI]=nl,Gc[Dc.GOERLI]=tl,Gc[Dc.CELO]=il,Gc[Dc.CELO_ALFAJORES]=il,Gc[Dc.BNB]={v3CoreFactoryAddress:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",multicallAddress:"0x963Df249eD09c358A4819E39d9Cd5736c3087184",quoterAddress:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",v3MigratorAddress:"0x32681814957e0C13117ddc0c2aba232b5c9e760f",nonfungiblePositionManagerAddress:"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",tickLensAddress:"0xD9270014D396281579760619CCf4c3af0501A47C",swapRouter02Address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2",v4PoolManagerAddress:"0x28e2ea090877bf75740558f6bfb36a5ffee9e9df",v4PositionManagerAddress:"0x7a4a5c919ae2541aed11041a1aeee68f1287f95b",v4StateView:"0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4",v4QuoterAddress:"0x9f75dd27d6664c475b90e105573e550ff69437b0"},Gc[Dc.OPTIMISM_GOERLI]={v3CoreFactoryAddress:"0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",multicallAddress:"0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",quoterAddress:"0x9569CbA925c8ca2248772A9A4976A516743A246F",v3MigratorAddress:"0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",nonfungiblePositionManagerAddress:"0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",tickLensAddress:"0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"},Gc[Dc.OPTIMISM_SEPOLIA]={v3CoreFactoryAddress:"0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF",multicallAddress:"0x80e4e06841bb76AA9735E0448cB8d003C0EF009a",quoterAddress:"0x0FBEa6cf957d95ee9313490050F6A0DA68039404",v3MigratorAddress:"0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07",nonfungiblePositionManagerAddress:"0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d",tickLensAddress:"0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5",swapRouter02Address:"0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4"},Gc[Dc.ARBITRUM_GOERLI]={v3CoreFactoryAddress:"0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",multicallAddress:"0x8260CB40247290317a4c062F3542622367F206Ee",quoterAddress:"0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",v3MigratorAddress:"0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",nonfungiblePositionManagerAddress:"0x622e4726a167799826d1E1D150b076A7725f5D81",tickLensAddress:"0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"},Gc[Dc.ARBITRUM_SEPOLIA]={v3CoreFactoryAddress:"0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e",multicallAddress:"0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A",quoterAddress:"0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B",v3MigratorAddress:"0x398f43ef2c67B941147157DA1c5a868E906E043D",nonfungiblePositionManagerAddress:"0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65",tickLensAddress:"0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9",swapRouter02Address:"0x101F443B4d1b059569D643917553c771E1b9663E",v4PoolManagerAddress:"0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317",v4PositionManagerAddress:"0xAc631556d3d4019C95769033B5E719dD77124BAc",v4StateView:"0x9d467fa9062b6e9b1a46e26007ad82db116c67cb",v4QuoterAddress:"0x7de51022d70a725b508085468052e25e22b5c4c9"},Gc[Dc.SEPOLIA]={v3CoreFactoryAddress:"0x0227628f3F023bb0B980b67D528571c95c6DaC1c",multicallAddress:"0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",quoterAddress:"0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",v3MigratorAddress:"0x729004182cF005CEC8Bd85df140094b6aCbe8b15",nonfungiblePositionManagerAddress:"0x1238536071E1c677A632429e3655c799b22cDA52",tickLensAddress:"0xd7f33bcdb21b359c8ee6f0251d30e94832baad07",swapRouter02Address:"0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E",mixedRouteQuoterV2Address:"0x4745f77b56a0e2294426e3936dc4fab68d9543cd",v4PoolManagerAddress:"0xE03A1074c86CFeDd5C142C4F04F1a1536e203543",v4PositionManagerAddress:"0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4",v4StateView:"0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c",v4QuoterAddress:"0x61b3f2011a92d183c7dbadbda940a7555ccf9227"},Gc[Dc.AVALANCHE]={v3CoreFactoryAddress:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",multicallAddress:"0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",quoterAddress:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",v3MigratorAddress:"0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",nonfungiblePositionManagerAddress:"0x655C406EBFa14EE2006250925e54ec43AD184f8B",tickLensAddress:"0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",swapRouter02Address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE",v4PoolManagerAddress:"0x06380c0e0912312b5150364b9dc4542ba0dbbc85",v4PositionManagerAddress:"0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd",v4StateView:"0xc3c9e198c735a4b97e3e683f391ccbdd60b69286",v4QuoterAddress:"0xbe40675bb704506a3c2ccfb762dcfd1e979845c2"},Gc[Dc.BASE]={v3CoreFactoryAddress:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",multicallAddress:"0x091e99cb1C49331a94dD62755D168E941AbD0693",quoterAddress:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",v3MigratorAddress:"0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",nonfungiblePositionManagerAddress:"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",tickLensAddress:"0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",swapRouter02Address:"0x2626664c2603336E57B271c5C0b26F421741e481",mixedRouteQuoterV1Address:"0xe544efae946f0008ae9a8d64493efa7886b73776",v4PoolManagerAddress:"0x498581ff718922c3f8e6a244956af099b2652b2b",v4PositionManagerAddress:"0x7c5f5a4bbd8fd63184577525326123b519429bdc",v4StateView:"0xa3c0c9b65bad0b08107aa264b0f3db444b867a71",v4QuoterAddress:"0x0d5e0f971ed27fbff6c2837bf31316121532048d"},Gc[Dc.BASE_GOERLI]={v3CoreFactoryAddress:"0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",multicallAddress:"0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",quoterAddress:"0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",v3MigratorAddress:"0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",nonfungiblePositionManagerAddress:"0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",tickLensAddress:"0x1acB873Ee909D0c98adB18e4474943249F931b92",swapRouter02Address:"0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"},Gc[Dc.BASE_SEPOLIA]={v3CoreFactoryAddress:"0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24",multicallAddress:"0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1",quoterAddress:"0xC5290058841028F1614F3A6F0F5816cAd0df5E27",v3MigratorAddress:"0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10",nonfungiblePositionManagerAddress:"0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2",tickLensAddress:"0xedf6066a2b290C185783862C7F4776A2C8077AD1",swapRouter02Address:"0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4",v4PoolManagerAddress:"0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408",v4PositionManagerAddress:"0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80",v4StateView:"0x571291b572ed32ce6751a2cb2486ebee8defb9b4",v4QuoterAddress:"0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba"},Gc[Dc.ZORA]={v3CoreFactoryAddress:"0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb",multicallAddress:"0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15",quoterAddress:"0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df",v3MigratorAddress:"0x048352d8dCF13686982C799da63fA6426a9D0b60",nonfungiblePositionManagerAddress:"0xbC91e8DfA3fF18De43853372A3d7dfe585137D78",tickLensAddress:"0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044",swapRouter02Address:"0x7De04c96BE5159c3b5CeffC82aa176dc81281557",v4PoolManagerAddress:"0x0575338e4c17006ae181b47900a84404247ca30f",v4PositionManagerAddress:"0xf66c7b99e2040f0d9b326b3b7c152e9663543d63",v4StateView:"0x385785af07d63b50d0a0ea57c4ff89d06adf7328",v4QuoterAddress:"0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6"},Gc[Dc.ZORA_SEPOLIA]={v3CoreFactoryAddress:"0x4324A677D74764f46f33ED447964252441aA8Db6",multicallAddress:"0xA1E7e3A69671C4494EC59Dbd442de930a93F911A",quoterAddress:"0xC195976fEF0985886E37036E2DF62bF371E12Df0",v3MigratorAddress:"0x65ef259b31bf1d977c37e9434658694267674897",nonfungiblePositionManagerAddress:"0xB8458EaAe43292e3c1F7994EFd016bd653d23c20",tickLensAddress:"0x23C0F71877a1Fc4e20A78018f9831365c85f3064"},Gc[Dc.ROOTSTOCK]={v3CoreFactoryAddress:"0xaF37EC98A00FD63689CF3060BF3B6784E00caD82",multicallAddress:"0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386",quoterAddress:"0xb51727c996C68E60F598A923a5006853cd2fEB31",v3MigratorAddress:"0x16678977CA4ec3DAD5efc7b15780295FE5f56162",nonfungiblePositionManagerAddress:"0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1",tickLensAddress:"0x55B9dF5bF68ADe972191a91980459f48ecA16afC",swapRouter02Address:"0x0B14ff67f0014046b4b99057Aec4509640b3947A"},Gc[Dc.BLAST]={v3CoreFactoryAddress:"0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd",multicallAddress:"0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705",quoterAddress:"0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77",v3MigratorAddress:"0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0",nonfungiblePositionManagerAddress:"0xB218e4f7cF0533d4696fDfC419A0023D33345F28",tickLensAddress:"0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274",swapRouter02Address:"0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66",v4PoolManagerAddress:"0x1631559198a9e474033433b2958dabc135ab6446",v4PositionManagerAddress:"0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad",v4StateView:"0x12a88ae16f46dce4e8b15368008ab3380885df30",v4QuoterAddress:"0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf"},Gc[Dc.ZKSYNC]={v3CoreFactoryAddress:"0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422",multicallAddress:"0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C",quoterAddress:"0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28",v3MigratorAddress:"0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E",nonfungiblePositionManagerAddress:"0x0616e5762c1E7Dc3723c50663dF10a162D690a86",tickLensAddress:"0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89",swapRouter02Address:"0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3"},Gc[Dc.WORLDCHAIN]={v3CoreFactoryAddress:"0x7a5028BDa40e7B173C278C5342087826455ea25a",multicallAddress:"0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9",quoterAddress:"0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c",v3MigratorAddress:"0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3",nonfungiblePositionManagerAddress:"0xec12a9F9a09f50550686363766Cc153D03c27b5e",tickLensAddress:"0xE61df0CaC9d85876aCE5E3037005D80943570623",swapRouter02Address:"0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6",v4PoolManagerAddress:"0xb1860d529182ac3bc1f51fa2abd56662b7d13f33",v4PositionManagerAddress:"0xc585e0f504613b5fbf874f21af14c65260fb41fa",v4StateView:"0x51d394718bc09297262e368c1a481217fdeb71eb",v4QuoterAddress:"0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0"},Gc[Dc.UNICHAIN_SEPOLIA]={v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1",quoterAddress:"0x6Dd37329A1A225a6Fca658265D460423DCafBF89",v3MigratorAddress:"0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2",nonfungiblePositionManagerAddress:"0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075",tickLensAddress:"0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0",swapRouter02Address:"0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166",v4PoolManagerAddress:"0x00b036b58a818b1bc34d502d3fe730db729e62ac",v4PositionManagerAddress:"0xf969aee60879c54baaed9f3ed26147db216fd664",v4StateView:"0xc199f1072a74d4e905aba1a84d9a45e2546b6222",v4QuoterAddress:"0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472"},Gc[Dc.UNICHAIN]={v3CoreFactoryAddress:"0x1f98400000000000000000000000000000000003",multicallAddress:"0xb7610f9b733e7d45184be3a1bc966960ccc54f0b",quoterAddress:"0x565ac8c7863d9bb16d07e809ff49fe5cd467634c",v3MigratorAddress:"0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc",nonfungiblePositionManagerAddress:"0x943e6e07a7e8e791dafc44083e54041d743c46e9",tickLensAddress:"0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443",swapRouter02Address:"0x73855d06de49d0fe4a9c42636ba96c62da12ff9c",v4PoolManagerAddress:"0x1f98400000000000000000000000000000000004",v4PositionManagerAddress:"0x4529a01c7a0410167c5740c487a8de60232617bf",v4StateView:"0x86e8631a016f9068c3f085faf484ee3f5fdee8f2",v4QuoterAddress:"0x333e3c607b141b18ff6de9f258db6e77fe7491e0"},Gc[Dc.MONAD_TESTNET]={v3CoreFactoryAddress:"0x961235a9020b05c44df1026d956d1f4d78014276",multicallAddress:"0xa707ceb989cc3728551ed0e6e44b718dd114cf44",quoterAddress:"0x1ba215c17565de7b0cb7ecab971bcf540c24a862",v3MigratorAddress:"0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661",nonfungiblePositionManagerAddress:"0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7",tickLensAddress:"0x337478eb6058455ecb3696184b30dd6a29e3a893",swapRouter02Address:"0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7"},Gc[Dc.SONEIUM]={v3CoreFactoryAddress:"0x42ae7ec7ff020412639d443e245d936429fbe717",multicallAddress:"0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2",quoterAddress:"0x3e6c707d0125226ff60f291b6bd1404634f00aba",v3MigratorAddress:"0xa107580f73bd797bd8b87ff24e98346d99f93ddb",nonfungiblePositionManagerAddress:"0x56c1205b0244332011c1e866f4ea5384eb6bfa2c",tickLensAddress:"0xcd08eefb928c86499e6235ac155906bb7c4dc41a",swapRouter02Address:"0x7e40db01736f88464e5f4e42394f3d5bbb6705b9",v4PoolManagerAddress:"0x360e68faccca8ca495c1b759fd9eee466db9fb32",v4PositionManagerAddress:"0x1b35d13a2e2528f192637f14b05f0dc0e7deb566",v4StateView:"0x76fd297e2d437cd7f76d50f01afe6160f86e9990",v4QuoterAddress:"0x3972c00f7ed4885e145823eb7c655375d275a1c5"},{}[Dc.MAINNET]="0xC4e172459f1E7939D522503B81AFAaC1014CE6F6",{}[Dc.MAINNET]="0x408ED6354d4973f66138C91495F2f2FCbd8724C3",{}[Dc.MAINNET]="0x090D4613473dEE047c3f2706764f49E0821D256e",{}[Dc.MAINNET]="0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8",{}[Dc.MAINNET]="0x65770b5283117639760beA3F867b69b3697a91dd",(Zc=Kc||(Kc={}))[Zc.EXACT_INPUT=0]="EXACT_INPUT",Zc[Zc.EXACT_OUTPUT=1]="EXACT_OUTPUT",function(t){t[t.ROUND_DOWN=0]="ROUND_DOWN",t[t.ROUND_HALF_UP=1]="ROUND_HALF_UP",t[t.ROUND_UP=2]="ROUND_UP"}(Wc||(Wc={}));var sl,ol,al=Gu().BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ul=Ju()(zu()),cl=Ju()(Qu()),ll=((sl={})[Wc.ROUND_DOWN]=ul.ROUND_DOWN,sl[Wc.ROUND_HALF_UP]=ul.ROUND_HALF_UP,sl[Wc.ROUND_UP]=ul.ROUND_UP,sl),hl=((ol={})[Wc.ROUND_DOWN]=0,ol[Wc.ROUND_HALF_UP]=1,ol[Wc.ROUND_UP]=3,ol),fl=function(){function t(t,e){void 0===e&&(e=Gu().BigInt(1)),this.numerator=Gu().BigInt(t),this.denominator=Gu().BigInt(e)}t.tryParseFraction=function(e){if(e instanceof Gu()||"number"==typeof e||"string"==typeof e)return new t(e);if("numerator"in e&&"denominator"in e)return e;throw new Error("Could not parse fraction")};var e=t.prototype;return e.invert=function(){return new t(this.denominator,this.numerator)},e.add=function(e){var r=t.tryParseFraction(e);return Gu().equal(this.denominator,r.denominator)?new t(Gu().add(this.numerator,r.numerator),this.denominator):new t(Gu().add(Gu().multiply(this.numerator,r.denominator),Gu().multiply(r.numerator,this.denominator)),Gu().multiply(this.denominator,r.denominator))},e.subtract=function(e){var r=t.tryParseFraction(e);return Gu().equal(this.denominator,r.denominator)?new t(Gu().subtract(this.numerator,r.numerator),this.denominator):new t(Gu().subtract(Gu().multiply(this.numerator,r.denominator),Gu().multiply(r.numerator,this.denominator)),Gu().multiply(this.denominator,r.denominator))},e.lessThan=function(e){var r=t.tryParseFraction(e);return Gu().lessThan(Gu().multiply(this.numerator,r.denominator),Gu().multiply(r.numerator,this.denominator))},e.equalTo=function(e){var r=t.tryParseFraction(e);return Gu().equal(Gu().multiply(this.numerator,r.denominator),Gu().multiply(r.numerator,this.denominator))},e.greaterThan=function(e){var r=t.tryParseFraction(e);return Gu().greaterThan(Gu().multiply(this.numerator,r.denominator),Gu().multiply(r.numerator,this.denominator))},e.multiply=function(e){var r=t.tryParseFraction(e);return new t(Gu().multiply(this.numerator,r.numerator),Gu().multiply(this.denominator,r.denominator))},e.divide=function(e){var r=t.tryParseFraction(e);return new t(Gu().multiply(this.numerator,r.denominator),Gu().multiply(this.denominator,r.numerator))},e.toSignificant=function(t,e,r){void 0===e&&(e={groupSeparator:""}),void 0===r&&(r=Wc.ROUND_HALF_UP),Number.isInteger(t)||Hu(!1),t>0||Hu(!1),ul.set({precision:t+1,rounding:ll[r]});var n=new ul(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return n.toFormat(n.decimalPlaces(),e)},e.toFixed=function(t,e,r){return void 0===e&&(e={groupSeparator:""}),void 0===r&&(r=Wc.ROUND_HALF_UP),Number.isInteger(t)||Hu(!1),t>=0||Hu(!1),cl.DP=t,cl.RM=hl[r],new cl(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,e)},zc(t,[{key:"quotient",get:function(){return Gu().divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new t(Gu().remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new t(this.numerator,this.denominator)}}])}(),dl=Ju()(Qu()),pl=function(t){function e(e,r,n){var i;return i=t.call(this,r,n)||this,Gu().lessThanOrEqual(i.quotient,al)||Hu(!1),i.currency=e,i.decimalScale=Gu().exponentiate(Gu().BigInt(10),Gu().BigInt(e.decimals)),i}Qc(e,t),e.fromRawAmount=function(t,r){return new e(t,r)},e.fromFractionalAmount=function(t,r,n){return new e(t,r,n)};var r=e.prototype;return r.add=function(r){this.currency.equals(r.currency)||Hu(!1);var n=t.prototype.add.call(this,r);return e.fromFractionalAmount(this.currency,n.numerator,n.denominator)},r.subtract=function(r){this.currency.equals(r.currency)||Hu(!1);var n=t.prototype.subtract.call(this,r);return e.fromFractionalAmount(this.currency,n.numerator,n.denominator)},r.multiply=function(r){var n=t.prototype.multiply.call(this,r);return e.fromFractionalAmount(this.currency,n.numerator,n.denominator)},r.divide=function(r){var n=t.prototype.divide.call(this,r);return e.fromFractionalAmount(this.currency,n.numerator,n.denominator)},r.toSignificant=function(e,r,n){return void 0===e&&(e=6),void 0===n&&(n=Wc.ROUND_DOWN),t.prototype.divide.call(this,this.decimalScale).toSignificant(e,r,n)},r.toFixed=function(e,r,n){return void 0===e&&(e=this.currency.decimals),void 0===n&&(n=Wc.ROUND_DOWN),e<=this.currency.decimals||Hu(!1),t.prototype.divide.call(this,this.decimalScale).toFixed(e,r,n)},r.toExact=function(t){return void 0===t&&(t={groupSeparator:""}),dl.DP=this.currency.decimals,new dl(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(t)},zc(e,[{key:"wrapped",get:function(){return this.currency.isToken?this:e.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}])}(fl),gl=new fl(Gu().BigInt(100));function ml(t){return new yl(t.numerator,t.denominator)}var yl=function(t){function e(){var e;return(e=t.apply(this,arguments)||this).isPercent=!0,e}Qc(e,t);var r=e.prototype;return r.add=function(e){return ml(t.prototype.add.call(this,e))},r.subtract=function(e){return ml(t.prototype.subtract.call(this,e))},r.multiply=function(e){return ml(t.prototype.multiply.call(this,e))},r.divide=function(e){return ml(t.prototype.divide.call(this,e))},r.toSignificant=function(e,r,n){return void 0===e&&(e=5),t.prototype.multiply.call(this,gl).toSignificant(e,r,n)},r.toFixed=function(e,r,n){return void 0===e&&(e=2),t.prototype.multiply.call(this,gl).toFixed(e,r,n)},e}(fl),wl=function(t){function e(){for(var e,r,n,i,s,o=arguments.length,a=new Array(o),u=0;u<o;u++)a[u]=arguments[u];if(4===a.length)r=a[0],n=a[1],i=a[2],s=a[3];else{var c=a[0].quoteAmount.divide(a[0].baseAmount),l=[a[0].baseAmount.currency,a[0].quoteAmount.currency,c.denominator,c.numerator];r=l[0],n=l[1],i=l[2],s=l[3]}return(e=t.call(this,s,i)||this).baseCurrency=r,e.quoteCurrency=n,e.scalar=new fl(Gu().exponentiate(Gu().BigInt(10),Gu().BigInt(r.decimals)),Gu().exponentiate(Gu().BigInt(10),Gu().BigInt(n.decimals))),e}Qc(e,t);var r=e.prototype;return r.invert=function(){return new e(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},r.multiply=function(r){this.quoteCurrency.equals(r.baseCurrency)||Hu(!1);var n=t.prototype.multiply.call(this,r);return new e(this.baseCurrency,r.quoteCurrency,n.denominator,n.numerator)},r.quote=function(e){e.currency.equals(this.baseCurrency)||Hu(!1);var r=t.prototype.multiply.call(this,e);return pl.fromFractionalAmount(this.quoteCurrency,r.numerator,r.denominator)},r.toSignificant=function(t,e,r){return void 0===t&&(t=6),this.adjustedForDecimals.toSignificant(t,e,r)},r.toFixed=function(t,e,r){return void 0===t&&(t=4),this.adjustedForDecimals.toFixed(t,e,r)},zc(e,[{key:"adjustedForDecimals",get:function(){return t.prototype.multiply.call(this,this.scalar)}}])}(fl),bl=function(t,e,r,n){Number.isSafeInteger(t)||Hu(!1),e>=0&&e<255&&Number.isInteger(e)||Hu(!1),this.chainId=t,this.decimals=e,this.symbol=r,this.name=n},Al=function(t){function e(){var e;return(e=t.apply(this,arguments)||this).isNative=!0,e.isToken=!1,e}return Qc(e,t),e}(bl),vl=/^0x[0-9a-fA-F]{40}$/,El=function(t){function e(e,r,n,i,s,o,a,u){var c;return(c=t.call(this,e,n,i,s)||this).isNative=!1,c.isToken=!0,c.address=o?function(t){if(vl.test(t))return t;throw new Error(t+" is not a valid address.")}(r):function(t){try{return Hc(t)}catch(e){throw new Error(t+" is not a valid address.")}}(r),a&&(a.gte(_c.from(0))||Hu(!1)),u&&(u.gte(_c.from(0))||Hu(!1)),c.buyFeeBps=a,c.sellFeeBps=u,c}Qc(e,t);var r=e.prototype;return r.equals=function(t){return t.isToken&&this.chainId===t.chainId&&this.address.toLowerCase()===t.address.toLowerCase()},r.sortsBefore=function(t){return this.chainId!==t.chainId&&Hu(!1),this.address.toLowerCase()===t.address.toLowerCase()&&Hu(!1),this.address.toLowerCase()<t.address.toLowerCase()},zc(e,[{key:"wrapped",get:function(){return this}}])}(bl),_l={1:new El(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),11155111:new El(11155111,"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",18,"WETH","Wrapped Ether"),3:new El(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),4:new El(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),5:new El(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),42:new El(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),10:new El(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),69:new El(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),11155420:new El(11155420,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),42161:new El(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),421611:new El(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether"),421614:new El(421614,"0x980B62Da83eFf3D4576C647993b0c1D7faf17c73",18,"WETH","Wrapped Ether"),8453:new El(8453,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),84532:new El(84532,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),56:new El(56,"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",18,"WBNB","Wrapped BNB"),137:new El(137,"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",18,"WMATIC","Wrapped MATIC"),43114:new El(43114,"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",18,"WAVAX","Wrapped AVAX"),7777777:new El(7777777,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),81457:new El(81457,"0x4300000000000000000000000000000000000004",18,"WETH","Wrapped Ether"),324:new El(324,"0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91",18,"WETH","Wrapped Ether"),480:new El(480,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),1301:new El(1301,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),130:new El(130,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),10143:new El(10143,"0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701",18,"WMON","Wrapped Monad"),1868:new El(1868,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether")};function xl(t,e,r,n){if(r>0||Hu(!1),t.length<=r||Hu(!1),0===t.length)return t.push(e),null;var i=t.length===r;if(i&&n(t[t.length-1],e)<=0)return e;for(var s=0,o=t.length;s<o;){var a=s+o>>>1;n(t[a],e)<=0?s=a+1:o=a}return t.splice(s,0,e),i?t.pop():null}(function(t){function e(e){return t.call(this,e,18,"ETH","Ether")||this}return Qc(e,t),e.onChain=function(t){var r;return null!=(r=this._etherCache[t])?r:this._etherCache[t]=new e(t)},e.prototype.equals=function(t){return t.isNative&&t.chainId===this.chainId},zc(e,[{key:"wrapped",get:function(){var t=_l[this.chainId];return t||Hu(!1),t}}])}(Al))._etherCache={};var Cl=Gu().BigInt(Number.MAX_SAFE_INTEGER),Nl=Gu().BigInt(0),Bl=Gu().BigInt(1),Pl=Gu().BigInt(2);function Il(t){if(Gu().greaterThanOrEqual(t,Nl)||Hu(!1),Gu().lessThan(t,Cl))return Gu().BigInt(Math.floor(Math.sqrt(Gu().toNumber(t))));var e,r;for(e=t,r=Gu().add(Gu().divide(t,Pl),Bl);Gu().lessThan(r,e);)e=r,r=Gu().divide(Gu().add(Gu().divide(t,r),r),Pl);return e}const kl=new sc("strings/5.8.0");var Ol,Ml;function Tl(t,e,r,n,i){if(t===Ml.BAD_PREFIX||t===Ml.UNEXPECTED_CONTINUE){let t=0;for(let n=e+1;n<r.length&&r[n]>>6==2;n++)t++;return t}return t===Ml.OVERRUN?r.length-e-1:0}!function(t){t.current="",t.NFC="NFC",t.NFD="NFD",t.NFKC="NFKC",t.NFKD="NFKD"}(Ol||(Ol={})),function(t){t.UNEXPECTED_CONTINUE="unexpected continuation byte",t.BAD_PREFIX="bad codepoint prefix",t.OVERRUN="string overrun",t.MISSING_CONTINUE="missing continuation byte",t.OUT_OF_RANGE="out of UTF-8 range",t.UTF16_SURROGATE="UTF-16 surrogate",t.OVERLONG="overlong representation"}(Ml||(Ml={})),Object.freeze({error:function(t,e,r,n,i){return kl.throwArgumentError(`invalid codepoint at offset ${e}; ${t}`,"bytes",r)},ignore:Tl,replace:function(t,e,r,n,i){return t===Ml.OVERLONG?(n.push(i),0):(n.push(65533),Tl(t,e,r))}});const Sl=new RegExp("^bytes([0-9]+)$"),Rl=new RegExp("^(u?int)([0-9]*)$"),Dl=new RegExp("^(.*)\\[([0-9]*)\\]$"),Fl=new sc("solidity/5.8.0");function Ll(t,e,r){switch(t){case"address":return r?dc(e,32):hc(e);case"string":return function(t,e=Ol.current){e!=Ol.current&&(kl.checkNormalize(),t=t.normalize(e));let r=[];for(let e=0;e<t.length;e++){const n=t.charCodeAt(e);if(n<128)r.push(n);else if(n<2048)r.push(n>>6|192),r.push(63&n|128);else if(55296==(64512&n)){e++;const i=t.charCodeAt(e);if(e>=t.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const s=65536+((1023&n)<<10)+(1023&i);r.push(s>>18|240),r.push(s>>12&63|128),r.push(s>>6&63|128),r.push(63&s|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return hc(r)}(e);case"bytes":return hc(e);case"bool":return e=e?"0x01":"0x00",r?dc(e,32):hc(e)}let n=t.match(Rl);if(n){let i=parseInt(n[2]||"256");return(n[2]&&String(i)!==n[2]||i%8!=0||0===i||i>256)&&Fl.throwArgumentError("invalid number type","type",t),r&&(i=256),dc(e=_c.from(e).toTwos(i),i/8)}if(n=t.match(Sl),n){const i=parseInt(n[1]);return(String(i)!==n[1]||0===i||i>32)&&Fl.throwArgumentError("invalid bytes type","type",t),hc(e).byteLength!==i&&Fl.throwArgumentError(`invalid value for ${t}`,"value",e),r?hc((e+"0000000000000000000000000000000000000000000000000000000000000000").substring(0,66)):e}if(n=t.match(Dl),n&&Array.isArray(e)){const r=n[1];parseInt(n[2]||String(e.length))!=e.length&&Fl.throwArgumentError(`invalid array length for ${t}`,"value",e);const i=[];return e.forEach(function(t){i.push(Ll(r,t,!0))}),fc(i)}return Fl.throwArgumentError("invalid type","type",t)}function Ul(t,e){t.length!=e.length&&Fl.throwArgumentError("wrong number of values; expected ${ types.length }","values",e);const r=[];return t.forEach(function(t,n){r.push(Ll(t,e[n]))}),mc(fc(r))}var Gl=Xc,Hl=Gu().BigInt(1e3),ql=Gu().BigInt(0),zl=Gu().BigInt(1),jl=Gu().BigInt(5),Ql=Gu().BigInt(997),Vl=Gu().BigInt(1e3),Jl=Gu().BigInt(1e4),Kl=new yl(ql),Wl=new yl(zl);function Zl(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Xl(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,ih(n.key),n)}}function Yl(t,e,r){return e&&Xl(t.prototype,e),r&&Xl(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function $l(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return Zl(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Zl(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function th(t){return th=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},th(t)}function eh(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,nh(t,e)}function rh(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(rh=function(){return!!t})()}function nh(t,e){return nh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},nh(t,e)}function ih(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}function sh(t){var e="function"==typeof Map?new Map:void 0;return sh=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return function(t,e,r){if(rh())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var i=new(t.bind.apply(t,n));return r&&nh(i,r.prototype),i}(t,arguments,th(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),nh(r,t)},sh(t)}var oh="setPrototypeOf"in Object,ah=function(t){function e(){var r;return(r=t.call(this)||this).isInsufficientReservesError=!0,r.name=r.constructor.name,oh&&Object.setPrototypeOf(r,(this instanceof e?this.constructor:void 0).prototype),r}return eh(e,t),e}(sh(Error)),uh=function(t){function e(){var r;return(r=t.call(this)||this).isInsufficientInputAmountError=!0,r.name=r.constructor.name,oh&&Object.setPrototypeOf(r,(this instanceof e?this.constructor:void 0).prototype),r}return eh(e,t),e}(sh(Error)),ch=function(t){var e,r,n,i,s,o,a,u=t.factoryAddress,c=t.tokenA,l=t.tokenB,h=c.sortsBefore(l)?[c,l]:[l,c],f=h[1];return n=u,e=["bytes"],r=[Ul(["address","address"],[h[0].address,f.address])],i=kc(Ul(e,r)),s="0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",32!==yc(i)&&Oc.throwArgumentError("salt must be 32 bytes","salt",i),32!==yc(s)&&Oc.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",s),Hc((a=12,"string"!=typeof(o=kc(fc(["0xff",Hc(n),i,s])))?o=mc(o):(!pc(o)||o.length%2)&&oc.throwArgumentError("invalid hexData","value",o),a=2+2*a,"0x"+o.substring(a)))},lh=function(){function t(e,r){var n=e.currency.sortsBefore(r.currency)?[e,r]:[r,e];this.liquidityToken=new El(n[0].currency.chainId,t.getAddress(n[0].currency,n[1].currency),18,"UNI-V2","Uniswap V2"),this.tokenAmounts=n}t.getAddress=function(t,e){var r,n=null!=(r=Gl[t.chainId])?r:"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f";return ch({factoryAddress:n,tokenA:t,tokenB:e})};var e=t.prototype;return e.involvesToken=function(t){return t.equals(this.token0)||t.equals(this.token1)},e.priceOf=function(t){return this.involvesToken(t)||Hu(!1),t.equals(this.token0)?this.token0Price:this.token1Price},e.reserveOf=function(t){return this.involvesToken(t)||Hu(!1),t.equals(this.token0)?this.reserve0:this.reserve1},e.getOutputAmount=function(e,r){if(void 0===r&&(r=!0),this.involvesToken(e.currency)||Hu(!1),Gu().equal(this.reserve0.quotient,ql)||Gu().equal(this.reserve1.quotient,ql))throw new ah;var n=this.reserveOf(e.currency),i=this.reserveOf(e.currency.equals(this.token0)?this.token1:this.token0),s=r?this.derivePercentAfterSellFees(e):Kl,o=s.greaterThan(Kl)?pl.fromRawAmount(e.currency,s.multiply(e).quotient):e,a=Gu().multiply(o.quotient,Ql),u=Gu().multiply(a,i.quotient),c=Gu().add(Gu().multiply(n.quotient,Vl),a),l=pl.fromRawAmount(e.currency.equals(this.token0)?this.token1:this.token0,Gu().divide(u,c));if(Gu().equal(l.quotient,ql))throw new uh;var h=r?this.derivePercentAfterBuyFees(l):Kl,f=h.greaterThan(Kl)?pl.fromRawAmount(l.currency,l.multiply(h).quotient):l;if(Gu().equal(f.quotient,ql))throw new uh;return[f,new t(n.add(o),i.subtract(f))]},e.getInputAmount=function(e,r){void 0===r&&(r=!0),this.involvesToken(e.currency)||Hu(!1);var n=r?this.derivePercentAfterBuyFees(e):Kl,i=n.greaterThan(Kl)?pl.fromRawAmount(e.currency,Gu().add(e.divide(n).quotient,zl)):e;if(Gu().equal(this.reserve0.quotient,ql)||Gu().equal(this.reserve1.quotient,ql)||Gu().greaterThanOrEqual(e.quotient,this.reserveOf(e.currency).quotient)||Gu().greaterThanOrEqual(i.quotient,this.reserveOf(e.currency).quotient))throw new ah;var s=this.reserveOf(e.currency),o=this.reserveOf(e.currency.equals(this.token0)?this.token1:this.token0),a=Gu().multiply(Gu().multiply(o.quotient,i.quotient),Vl),u=Gu().multiply(Gu().subtract(s.quotient,i.quotient),Ql),c=pl.fromRawAmount(e.currency.equals(this.token0)?this.token1:this.token0,Gu().add(Gu().divide(a,u),zl)),l=r?this.derivePercentAfterSellFees(c):Kl;return[l.greaterThan(Kl)?pl.fromRawAmount(c.currency,Gu().add(c.divide(l).quotient,zl)):c,new t(o.add(c),s.subtract(e))]},e.getLiquidityMinted=function(t,e,r){t.currency.equals(this.liquidityToken)||Hu(!1);var n,i=e.currency.sortsBefore(r.currency)?[e,r]:[r,e];if(i[0].currency.equals(this.token0)&&i[1].currency.equals(this.token1)||Hu(!1),Gu().equal(t.quotient,ql))n=Gu().subtract(Il(Gu().multiply(i[0].quotient,i[1].quotient)),Hl);else{var s=Gu().divide(Gu().multiply(i[0].quotient,t.quotient),this.reserve0.quotient),o=Gu().divide(Gu().multiply(i[1].quotient,t.quotient),this.reserve1.quotient);n=Gu().lessThanOrEqual(s,o)?s:o}if(!Gu().greaterThan(n,ql))throw new uh;return pl.fromRawAmount(this.liquidityToken,n)},e.getLiquidityValue=function(t,e,r,n,i){var s;if(void 0===n&&(n=!1),this.involvesToken(t)||Hu(!1),e.currency.equals(this.liquidityToken)||Hu(!1),r.currency.equals(this.liquidityToken)||Hu(!1),Gu().lessThanOrEqual(r.quotient,e.quotient)||Hu(!1),n){i||Hu(!1);var o=Gu().BigInt(i);if(Gu().equal(o,ql))s=e;else{var a=Il(Gu().multiply(this.reserve0.quotient,this.reserve1.quotient)),u=Il(o);if(Gu().greaterThan(a,u)){var c=Gu().multiply(e.quotient,Gu().subtract(a,u)),l=Gu().add(Gu().multiply(a,jl),u),h=Gu().divide(c,l);s=e.add(pl.fromRawAmount(this.liquidityToken,h))}else s=e}}else s=e;return pl.fromRawAmount(t,Gu().divide(Gu().multiply(r.quotient,this.reserveOf(t).quotient),s.quotient))},e.derivePercentAfterSellFees=function(t){var e=this.token0.wrapped.equals(t.wrapped.currency)?this.token0.wrapped.sellFeeBps:this.token1.wrapped.sellFeeBps;return null!=e&&e.gt(_c.from(0))?Wl.subtract(new yl(Gu().BigInt(e)).divide(Jl)):Kl},e.derivePercentAfterBuyFees=function(t){var e=this.token0.wrapped.equals(t.wrapped.currency)?this.token0.wrapped.buyFeeBps:this.token1.wrapped.buyFeeBps;return null!=e&&e.gt(_c.from(0))?Wl.subtract(new yl(Gu().BigInt(e)).divide(Jl)):Kl},Yl(t,[{key:"token0Price",get:function(){var t=this.tokenAmounts[1].divide(this.tokenAmounts[0]);return new wl(this.token0,this.token1,t.denominator,t.numerator)}},{key:"token1Price",get:function(){var t=this.tokenAmounts[0].divide(this.tokenAmounts[1]);return new wl(this.token1,this.token0,t.denominator,t.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]}}])}(),hh=function(){return Yl(function(t,e,r){this._midPrice=null,t.length>0||Hu(!1);var n=t[0].chainId;t.every(function(t){return t.chainId===n})||Hu(!1);var i=e.wrapped;t[0].involvesToken(i)||Hu(!1),void 0===r||t[t.length-1].involvesToken(r.wrapped)||Hu(!1);for(var s,o=[i],a=$l(t.entries());!(s=a()).done;){var u=s.value,c=u[0],l=u[1],h=o[c];h.equals(l.token0)||h.equals(l.token1)||Hu(!1);var f=h.equals(l.token0)?l.token1:l.token0;o.push(f)}this.pairs=t,this.path=o,this.input=e,this.output=r},[{key:"midPrice",get:function(){if(null!==this._midPrice)return this._midPrice;for(var t,e=[],r=$l(this.pairs.entries());!(t=r()).done;){var n=t.value,i=n[0],s=n[1];e.push(this.path[i].equals(s.token0)?new wl(s.reserve0.currency,s.reserve1.currency,s.reserve0.quotient,s.reserve1.quotient):new wl(s.reserve1.currency,s.reserve0.currency,s.reserve1.quotient,s.reserve0.quotient))}var o=e.slice(1).reduce(function(t,e){return t.multiply(e)},e[0]);return this._midPrice=new wl(this.input,this.output,o.denominator,o.numerator)}},{key:"chainId",get:function(){return this.pairs[0].chainId}}])}();function fh(t,e){var r=function(t,e){return t.inputAmount.currency.equals(e.inputAmount.currency)||Hu(!1),t.outputAmount.currency.equals(e.outputAmount.currency)||Hu(!1),t.outputAmount.equalTo(e.outputAmount)?t.inputAmount.equalTo(e.inputAmount)?0:t.inputAmount.lessThan(e.inputAmount)?-1:1:t.outputAmount.lessThan(e.outputAmount)?1:-1}(t,e);return 0!==r?r:t.priceImpact.lessThan(e.priceImpact)?-1:t.priceImpact.greaterThan(e.priceImpact)?1:t.route.path.length-e.route.path.length}var dh=function(){function t(t,e,r){this.route=t,this.tradeType=r;var n=new Array(t.path.length);if(r===Kc.EXACT_INPUT){e.currency.equals(t.input)||Hu(!1),n[0]=e.wrapped;for(var i=0;i<t.path.length-1;i++){var s=t.pairs[i].getOutputAmount(n[i])[0];n[i+1]=s}this.inputAmount=pl.fromFractionalAmount(t.input,e.numerator,e.denominator),this.outputAmount=pl.fromFractionalAmount(t.output,n[n.length-1].numerator,n[n.length-1].denominator)}else{e.currency.equals(t.output)||Hu(!1),n[n.length-1]=e.wrapped;for(var o=t.path.length-1;o>0;o--){var a=t.pairs[o-1].getInputAmount(n[o])[0];n[o-1]=a}this.inputAmount=pl.fromFractionalAmount(t.input,n[0].numerator,n[0].denominator),this.outputAmount=pl.fromFractionalAmount(t.output,e.numerator,e.denominator)}this.executionPrice=new wl(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient),this.priceImpact=function(t,e,r){var n=t.quote(e),i=n.subtract(r).divide(n);return new yl(i.numerator,i.denominator)}(t.midPrice,this.inputAmount,this.outputAmount)}t.exactIn=function(e,r){return new t(e,r,Kc.EXACT_INPUT)},t.exactOut=function(e,r){return new t(e,r,Kc.EXACT_OUTPUT)};var e=t.prototype;return e.minimumAmountOut=function(t){if(t.lessThan(ql)&&Hu(!1),this.tradeType===Kc.EXACT_OUTPUT)return this.outputAmount;var e=new fl(zl).add(t).invert().multiply(this.outputAmount.quotient).quotient;return pl.fromRawAmount(this.outputAmount.currency,e)},e.maximumAmountIn=function(t){if(t.lessThan(ql)&&Hu(!1),this.tradeType===Kc.EXACT_INPUT)return this.inputAmount;var e=new fl(zl).add(t).multiply(this.inputAmount.quotient).quotient;return pl.fromRawAmount(this.inputAmount.currency,e)},t.bestTradeExactIn=function(e,r,n,i,s,o,a){var u=void 0===i?{}:i,c=u.maxNumResults,l=void 0===c?3:c,h=u.maxHops,f=void 0===h?3:h;void 0===s&&(s=[]),void 0===o&&(o=r),void 0===a&&(a=[]),e.length>0||Hu(!1),f>0||Hu(!1),r===o||s.length>0||Hu(!1);for(var d=o.wrapped,p=n.wrapped,g=0;g<e.length;g++){var m=e[g];if((m.token0.equals(d.currency)||m.token1.equals(d.currency))&&!m.reserve0.equalTo(ql)&&!m.reserve1.equalTo(ql)){var y=void 0;try{y=m.getOutputAmount(d)[0]}catch(t){if(t.isInsufficientInputAmountError)continue;throw t}if(y.currency.equals(p))xl(a,new t(new hh([].concat(s,[m]),r.currency,n),r,Kc.EXACT_INPUT),l,fh);else if(f>1&&e.length>1){var w=e.slice(0,g).concat(e.slice(g+1,e.length));t.bestTradeExactIn(w,r,n,{maxNumResults:l,maxHops:f-1},[].concat(s,[m]),y,a)}}}return a},e.worstExecutionPrice=function(t){return new wl(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(t).quotient,this.minimumAmountOut(t).quotient)},t.bestTradeExactOut=function(e,r,n,i,s,o,a){var u=void 0===i?{}:i,c=u.maxNumResults,l=void 0===c?3:c,h=u.maxHops,f=void 0===h?3:h;void 0===s&&(s=[]),void 0===o&&(o=n),void 0===a&&(a=[]),e.length>0||Hu(!1),f>0||Hu(!1),n===o||s.length>0||Hu(!1);for(var d=o.wrapped,p=r.wrapped,g=0;g<e.length;g++){var m=e[g];if((m.token0.equals(d.currency)||m.token1.equals(d.currency))&&!m.reserve0.equalTo(ql)&&!m.reserve1.equalTo(ql)){var y=void 0;try{y=m.getInputAmount(d)[0]}catch(t){if(t.isInsufficientReservesError)continue;throw t}if(y.currency.equals(p))xl(a,new t(new hh([m].concat(s),r,n.currency),n,Kc.EXACT_OUTPUT),l,fh);else if(f>1&&e.length>1){var w=e.slice(0,g).concat(e.slice(g+1,e.length));t.bestTradeExactOut(w,r,n,{maxNumResults:l,maxHops:f-1},[m].concat(s),y,a)}}}return a},t}();const ph=10000n;class gh{constructor(t,e,r){this.config=e,this.swapOptions=r,this.signer=null,this.pairs=[],this.resolvePairsLoaded=null,this.resolvePartnerFeeLoaded=null,this.partnerFee=0n,this.isFeeActive=!1,this.provider=t,this.wethAddress=e.wethAddress,this.chainId=e.chainId;const n=["function swapExactTokensForTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts)","function swapTokensForExactTokens(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts)","function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts)","function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts)","function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts)","function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts)","function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts)","function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut)","function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) internal pure returns (uint amountIn)","function getAmountsIn(address factory, uint amountOut, address[] memory path) internal view returns (uint[] memory amounts)","function WETH() external pure returns (address)"],i=[...n,"function partnerFee(bytes32) external view returns (address feeRecipient, uint16 feeBps)","function feeEnabled() external view returns (bool)"];this.routerContract=new ni(e.routerAddress,n,t),this.factoryContract=new ni(e.factoryAddress,["function getPair(address tokenA, address tokenB) external view returns (address pair)","function allPairs(uint) external view returns (address pair)","function allPairsLength() external view returns (uint)"],t),e.proxyAddress&&(this.proxyContract=new ni(e.proxyAddress,i,t)),this.pairsLoadedPromise=new Promise(t=>{this.resolvePairsLoaded=t}),this.partnerFeeLoadedPromise=new Promise(t=>{this.resolvePartnerFeeLoaded=t}),this.loadAllPairsFromGraph(),this.loadPartnerFee()}async loadPartnerFee(){if(!this.resolvePairsLoaded)return this.partnerFee;if(this.swapOptions.partnerKey){const[,t]=await(this.proxyContract?.partnerFee(this.swapOptions.partnerKey));this.partnerFee=t}this.partnerFee=100n;const t=await(this.proxyContract?.feeEnabled());return this.isFeeActive=t,this.resolvePartnerFeeLoaded&&(this.resolvePartnerFeeLoaded(),this.resolvePartnerFeeLoaded=null),this.partnerFee}setSigner(t){this.signer=t,this.routerContract=this.routerContract.connect(t),this.proxyContract&&(this.proxyContract=this.proxyContract.connect(t))}roundToDecimals(t,e){const r=parseFloat(t);return isNaN(r)?"0":r.toFixed(e)}async loadAllPairsFromGraph(){try{const t=await fetch(this.config.graphEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:"{\n pairs(first: 1000) {\n id\n reserve0\n reserve1\n token0 { id symbol name decimals }\n token1 { id symbol name decimals }\n }\n }"})});if(!t.ok)throw new Error(`Network error: ${t.status}`);const{data:e}=await t.json();if(!e||!e.pairs)return;const r=[];for(const t of e.pairs)r.push(this.createSDKPair(t));this.pairs=r;const n=e.pairs.find(t=>t.token0.id.toLowerCase()===this.wethAddress.toLowerCase()||t.token1.id.toLowerCase()===this.wethAddress.toLowerCase());if(!n)throw new Error("No weth token found");{const t=n.token0.id.toLowerCase()===this.wethAddress.toLowerCase()?n.token0:n.token1;this.wethToken={address:t.id,symbol:t.symbol,name:t.name,decimals:Number(t.decimals)}}this.resolvePairsLoaded&&(this.resolvePairsLoaded(),this.resolvePairsLoaded=null)}catch(t){console.error("Error loading pairs from graph:",t),this.resolvePairsLoaded&&(this.resolvePairsLoaded(),this.resolvePairsLoaded=null)}}async waitForPairsLoaded(){return await this.pairsLoadedPromise}async waitForPartnerFeeLoaded(){return await this.partnerFeeLoadedPromise}createSDKPair(t){const{token0:e,token1:r,id:n,reserve0:i,reserve1:s}=t,o=new El(this.chainId,e.id,Number(e.decimals),e.symbol,e.name),a=new El(this.chainId,r.id,Number(r.decimals),r.symbol,r.name);let u,c;if(!i||!s)throw new Error("No reserves data");u=Fu(i,Number(e.decimals)),c=Fu(s,Number(r.decimals));const l=pl.fromRawAmount(o,u.toString()),h=pl.fromRawAmount(a,c.toString());return new lh(l,h)}getPairs(){return this.pairs}async getBestTrade(t,e,r,n){const i=new El(this.chainId,t.address,t.decimals,t.symbol,t.name),s=new El(this.chainId,e.address,e.decimals,e.symbol,e.name),o=pl.fromRawAmount(n?s:i,r);await this.waitForPairsLoaded(),await this.waitForPartnerFeeLoaded();const a=this.getPairs();if(!a||0===a.length)throw new Error("Pairs not loaded yet. Please wait for initialization.");const u={maxHops:3,maxNumResults:1},c=n?dh.bestTradeExactOut(a,i,o,u):dh.bestTradeExactIn(a,o,s,u);return c.length>0?c[0]:null}trimTrailingZeros(t){return t.includes(".")?t=t.replace(/\.?0+$/,""):t}async calculateTrade(t,e,r,n,i){try{const s=this.roundToDecimals(r,n?e.decimals:t.decimals);let o=Fu(s,n?e.decimals:t.decimals);if(n&&this.partnerFee&&this.partnerFee>0n){const t=o*ph,e=ph-this.partnerFee;o=(t+e-1n)/e}const a=await this.getBestTrade(t.address==ln?this.wethToken:t,e.address==ln?this.wethToken:e,o.toString(),n);if(!a)throw new Error("No trade path found for the given tokens and amount.");const u=a.inputAmount.quotient.toString(),c=a.outputAmount.quotient.toString();let l={amountIn:Du(u,t.decimals),amountOut:n?this.trimTrailingZeros(s):Du(c,e.decimals),amountInRaw:u,amountOutRaw:c};const h=new yl(Math.round(100*parseFloat(i)),1e4);let f,d;if(n?(f=a.maximumAmountIn(h).quotient.toString(),l.maxAmountInRaw=f,l.maxAmountIn=Du(f,t.decimals)):(d=a.minimumAmountOut(h).quotient.toString(),l.minAmountOutRaw=d,l.minAmountOut=Du(d,e.decimals)),this.partnerFee&&this.partnerFee>0n&&!n){const t=BigInt(a.outputAmount.quotient.toString())*(ph-this.partnerFee)/ph;if(l.amountOutRaw=t.toString(),l.amountOut=Du(t,e.decimals),d){const t=BigInt(d.toString())*(ph-this.partnerFee)/ph;l.minAmountOutRaw=t.toString(),l.minAmountOut=Du(t,e.decimals)}}return{trade:a,computed:l}}catch(t){throw console.error("Error calculating expected output:",t),t}}async checkApproval(t,e,r){try{const n=new ni(t,["function allowance(address,address) view returns (uint256)"],this.provider),i=await(this.signer?.getAddress());if(!i)throw new Error("Please connect wallet first");return await n.allowance(i,r)>=Fu(e,18)}catch(t){return console.error("Error checking approval:",t),!1}}async isApprovalNeeded(t,e){if(!this.signer)throw new Error("Please connect wallet first");if(t.address!==ln){const r=new ni(t.address,["function allowance(address,address) view returns (uint256)","function approve(address,uint256) returns (bool)"],this.signer),n=await this.signer.getAddress(),i=this.config.proxyAddress||this.config.routerAddress;if(await r.allowance(n,i)<e)return{isApprovalNeeded:!0,tokenContract:r,signerAddress:n,allowanceTo:i}}return{isApprovalNeeded:!1}}async approveIfNeedApproval(t,e){const r=await this.isApprovalNeeded(t,e);return r.isApprovalNeeded?await r.tokenContract.approve(r.allowanceTo,Lu):null}async swapTokens(t,e,r,n,i,s,o){if(!this.signer)throw new Error("Please connect wallet first");try{const a=Math.floor(Date.now()/1e3)+60*o;let u;const c=await this.signer.getAddress(),l=this.proxyContract?this.proxyContract.interface:this.routerContract.interface;let h;const f=this.isFeeActive?this.config.proxyAddress:c;return h=s?t.address===ln?l.encodeFunctionData("swapETHForExactTokens",[n,i,f,a]):e.address===ln?l.encodeFunctionData("swapTokensForExactETH",[n,r,i,f,a]):l.encodeFunctionData("swapTokensForExactTokens",[n,r,i,f,a]):t.address===ln?l.encodeFunctionData("swapExactETHForTokens",[n,i,f,a]):e.address===ln?l.encodeFunctionData("swapExactTokensForETH",[r,n,i,f,a]):l.encodeFunctionData("swapExactTokensForTokens",[r,n,i,f,a]),this.proxyContract&&(h=E(this.concatSelectorAndParams(y(h),[],"permit",this.swapOptions.partnerKey))),u=await this.signer.sendTransaction({to:this.config.proxyAddress||this.config.routerAddress,from:c,data:h,value:t.address===ln?r:0n}),u}catch(t){throw console.error("Error swapping tokens:",t),t}}async getPairAddress(t,e){try{return await this.factoryContract.getPair(t,e)}catch(t){throw console.error("Error getting pair address:",t),t}}async checkLiquidityExists(t,e){try{return await this.getPairAddress(t,e)!==ln}catch(t){return console.error("Error checking liquidity:",t),!1}}async createTrade(t,e,r,n=.5){try{const n=new El(this.chainId,t.address,t.decimals,t.symbol,t.name),i=new El(this.chainId,e.address,e.decimals,e.symbol,e.name),s=pl.fromRawAmount(n,Fu(r,t.decimals).toString());if(await this.getPairAddress(t.address,e.address)===ln)throw new Error("No liquidity pair found");const o=new lh(pl.fromRawAmount(n,"0"),pl.fromRawAmount(i,"0")),a=new hh([o],n,i);return new dh(a,s,Kc.EXACT_INPUT)}catch(t){throw console.error("Error creating trade:",t),t}}async getTokensFromGraph(t=100,e){const r=`{\n tokens(first: ${Math.min(t,1e3)}, where: {\n ${e?`or: [\n { symbol_contains_nocase: "${e}" }\n { name_contains_nocase: "${e}" }\n ]`:""}\n }) {\n id\n symbol\n name\n decimals\n }\n }`;try{const t=await fetch(this.config.graphEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:r})});if(!t.ok)throw new Error(`Network error: ${t.status}`);const{data:e}=await t.json();return e&&e.tokens?e.tokens.map(t=>({address:t.id,symbol:t.symbol,name:t.name,decimals:Number(t.decimals)})):[]}catch(t){return console.error("Error fetching tokens from graph:",t),[]}}concatSelectorAndParams(t,e,r,n){const i=[t,0===e.length?new Uint8Array(0):e.reduce((t,e)=>{const r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r}),new Uint8Array([255&e.length]),y(Ht(me(r))).slice(0,16)];if(n){const t=y(n),e=y(Ht(me("is_partner_fee"))).slice(0,16);i.push(t,e)}const s=i.reduce((t,e)=>t+e.length,0),o=new Uint8Array(s);let a=0;for(const t of i)o.set(t,a),a+=t.length;return o}}const mh={maxSlippage:"0.5",swapDeadline:20};class yh{constructor(t){this.state={loader:null},this.input={fromToken:null,toToken:null,amount:void 0,isOutputAmount:!1,settings:mh},this.options=t,this.initServices()}initServices(){this.walletService=new xu(this.options.networkConfig,this.options.walletProvider),this.swapService=new gh(this.walletService.getProvider(),this.options.networkConfig,this.options)}async setChange(t){const e={...this.state,...t};this.state=e,"function"==typeof this.options.onChange&&await this.options.onChange(e,t)}async connectWallet(t){const e=await this.walletService.connect(t),r=this.walletService.getSigner();return r&&this.swapService.setSigner(r),e}disconnectWallet(){this.walletService.disconnect(),this.swapService.setSigner(null)}getState(){return this.state}get settings(){return{...mh,...this.input.settings||{}}}async calculateQuoteIfNeeded(){const{fromToken:e,toToken:r,amount:n,isOutputAmount:i}=this.input;if(e&&r&&n&&!(n<=0)){await this.setChange({loader:t.CALCULATING_QUOTE,error:void 0});try{const t=await this.swapService.calculateTrade(e,r,String(n),1==i,this.settings.maxSlippage);await this.setChange({computed:t.computed,tradeInfo:t.trade,loader:null})}catch(t){await this.setChange({error:t?.message||String(t),loader:null})}}}async setData(t){return this.input={...this.input,...t},await this.calculateQuoteIfNeeded(),this.getState()}async isNeedApproval(){if(!this.input||!this.walletService.isConnected()||!this.swapService)throw new Error("Wallet not connected or input missing");const{fromToken:t,amount:e}=this.input;if(!t||void 0===e||!this.state.computed?.amountInRaw)throw new Error("fromToken or amount missing");return(await this.swapService.isApprovalNeeded(t,BigInt(this.state.computed.amountInRaw))).isApprovalNeeded}async approveIfNeeded(){if(!this.input||!this.walletService.isConnected())throw new Error("Wallet not connected or input missing");const{fromToken:e,amount:r}=this.input;if(!e||void 0===r||!this.state.computed?.amountInRaw)throw new Error("fromToken or amount missing");await this.setChange({loader:t.APPROVING});try{const t=await(this.swapService?.approveIfNeedApproval(e,BigInt(this.state.computed.amountInRaw)));let r;if(t){if(await this.setChange({approveTxHash:t.hash}),r=await t.wait(),!r)throw new Error("Receipt not found, Please try again");if(1!=r.status)throw new Error("Transaction Rejected")}return r?.hash}catch(t){throw await this.setChange({error:t?.message||String(t),loader:null}),t}}async swap(){try{await this.setChange({txHash:void 0,approveTxHash:void 0});const{fromToken:e,toToken:r,amount:n}=this.input;if(!e||!r||void 0===n)throw new Error("Tokens or amount not set");await this.approveIfNeeded(),await this.setChange({loader:t.SWAPPING});const i=this.state.tradeInfo;if(!i)throw new Error("Trade info missing - calculate quote first");const s=i.route.path.map(t=>t.address);if(0===s.length)throw new Error("Trade path missing");const o=this.state.computed;if(!o)throw new Error("Computed amounts missing");const a=await this.swapService.swapTokens(e,r,o.maxAmountInRaw||o.amountInRaw,o.minAmountOutRaw||o.amountOutRaw,s,1==this.input.isOutputAmount,this.settings.swapDeadline);await this.setChange({txHash:a.hash});const u=await a.wait();if(!u)throw new Error("Receipt not found, Please try again");if(1!=u.status)throw new Error("Transaction Rejected");return await this.setChange({loader:null}),u.hash}catch(t){throw await this.setChange({error:t?.message||String(t),loader:null}),t}}async getPartnerFee(){return Number(await this.swapService.loadPartnerFee())/Number(ph)}async getTokensFromGraph(t=100,e){if(!this.swapService)throw new Error("Swap Service not exists");return await this.swapService.getTokensFromGraph(t,e)}get currentNetworkConfig(){return this.options.networkConfig}}const wh={"kasplex-testnet":{name:"Kasplex Test",chainId:167012,rpcUrl:"https://rpc.kasplextest.xyz",routerAddress:"0x5A410f79f58a11344E3523d99820Cf231bc888bd",factoryAddress:"0x772B3321B37C1a9aeF0Da1B5A6453E1C2A264beF",proxyAddress:"0xbE448f863d2bB7bCcD9185A854DF2D8d63498dB0",wethAddress:"0x654A3287c317D4Fc6e8482FeF523Dc4572b563AA",graphEndpoint:"https://dev-graph-kasplex.kaspa.com/subgraphs/name/uniswap-v2",blockExplorerUrl:"https://explorer.testnet.kasplextest.xyz",additionalJsonRpcApiProviderOptionsOptions:{batchMaxCount:1,batchMaxSize:1,batchStallTime:0}}};function bh(t){let e;if("networkConfig"in t&&"string"==typeof t.networkConfig){const r=wh[t.networkConfig];if(!r)throw new Error(`Unknown network key: ${t.networkConfig}`);e={...t,networkConfig:r}}else e=t;return new yh(e)}})(),n})());